From b240ec5604bf26f3bf645aee8bd82f42ef4d19dd Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Mon, 1 Jun 2020 16:27:09 -0700 Subject: [PATCH 01/29] Add nearby task map for review task confirmation * Add 'nearby task' option to review confirmation and show nearby task map when chosen * Add support for 'invert' fields in review task confirmation --- .../WithNearbyReviewTasks.js | 73 ++++++++++ .../HOCs/WithTaskMarkers/WithTaskMarkers.js | 9 +- .../HOCs/WithTaskReview/WithTaskReview.js | 37 +++-- .../ReviewTaskControls/ReviewTaskControls.js | 22 ++- .../AdjustFiltersOverlay.js | 21 ++- .../TaskConfirmationModal/Messages.js | 10 ++ .../TaskConfirmationModal.js | 128 +++++++++++------- .../TaskNearbyList/TaskReviewNearbyList.js | 28 ++++ src/lang/en-US.json | 6 + src/services/Server/APIRoutes.js | 1 + src/services/Task/TaskReview/Messages.js | 5 + src/services/Task/TaskReview/TaskReview.js | 41 ++++++ .../Task/TaskReview/TaskReviewLoadMethod.js | 4 + 13 files changed, 312 insertions(+), 73 deletions(-) create mode 100644 src/components/HOCs/WithNearbyReviewTasks/WithNearbyReviewTasks.js create mode 100644 src/components/TaskPane/TaskNearbyList/TaskReviewNearbyList.js diff --git a/src/components/HOCs/WithNearbyReviewTasks/WithNearbyReviewTasks.js b/src/components/HOCs/WithNearbyReviewTasks/WithNearbyReviewTasks.js new file mode 100644 index 000000000..6fce563fc --- /dev/null +++ b/src/components/HOCs/WithNearbyReviewTasks/WithNearbyReviewTasks.js @@ -0,0 +1,73 @@ +import React, { Component } from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' +import _omit from 'lodash/omit' +import _isEqual from 'lodash/isEqual' +import { fetchNearbyReviewTasks } from '../../../services/Task/TaskReview/TaskReview' + +/** + * WithNearbyReviewTasks provides tasks geographically closest to the current task + * to the wrapped component, utilizing the same object structure as + * clusteredTasks for maximum interoperability + * + * @author [Kelli Rotstan](https://github.com/krotstan) + */ +export const WithNearbyReviewTasks = function(WrappedComponent) { + class _WithNearbyReviewTasks extends Component { + state = { + nearbyTasks: null, + } + + /** + * Kick off loading of review tasks geographically closest to the current task. + * Note that this represents the nearby tasks (and loading status) using + * the same data structure as clusteredTasks to promote map and HOC + * interoperability + * + * @private + */ + updateNearbyReviewTasks = props => { + this.setState({nearbyTasks: {loading: true}}) + props.fetchNearbyReviewTasks(props.taskId, this.props.currentFilters).then(nearbyTasks => { + this.setState({nearbyTasks: {...nearbyTasks, nearTaskId: props.taskId, loading: false}}) + }) + } + + componentDidMount() { + this.updateNearbyReviewTasks(this.props) + } + + componentDidUpdate(prevProps) { + if (this.state.nearbyTasks && !this.state.nearbyTasks.loading && + this.props.taskId !== this.state.nearbyTasks.nearTaskId) { + return this.updateNearbyReviewTasks(this.props) + } + + if (!_isEqual(this.props.currentFilters, prevProps.currentFilters)) { + return this.updateNearbyReviewTasks(this.props) + } + } + + render() { + return ( + + ) + } + } + + _WithNearbyReviewTasks.propTypes = { + fetchNearbyReviewTasks: PropTypes.func.isRequired, + } + + return _WithNearbyReviewTasks +} + +export const mapDispatchToProps = + dispatch => bindActionCreators({ fetchNearbyReviewTasks }, dispatch) + +export default WrappedComponent => + connect(null, mapDispatchToProps)(WithNearbyReviewTasks(WrappedComponent)) diff --git a/src/components/HOCs/WithTaskMarkers/WithTaskMarkers.js b/src/components/HOCs/WithTaskMarkers/WithTaskMarkers.js index 5ac5c3c43..fd4619d1e 100644 --- a/src/components/HOCs/WithTaskMarkers/WithTaskMarkers.js +++ b/src/components/HOCs/WithTaskMarkers/WithTaskMarkers.js @@ -22,8 +22,10 @@ export default function WithTaskMarkers(WrappedComponent, render() { const challengeTasks = _get(this.props, tasksProp) - // Only create markers for created, skipped, or too-hard tasks - const allowedStatuses = [TaskStatus.created, TaskStatus.skipped, TaskStatus.tooHard] + // Only create markers for allowed statuses OR [created, skipped, or too-hard tasks] + const allowedStatuses = this.props.allowedStatuses || + [TaskStatus.created, TaskStatus.skipped, TaskStatus.tooHard] + const markers = [] if (_isObject(challengeTasks)) { if (_isArray(challengeTasks.tasks) && challengeTasks.tasks.length > 0) { @@ -37,12 +39,13 @@ export default function WithTaskMarkers(WrappedComponent, position: [nearestToCenter.geometry.coordinates[1], nearestToCenter.geometry.coordinates[0]], options: { challengeId: _isFinite(challengeTasks.challengeId) ? - challengeTasks.challengeId : (task.challengeId || task.parentId), + challengeTasks.challengeId : (task.challengeId || task.parentId || task.parent), isVirtualChallenge: challengeTasks.isVirtualChallenge, challengeName: task.parentName, taskId: task.id, status: task.status, priority: task.priority, + reviewStatus: task.reviewStatus, }, }) }) diff --git a/src/components/HOCs/WithTaskReview/WithTaskReview.js b/src/components/HOCs/WithTaskReview/WithTaskReview.js index 0062300f7..caa55d6f2 100644 --- a/src/components/HOCs/WithTaskReview/WithTaskReview.js +++ b/src/components/HOCs/WithTaskReview/WithTaskReview.js @@ -24,18 +24,24 @@ const WithTaskReview = WrappedComponent => const mapDispatchToProps = (dispatch, ownProps) => { return { - updateTaskReviewStatus: (task, status, comment, tags, loadBy, url, taskBundle) => { - const doReview = taskBundle ? - completeBundleReview(taskBundle.bundleId, status, comment, tags) : - completeReview(task.id, status, comment, tags) + updateTaskReviewStatus: (task, status, comment, tags, loadBy, url, + taskBundle, requestedNextTask) => { + const doReview = taskBundle ? + completeBundleReview(taskBundle.bundleId, status, comment, tags) : + completeReview(task.id, status, comment, tags) - dispatch(doReview).then(() => { - loadNextTaskForReview(dispatch, url, task.id).then(nextTask => - visitTaskForReview(loadBy, url, nextTask)) - }).catch(error => { - console.log(error) - url.push('/review/tasksToBeReviewed') - }) + dispatch(doReview).then(() => { + if (loadBy === TaskReviewLoadMethod.nearby && requestedNextTask) { + visitTaskForReview(loadBy, url, requestedNextTask) + } + else { + loadNextTaskForReview(dispatch, url, task.id).then(nextTask => + visitTaskForReview(loadBy, url, nextTask)) + } + }).catch(error => { + console.log(error) + url.push('/review/tasksToBeReviewed') + }) }, skipTaskReview: (task, loadBy, url) => { @@ -70,6 +76,7 @@ export const parseSearchCriteria = url => { const boundingBox = searchParams.boundingBox const savedChallengesOnly = searchParams.savedChallengesOnly const excludeOtherReviewers = searchParams.excludeOtherReviewers + const invertFields = searchParams.invertFields if (_isString(filters)) { filters = JSON.parse(searchParams.filters) @@ -82,15 +89,17 @@ export const parseSearchCriteria = url => { return { searchCriteria: {sortCriteria: {sortBy, direction}, filters, boundingBox, - savedChallengesOnly, excludeOtherReviewers}, + savedChallengesOnly, excludeOtherReviewers, + invertFields}, newState: {sortBy, direction, filters, boundingBox, savedChallengesOnly, - excludeOtherReviewers} + excludeOtherReviewers, invertFields} } } export const visitTaskForReview = (loadBy, url, task) => { const newState = parseSearchCriteria(url).newState - if (task && loadBy === TaskReviewLoadMethod.next) { + if (task && (loadBy === TaskReviewLoadMethod.next || + loadBy === TaskReviewLoadMethod.nearby)) { url.push({ pathname:`/challenge/${_get(task, 'parent.id', task.parent)}/task/${task.id}/review`, state: newState diff --git a/src/components/ReviewTaskControls/ReviewTaskControls.js b/src/components/ReviewTaskControls/ReviewTaskControls.js index 6a05de3d7..dad8501cd 100644 --- a/src/components/ReviewTaskControls/ReviewTaskControls.js +++ b/src/components/ReviewTaskControls/ReviewTaskControls.js @@ -37,13 +37,17 @@ export class ReviewTaskControls extends Component { setComment = comment => this.setState({comment}) setTags = tags => this.setState({tags}) - onConfirm = (alternateFilters) => { + onConfirm = (alternateCriteria) => { const history = _cloneDeep(this.props.history) - _merge(_get(history, 'location.state.filters', {}), alternateFilters) + _merge(_get(history, 'location.state', {}), alternateCriteria) + + const requestedNextTask = !this.state.requestedNextTask ? null : + {id: this.state.requestedNextTask, parent: this.state.requestedNextTaskParent} + this.props.updateTaskReviewStatus(this.props.task, this.state.reviewStatus, this.state.comment, this.state.tags, this.state.loadBy, history, - this.props.taskBundle) + this.props.taskBundle, requestedNextTask) this.setState({confirmingTask: false, comment: ""}) } @@ -55,6 +59,15 @@ export class ReviewTaskControls extends Component { this.setState({loadBy}) } + chooseNextTask = (challengeId, isVirtual, taskId) => { + this.setState({requestedNextTask: taskId, + requestedNextTaskParent: challengeId}) + } + + clearNextTask = () => { + this.setState({requestedNextTask: null}) + } + /** Save Review Status */ updateReviewStatus = (reviewStatus) => { this.setState({reviewStatus, confirmingTask: true}) @@ -212,6 +225,9 @@ export class ReviewTaskControls extends Component { loadBy={this.state.loadBy} inReview={true} fromInbox={fromInbox} + chooseNextTask={this.chooseNextTask} + clearNextTask={this.clearNextTask} + requestedNextTask={this.state.requestedNextTask} /> } diff --git a/src/components/TaskConfirmationModal/AdjustFiltersOverlay.js b/src/components/TaskConfirmationModal/AdjustFiltersOverlay.js index 62aa01f5b..e43f817b7 100644 --- a/src/components/TaskConfirmationModal/AdjustFiltersOverlay.js +++ b/src/components/TaskConfirmationModal/AdjustFiltersOverlay.js @@ -1,5 +1,6 @@ import React, { Component } from 'react' import { FormattedMessage } from 'react-intl' +import classNames from 'classnames' import _get from 'lodash/get' import _map from 'lodash/map' import { TaskStatus, messagesByStatus, keysByStatus } @@ -19,8 +20,9 @@ import messages from './Messages' */ export default class AdjustFiltersOverlay extends Component { render() { - const currentFilters = this.props.currentFilters + const currentFilters = _get(this.props.currentFilters, 'filters', {}) const challengeName = _get(this.props.challenge, 'name', '') + const invertFields = _get(this.props.currentFilters, 'invertFields', {}) const reviewStatusFilter =
@@ -100,9 +102,24 @@ export default class AdjustFiltersOverlay extends Component { this.props.filterChange('challenge', event.target.value)}/> + + {currentFilters.challenge !== challengeName && @@ -281,23 +290,39 @@ export class TaskConfirmationModal extends Component { { reviewConfirmation && _isUndefined(this.props.needsRevised) && -
- - - - this.props.chooseLoadBy(TaskReviewLoadMethod.next)} - onChange={_noop} - /> - +
+
+ +
+
+
+ this.props.chooseLoadBy(TaskReviewLoadMethod.next)} + onChange={_noop} + /> + +
+
+ this.props.chooseLoadBy(TaskReviewLoadMethod.nearby)} + onChange={_noop} + /> + +
{ this.props.fromInbox && - +
this.props.chooseLoadBy(TaskReviewLoadMethod.inbox)} onChange={_noop} /> -
} - this.props.chooseLoadBy(TaskReviewLoadMethod.all)} - onChange={_noop} - /> - +
+ this.props.chooseLoadBy(TaskReviewLoadMethod.all)} + onChange={_noop} + /> + +
+
this.setState({showReviewFilters: true})}> @@ -370,10 +398,11 @@ export class TaskConfirmationModal extends Component {
-
@@ -386,10 +415,7 @@ export class TaskConfirmationModal extends Component { {...this.props} close={() => this.setState({showReviewFilters: false})} filterChange={this.filterChange} - currentFilters={ - _merge({}, _get(this.props.history, 'location.state.filters', {}), - this.state.filters) - } + currentFilters={this.currentFilters()} /> } diff --git a/src/components/TaskPane/TaskNearbyList/TaskReviewNearbyList.js b/src/components/TaskPane/TaskNearbyList/TaskReviewNearbyList.js new file mode 100644 index 000000000..76fa1cb77 --- /dev/null +++ b/src/components/TaskPane/TaskNearbyList/TaskReviewNearbyList.js @@ -0,0 +1,28 @@ +import React, { Component } from 'react' +import WithNearbyReviewTasks from '../../HOCs/WithNearbyReviewTasks/WithNearbyReviewTasks' +import MapPane from '../../EnhancedMap/MapPane/MapPane' +import BusySpinner from '../../BusySpinner/BusySpinner' +import TaskNearbyMap from './TaskNearbyMap' +import { TaskStatus } from '../../../services/Task/TaskStatus/TaskStatus' + +export class TaskReviewNearbyList extends Component { + render() { + if (!this.props.task || !this.props.nearbyTasks) { + return null + } + + if (this.props.nearbyTasks.loading) { + return + } + + return ( + + + + ) + } +} + +export default WithNearbyReviewTasks(TaskReviewNearbyList) diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 96e541ac9..88759bd55 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -295,6 +295,9 @@ "Widgets.StatusRadarWidget.title": "Completion Status Distribution", "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", "AutosuggestTextBox.labels.noResults": "No matches", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", "Form.textUpload.readonly": "Existing file will be used", "Form.controls.addPriorityRule.label": "Add a Rule", @@ -755,6 +758,8 @@ "TaskConfirmationModal.loadNextReview.label": "Proceed With:", "TaskConfirmationModal.cancel.label": "Cancel", "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", "TaskConfirmationModal.osmComment.header": "OSM Change Comment", @@ -1353,6 +1358,7 @@ "Task.reviewStatus.unnecessary": "Unnecessary", "Task.reviewStatus.unset": "Review not yet requested", "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.review.loadByMethod.nearby": "Nearby Task", "Task.review.loadByMethod.all": "Back to Review All", "Task.review.loadByMethod.inbox": "Back to Inbox", "Task.status.created": "Created", diff --git a/src/services/Server/APIRoutes.js b/src/services/Server/APIRoutes.js index 96e2089b3..dfbbdd5fc 100644 --- a/src/services/Server/APIRoutes.js +++ b/src/services/Server/APIRoutes.js @@ -88,6 +88,7 @@ const apiRoutes = factory => { 'review': factory.get('/tasks/review'), 'reviewed': factory.get('/tasks/reviewed'), 'reviewNext': factory.get('/tasks/review/next'), + 'nearbyReviewTasks': factory.get('/tasks/review/nearby/:taskId'), 'reviewMetrics': factory.get('/tasks/review/metrics'), 'fetchReviewClusters': factory.get('/taskCluster/review'), 'inCluster': factory.get('/tasksInCluster/:clusterId'), diff --git a/src/services/Task/TaskReview/Messages.js b/src/services/Task/TaskReview/Messages.js index e39c31aa3..290b0b0fd 100644 --- a/src/services/Task/TaskReview/Messages.js +++ b/src/services/Task/TaskReview/Messages.js @@ -44,6 +44,11 @@ export default defineMessages({ defaultMessage: "Next Filtered Task", }, + nearby: { + id: 'Task.review.loadByMethod.nearby', + defaultMessage: "Nearby Task", + }, + all: { id: 'Task.review.loadByMethod.all', defaultMessage: "Back to Review All", diff --git a/src/services/Task/TaskReview/TaskReview.js b/src/services/Task/TaskReview/TaskReview.js index 5239364e8..41e4ae91b 100644 --- a/src/services/Task/TaskReview/TaskReview.js +++ b/src/services/Task/TaskReview/TaskReview.js @@ -6,6 +6,8 @@ import _isArray from 'lodash/isArray' import _cloneDeep from 'lodash/cloneDeep' import _snakeCase from 'lodash/snakeCase' import _isFinite from 'lodash/isFinite' +import _map from 'lodash/map' +import _values from 'lodash/values' import queryString from 'query-string' import Endpoint from '../../Server/Endpoint' import { defaultRoutes as api, isSecurityError } from '../../Server/Server' @@ -201,6 +203,45 @@ const determineType = (reviewTasksType) => { } } +/* + * Retrieve review tasks geographically closest to the given task (up to the given + * limit). Returns an object in clusteredTasks format with the tasks and meta data. + * Note that this does not add the results to the redux store, but simply returns them + */ +export const fetchNearbyReviewTasks = function(taskId, criteria={}, limit=5) { + return function(dispatch) { + const searchParameters = generateSearchParametersString(_get(criteria, 'filters', {}), + criteria.boundingBox, + _get(criteria, 'savedChallengesOnly'), + _get(criteria, 'excludeOtherReviewers'), + null, + _get(criteria, 'invertFields', {})) + + const params = {limit, ...searchParameters} + + return new Endpoint( + api.tasks.nearbyReviewTasks, + { + schema: [ taskSchema() ], + variables: {taskId}, + params, + } + ).execute().then(normalizedResults => ({ + loading: false, + tasks: _map(_values(_get(normalizedResults, 'entities.tasks', {})), task => { + if (task.location) { + // match clusteredTasks response, which returns a point with lat/lng fields + task.point = { + lng: task.location.coordinates[0], + lat: task.location.coordinates[1] + } + } + return task + }) + })) + } +} + /** * Retrieve the next task to review with the given sort and filter criteria diff --git a/src/services/Task/TaskReview/TaskReviewLoadMethod.js b/src/services/Task/TaskReview/TaskReviewLoadMethod.js index f7738225b..984533232 100644 --- a/src/services/Task/TaskReview/TaskReviewLoadMethod.js +++ b/src/services/Task/TaskReview/TaskReviewLoadMethod.js @@ -5,6 +5,9 @@ import messages from './Messages' /** Load next review task */ export const NEXT_LOAD_METHOD = 'next' +/** Load nearby review task */ +export const NEARBY_LOAD_METHOD = 'nearby' + /** Load review page with all review tasks */ export const ALL_LOAD_METHOD = 'all' @@ -15,6 +18,7 @@ export const TaskReviewLoadMethod = Object.freeze({ next: NEXT_LOAD_METHOD, all: ALL_LOAD_METHOD, inbox: LOAD_INBOX_METHOD, + nearby: NEARBY_LOAD_METHOD, }) /** From 3c7db0d1a3a1d55837456935999653c83ce3225c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2020 13:49:45 +0000 Subject: [PATCH 02/29] Bump websocket-extensions from 0.1.3 to 0.1.4 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] --- yarn.lock | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 44638abb4..eda533b2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14506,8 +14506,9 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" From ae5adba9c9417fe56fa4cfb0dfb1ae282659b573 Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Mon, 8 Jun 2020 15:58:57 -0700 Subject: [PATCH 03/29] Add priority bounds overlay to admin tasks map * On admin tasks map add a toggle to show priority bound rules bounding boxes --- .../ViewChallengeTasks/ViewChallengeTasks.js | 27 ++++++++++++++++++- .../EnhancedMap/LayerToggle/LayerToggle.js | 16 +++++++++++ .../EnhancedMap/LayerToggle/Messages.js | 5 ++++ .../TaskClusterMap/TaskClusterMap.js | 17 +++++++++++- src/lang/en-US.json | 1 + .../Task/TaskPriority/TaskPriority.js | 10 +++++++ 6 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/components/AdminPane/Manage/ViewChallengeTasks/ViewChallengeTasks.js b/src/components/AdminPane/Manage/ViewChallengeTasks/ViewChallengeTasks.js index aa179cb69..eadd95f79 100644 --- a/src/components/AdminPane/Manage/ViewChallengeTasks/ViewChallengeTasks.js +++ b/src/components/AdminPane/Manage/ViewChallengeTasks/ViewChallengeTasks.js @@ -9,7 +9,7 @@ import { ChallengeStatus } import { TaskStatus, messagesByStatus } from '../../../../services/Task/TaskStatus/TaskStatus' -import { messagesByPriority } +import { messagesByPriority, TaskPriority } from '../../../../services/Task/TaskPriority/TaskPriority' import { toLatLngBounds } from '../../../../services/MapBounds/MapBounds' import AsManager from '../../../../interactions/User/AsManager' @@ -52,6 +52,7 @@ export class ViewChallengeTasks extends Component { state = { bulkUpdating: false, boundsReset: false, + showPriorityBounds: false, } takeTaskSelectionAction = action => { @@ -134,6 +135,27 @@ export class ViewChallengeTasks extends Component { ) } + // Finds all the 'bounds' type rules on the challenge to show as + // bounding box overlays on the map. + findPriorityBounds = challenge => { + const parseBoundsRule = (rule, priorityLevel, priorityBounds) => { + if (rule.rules) { + return rule.rules.map((r) => parseBoundsRule(r, priorityLevel, priorityBounds)) + } + if (rule.type === "bounds") { + return priorityBounds.push( + {boundingBox: rule.value.replace("location.", ""), priorityLevel}) + } + } + + let priorityBounds = [] + parseBoundsRule(challenge.highPriorityRule, TaskPriority.high, priorityBounds) + parseBoundsRule(challenge.mediumPriorityRule, TaskPriority.medium, priorityBounds) + parseBoundsRule(challenge.lowPriorityRule, TaskPriority.low, priorityBounds) + + return priorityBounds + } + render() { if (this.props.challenge.status === ChallengeStatus.building) { return @@ -189,6 +211,9 @@ export class ViewChallengeTasks extends Component { updateBounds={this.mapBoundsUpdated} loadingTasks={this.props.loadingTasks} showMarkerPopup={this.showMarkerPopup} + togglePriorityBounds={() => this.setState({showPriorityBounds: !this.state.showPriorityBounds})} + showPriorityBounds={this.state.showPriorityBounds} + priorityBounds={this.findPriorityBounds(this.props.challenge)} allowClusterToggle initialBounds={this.state.boundsReset ? toLatLngBounds(_get(this.props, 'criteria.boundingBox')) : null} diff --git a/src/components/EnhancedMap/LayerToggle/LayerToggle.js b/src/components/EnhancedMap/LayerToggle/LayerToggle.js index 80100f62a..69b8bb244 100644 --- a/src/components/EnhancedMap/LayerToggle/LayerToggle.js +++ b/src/components/EnhancedMap/LayerToggle/LayerToggle.js @@ -77,6 +77,22 @@ export class LayerToggle extends Component {
} {overlayToggles} + {this.props.togglePriorityBounds && this.props.priorityBounds.length > 0 && +
+ + +
+ } {this.props.toggleTaskFeatures &&
+ + ) + + const map = {this.state.mapMarkers} } + {priorityBounds} return ( diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 1cb2161a7..8e4172291 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -547,6 +547,7 @@ "CountryName.ZW": "Zimbabwe", "FitBoundsControl.tooltip": "Fit map to task features", "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", "LayerToggle.controls.showOSMData.label": "OSM Data", "LayerToggle.controls.showMapillary.label": "Mapillary", "LayerToggle.controls.more.label": "More", diff --git a/src/services/Task/TaskPriority/TaskPriority.js b/src/services/Task/TaskPriority/TaskPriority.js index ed1d6797c..9c622ac0b 100644 --- a/src/services/Task/TaskPriority/TaskPriority.js +++ b/src/services/Task/TaskPriority/TaskPriority.js @@ -1,8 +1,12 @@ import _map from 'lodash/map' import _invert from 'lodash/invert' import _fromPairs from 'lodash/fromPairs' +import resolveConfig from 'tailwindcss/resolveConfig' +import tailwindConfig from '../../../tailwind.config.js' import messages from './Messages' +const colors = resolveConfig(tailwindConfig).theme.colors + /** * Constants defining task priority levels. These statuses are defined on the * server. @@ -31,3 +35,9 @@ export const messagesByPriority = _fromPairs( export const taskPriorityLabels = intl => _fromPairs( _map(messages, (message, key) => [key, intl.formatMessage(message)]) ) + +export const TaskPriorityColors = Object.freeze({ + [TaskPriority.low]: colors['teal'], + [TaskPriority.medium]: colors['mango'], + [TaskPriority.high]: colors['red-light'], +}) From 65c4a0ab95088155aceb11b39e5c8fd3e344bdac Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Tue, 9 Jun 2020 10:52:09 -0700 Subject: [PATCH 04/29] Fix confirm modal positioning Make confirm modal external so it's not positioned relative (and with same z-index) to its widgets --- src/components/ConfirmAction/ConfirmAction.js | 32 ++++++++++++------- src/components/Modal/Modal.js | 3 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/components/ConfirmAction/ConfirmAction.js b/src/components/ConfirmAction/ConfirmAction.js index 24e2ca692..3e4f53ed0 100644 --- a/src/components/ConfirmAction/ConfirmAction.js +++ b/src/components/ConfirmAction/ConfirmAction.js @@ -4,6 +4,7 @@ import { FormattedMessage } from 'react-intl' import _get from 'lodash/get' import _cloneDeep from 'lodash/cloneDeep' import Modal from '../Modal/Modal' +import External from '../External/External' import SvgSymbol from '../SvgSymbol/SvgSymbol' import messages from './Messages' import './ConfirmAction.scss' @@ -48,22 +49,16 @@ export default class ConfirmAction extends Component { } } - render() { - const action = this.props.action ? this.props.action : 'onClick' - this.originalAction = _get(this.props.children, `props.${action}`) - - const ControlWithConfirmation = - React.cloneElement(this.props.children, {[action]: this.initiateConfirmation}) - + modal = () => { return ( - - {ControlWithConfirmation} - +
@@ -106,6 +101,21 @@ export default class ConfirmAction extends Component {
+
+ ) + } + + render() { + const action = this.props.action ? this.props.action : 'onClick' + this.originalAction = _get(this.props.children, `props.${action}`) + + const ControlWithConfirmation = + React.cloneElement(this.props.children, {[action]: this.initiateConfirmation}) + + return ( + + {ControlWithConfirmation} + {this.modal()} ) } diff --git a/src/components/Modal/Modal.js b/src/components/Modal/Modal.js index 5607e4052..77d04731f 100644 --- a/src/components/Modal/Modal.js +++ b/src/components/Modal/Modal.js @@ -26,12 +26,11 @@ class Modal extends Component { "md:mr-w-4/5 md:mr-top-5 md:mr-left-16": this.props.extraWide, "md:mr-w-2/3 md:mr-top-5 md:mr-left-16": this.props.wide, "md:mr-min-w-1/3 md:mr-w-1/3 md:mr-top-5 md:mr-left-33": this.props.narrow, - "md:mr-min-w-1/3 md:mr-w-1/3 md:mr-top-5 md:mr-left-16": this.props.narrowColumn, "mr-w-full md:mr-w-1/4 md:mr-top-5 md:mr-left-37": this.props.extraNarrow, "md:mr-min-w-2/5 md:mr-w-2/5 md:mr-top-15 md:mr-left-30": this.props.medium, "md:mr-min-w-1/2 lg:mr-max-w-screen60 mr-w-full lg:mr-top-50 lg:mr-left-50 lg:mr--translate-1/2": !this.props.extraWide && !this.props.wide && !this.props.narrow && - !this.props.narrowColumn && !this.props.extraNarrow && !this.props.medium + !this.props.extraNarrow && !this.props.medium })} >
Date: Wed, 3 Jun 2020 13:39:02 -0700 Subject: [PATCH 05/29] Add Global Activity page * Add new Global Activity page that displays a live feed of task activity throughout MapRoulette, as well as a map showing the location of that activity --- src/App.js | 2 + .../ActivityListing/ActivityDescription.js | 84 +++++++++ .../ActivityListing/ActivityListing.js | 88 ++++++++++ .../ActivityListing/ActivityTime.js | 48 ++++++ src/components/ActivityListing/Messages.js | 21 +++ src/components/ActivityMap/ActivityMap.js | 98 +++++++++++ src/components/ActivityMap/Messages.js | 21 +++ src/components/EnhancedMap/EnhancedMap.js | 4 + src/components/Following/Activity/Activity.js | 2 +- src/components/Following/Activity/Messages.js | 5 + src/components/Navbar/Messages.js | 5 + src/components/Navbar/Navbar.js | 5 + .../ActivityListingWidget.js | 82 +++++++++ .../Widgets/ActivityListingWidget/Messages.js | 16 ++ .../ActivityMapWidget/ActivityMapWidget.js | 40 +++++ .../Widgets/ActivityMapWidget/Messages.js | 11 ++ src/components/Widgets/widget_registry.js | 4 + .../Message/AsTaskActivityMessage.js | 71 ++++++++ src/lang/en-US.json | 12 ++ src/pages/GlobalActivity/GlobalActivity.js | 162 ++++++++++++++++++ src/pages/GlobalActivity/Messages.js | 11 ++ src/services/MapBounds/MapBounds.js | 6 +- src/services/Widget/Widget.js | 4 +- 23 files changed, 799 insertions(+), 3 deletions(-) create mode 100644 src/components/ActivityListing/ActivityDescription.js create mode 100644 src/components/ActivityListing/ActivityListing.js create mode 100644 src/components/ActivityListing/ActivityTime.js create mode 100644 src/components/ActivityListing/Messages.js create mode 100644 src/components/ActivityMap/ActivityMap.js create mode 100644 src/components/ActivityMap/Messages.js create mode 100644 src/components/Widgets/ActivityListingWidget/ActivityListingWidget.js create mode 100644 src/components/Widgets/ActivityListingWidget/Messages.js create mode 100644 src/components/Widgets/ActivityMapWidget/ActivityMapWidget.js create mode 100644 src/components/Widgets/ActivityMapWidget/Messages.js create mode 100644 src/interactions/Message/AsTaskActivityMessage.js create mode 100644 src/pages/GlobalActivity/GlobalActivity.js create mode 100644 src/pages/GlobalActivity/Messages.js diff --git a/src/App.js b/src/App.js index cde054c86..37964d08c 100644 --- a/src/App.js +++ b/src/App.js @@ -19,6 +19,7 @@ import InspectTask from './components/AdminPane/Manage/InspectTask/InspectTask' import Review from './pages/Review/Review' import Inbox from './pages/Inbox/Inbox' import Teams from './pages/Teams/Teams' +import GlobalActivity from './pages/GlobalActivity/GlobalActivity' import PageNotFound from './components/PageNotFound/PageNotFound' import { resetCache } from './services/Server/RequestCache' import WithCurrentUser from './components/HOCs/WithCurrentUser/WithCurrentUser' @@ -111,6 +112,7 @@ export class App extends Component { + diff --git a/src/components/ActivityListing/ActivityDescription.js b/src/components/ActivityListing/ActivityDescription.js new file mode 100644 index 000000000..e528dc135 --- /dev/null +++ b/src/components/ActivityListing/ActivityDescription.js @@ -0,0 +1,84 @@ +import React from 'react' +import PropTypes from 'prop-types' +import classNames from 'classnames' +import { FormattedMessage } from 'react-intl' +import { Link } from 'react-router-dom' +import _isFinite from 'lodash/isFinite' +import { ActivityItemType, messagesByType } + from '../../services/Activity/ActivityItemTypes/ActivityItemTypes' +import { ActivityActionType, messagesByAction } + from '../../services/Activity/ActivityActionTypes/ActivityActionTypes' +import { messagesByStatus } + from '../../services/Task/TaskStatus/TaskStatus' +import ActivityTime from './ActivityTime' +import messages from './Messages' + +/** + * Displays a description of an activity entry. Primarily intended for use in + * activity timelines, but also supports a simplified rendering suitable for + * other uses via the simplified prop + * + * @author [Neil Rotstan](https://github.com/nrotstan) + */ +export const ActivityDescription = props => { + const challengeName = + props.entry.typeId === ActivityItemType.task ? + props.entry.parentName : + null + + return ( +
+
+ + {props.simplified ? +
: +
+ } + + {props.entry.user.osmProfile.displayName} + +
+
+ + {challengeName} + +
+
+ {_isFinite(props.entry.count) && + {props.entry.count} + } + + + + + { + props.entry.action === ActivityActionType.taskStatusSet && + _isFinite(props.entry.status) && + + + + } +
+
+ ) +} + +ActivityDescription.propTypes = { + entry: PropTypes.object.isRequired, + simplified: PropTypes.bool, +} + +ActivityDescription.defaultProps = { + simplified: false, +} + +export default ActivityDescription diff --git a/src/components/ActivityListing/ActivityListing.js b/src/components/ActivityListing/ActivityListing.js new file mode 100644 index 000000000..5137704f3 --- /dev/null +++ b/src/components/ActivityListing/ActivityListing.js @@ -0,0 +1,88 @@ +import React, { useState, useEffect } from 'react' +import PropTypes from 'prop-types' +import { FormattedMessage } from 'react-intl' +import _isEmpty from 'lodash/isEmpty' +import _map from 'lodash/map' +import ActivityDescription from './ActivityDescription' +import messages from './Messages' + +/** + * Displays recent activity, optionally filtered by user + * + * @author [Neil Rotstan](https://github.com/nrotstan) + */ +export const Activity = props => { + const [groupedActivity, setGroupedActivity] = useState([]) + + useEffect( + () => setGroupedActivity(groupActivity(props.activity || [], props.isGrouped)), + [props.activity, props.isGrouped] + ) + + return ( +
+ {_isEmpty(props.activity) ? + : + + {props.toggleIsGrouped && + + null} + /> + + + } +
+ {_map(groupedActivity, entry => + + )} +
+
+ } +
+ ) +} + +Activity.propTypes = { + activity: PropTypes.array, + isGrouped: PropTypes.bool, + toggleIsGrouped: PropTypes.func, +} + +/** + * Combines consecutive entries that contain identical descriptions of work, + * along with a `count` field + */ +export const groupActivity = (activity, group) => { + if (!group || activity.length <= 1) { + return activity + } + + const groups = [] + let currentGroup = Object.assign({}, activity[0], {count: 1}) + for (let i = 1; i < activity.length; i++) { + if (activity[i].osmUserId !== currentGroup.osmUserId || + activity[i].action !== currentGroup.action || + activity[i].typeId !== currentGroup.typeId || + activity[i].status !== currentGroup.status || + activity[i].parentId !== currentGroup.parentId) { + groups.push(currentGroup) + currentGroup = Object.assign({}, activity[i], {count: 0}) + } + + currentGroup.count += 1 + } + + groups.push(currentGroup) + return groups +} + +export default Activity diff --git a/src/components/ActivityListing/ActivityTime.js b/src/components/ActivityListing/ActivityTime.js new file mode 100644 index 000000000..3ca6bbee4 --- /dev/null +++ b/src/components/ActivityListing/ActivityTime.js @@ -0,0 +1,48 @@ +import React from 'react' +import PropTypes from 'prop-types' +import classNames from 'classnames' +import { + injectIntl, + FormattedRelative, + FormattedDate, + FormattedTime +} from 'react-intl' +import parse from 'date-fns/parse' + +/** + * Displays the timestamp for an activity entry, either relative or exact + * depending on value of showExactDates prop + * + * @author [Neil Rotstan](https://github.com/nrotstan) + */ +export const ActivityTime = props => { + const timestamp = parse(props.entry.created) + const created = `${props.intl.formatDate(timestamp)} ${props.intl.formatTime(timestamp)}` + return ( +
+ {props.showExactDates ? + + + : + + } +
+ ) +} + +ActivityTime.propTypes = { + entry: PropTypes.object.isRequired, + showExactDates: PropTypes.bool, +} + +ActivityTime.defaultProps = { + showExactDates: false, +} + +export default injectIntl(ActivityTime) diff --git a/src/components/ActivityListing/Messages.js b/src/components/ActivityListing/Messages.js new file mode 100644 index 000000000..b9698a0a5 --- /dev/null +++ b/src/components/ActivityListing/Messages.js @@ -0,0 +1,21 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with ActivityListing + */ +export default defineMessages({ + groupLabel: { + id: "ActivityListing.controls.group.label", + defaultMessage: "Group", + }, + + noRecentActivity: { + id: "ActivityListing.noRecentActivity", + defaultMessage: "No Recent Activity", + }, + + statusTo: { + id: "ActivityListing.statusTo", + defaultMessage: "as", + }, +}) diff --git a/src/components/ActivityMap/ActivityMap.js b/src/components/ActivityMap/ActivityMap.js new file mode 100644 index 000000000..ed4b40beb --- /dev/null +++ b/src/components/ActivityMap/ActivityMap.js @@ -0,0 +1,98 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { FormattedMessage, injectIntl } from 'react-intl' +import { ZoomControl, CircleMarker, Tooltip } from 'react-leaflet' +import { getCoord } from '@turf/invariant' +import centroid from '@turf/centroid' +import parse from 'date-fns/parse' +import differenceInHours from 'date-fns/difference_in_hours' +import _isString from 'lodash/isString' +import _get from 'lodash/get' +import _map from 'lodash/map' +import { latLng } from 'leaflet' +import { toLatLngBounds, GLOBAL_MAPBOUNDS } from '../../services/MapBounds/MapBounds' +import { layerSourceWithId } from '../../services/VisibleLayer/LayerSources' +import { TaskStatusColors } from '../../services/Task/TaskStatus/TaskStatus' +import WithVisibleLayer from '../HOCs/WithVisibleLayer/WithVisibleLayer' +import EnhancedMap from '../EnhancedMap/EnhancedMap' +import SourcedTileLayer from '../EnhancedMap/SourcedTileLayer/SourcedTileLayer' +import LayerToggle from '../EnhancedMap/LayerToggle/LayerToggle' +import ActivityDescription from '../ActivityListing/ActivityDescription' +import messages from './Messages' + +// Setup child components with necessary HOCs +const VisibleTileLayer = WithVisibleLayer(SourcedTileLayer) + +/** + * ActivityMap displays MapRoulette task activity on a map + * + * @author [Neil Rotstan](https://github.com/nrotstan) + */ +export const ActivityMap = props => { + const hasTaskMarkers = _get(props, 'activity.length', 0) > 0 + let coloredMarkers = null + if (hasTaskMarkers) { + coloredMarkers = _map(props.activity, entry => { + const geojson = + _isString(entry.task.location) ? + JSON.parse(entry.task.location) : + entry.task.location + const center = getCoord(centroid(geojson)) + const hoursOld = differenceInHours(Date.now(), parse(entry.created)) + + return ( + + + + + + ) + }) + } + + const overlayLayers = _map(props.visibleOverlays, (layerId, index) => + + ) + + if (!coloredMarkers) { + return ( +
+ +
+ ) + } + + return ( +
+ + + + + {overlayLayers} + {coloredMarkers} + +
+ ) +} + +ActivityMap.propTypes = { + /** Primary task for which nearby task markers are shown */ + activity: PropTypes.array, +} + +export default WithVisibleLayer(injectIntl(ActivityMap)) diff --git a/src/components/ActivityMap/Messages.js b/src/components/ActivityMap/Messages.js new file mode 100644 index 000000000..de414f5a1 --- /dev/null +++ b/src/components/ActivityMap/Messages.js @@ -0,0 +1,21 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with ActivityMap + */ +export default defineMessages({ + noTasksAvailableLabel: { + id: "ActivityMap.noTasksAvailable.label", + defaultMessage: "No nearby tasks are available.", + }, + + priorityLabel: { + id: "ActivityMap.tooltip.priorityLabel", + defaultMessage: "Priority: ", + }, + + statusLabel: { + id: "ActivityMap.tooltip.statusLabel", + defaultMessage: "Status: ", + }, +}) diff --git a/src/components/EnhancedMap/EnhancedMap.js b/src/components/EnhancedMap/EnhancedMap.js index 68620d0c8..0cba2829c 100644 --- a/src/components/EnhancedMap/EnhancedMap.js +++ b/src/components/EnhancedMap/EnhancedMap.js @@ -181,6 +181,10 @@ export default class EnhancedMap extends Map { componentDidMount() { super.componentDidMount() + if (this.props.noAttributionPrefix) { + this.leafletElement.attributionControl.setPrefix(false) + } + // If there are geojson features, add them to the leaflet map and then // fit the map to the bounds of those features. if (this.props.features) { diff --git a/src/components/Following/Activity/Activity.js b/src/components/Following/Activity/Activity.js index 01bd506bf..0bf66781e 100644 --- a/src/components/Following/Activity/Activity.js +++ b/src/components/Following/Activity/Activity.js @@ -95,7 +95,7 @@ export const Activity = props => { onClick={() => props.updateWidgetConfiguration({activityIsGrouped: !isGrouped})} onChange={() => null} /> - +
{_map(groupedActivity, entry => +
  • + + + +
  • {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */} diff --git a/src/components/Widgets/ActivityListingWidget/ActivityListingWidget.js b/src/components/Widgets/ActivityListingWidget/ActivityListingWidget.js new file mode 100644 index 000000000..c01ab9d83 --- /dev/null +++ b/src/components/Widgets/ActivityListingWidget/ActivityListingWidget.js @@ -0,0 +1,82 @@ +import React from 'react' +import { FormattedMessage } from 'react-intl' +import { WidgetDataTarget, registerWidgetType } + from '../../../services/Widget/Widget' +import QuickWidget from '../../QuickWidget/QuickWidget' +import Dropdown from '../../Dropdown/Dropdown' +import SvgSymbol from '../../SvgSymbol/SvgSymbol' +import ActivityListing from '../../ActivityListing/ActivityListing' +import messages from './Messages' + +const descriptor = { + widgetKey: 'ActivityListingWidget', + label: messages.title, + targets: [WidgetDataTarget.activity], + minWidth: 3, + defaultWidth: 4, + minHeight: 4, + defaultHeight: 12, + defaultConfiguration: { + activityIsGrouped: true, + showExactDates: false, + } +} + +export const ActivityListingWidget = props => { + return ( + } + rightHeaderControls = { + ( + + )} + dropdownContent={(dropdown) => ( + + )} + /> + } + > + props.updateWidgetConfiguration({ + activityIsGrouped: !props.widgetConfiguration.activityIsGrouped + })} + /> + + ) +} + +registerWidgetType(ActivityListingWidget, descriptor) + +export default ActivityListingWidget diff --git a/src/components/Widgets/ActivityListingWidget/Messages.js b/src/components/Widgets/ActivityListingWidget/Messages.js new file mode 100644 index 000000000..754feffbe --- /dev/null +++ b/src/components/Widgets/ActivityListingWidget/Messages.js @@ -0,0 +1,16 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with ActivityListingWidget + */ +export default defineMessages({ + title: { + id: "Widgets.ActivityListingWidget.title", + defaultMessage: "Activity Listing", + }, + + toggleExactDatesLabel: { + id: "Widgets.ActivityListingWidget.controls.toggleExactDates.label", + defaultMessage: "Show Exact Dates", + }, +}) diff --git a/src/components/Widgets/ActivityMapWidget/ActivityMapWidget.js b/src/components/Widgets/ActivityMapWidget/ActivityMapWidget.js new file mode 100644 index 000000000..ca20a3c0f --- /dev/null +++ b/src/components/Widgets/ActivityMapWidget/ActivityMapWidget.js @@ -0,0 +1,40 @@ +import React from 'react' +import { FormattedMessage } from 'react-intl' +import { WidgetDataTarget, registerWidgetType } + from '../../../services/Widget/Widget' +import QuickWidget from '../../QuickWidget/QuickWidget' +import MapPane from '../../EnhancedMap/MapPane/MapPane' +import ActivityMap from '../../ActivityMap/ActivityMap' +import messages from './Messages' + +const descriptor = { + widgetKey: 'ActivityMapWidget', + label: messages.title, + targets: [WidgetDataTarget.activity], + minWidth: 3, + defaultWidth: 8, + minHeight: 5, + defaultHeight: 12, +} + +export const ActivityMapWidget = props => { + return ( + } + > + + + + + ) +} + +registerWidgetType(ActivityMapWidget, descriptor) + +export default ActivityMapWidget diff --git a/src/components/Widgets/ActivityMapWidget/Messages.js b/src/components/Widgets/ActivityMapWidget/Messages.js new file mode 100644 index 000000000..fc839513b --- /dev/null +++ b/src/components/Widgets/ActivityMapWidget/Messages.js @@ -0,0 +1,11 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with ActivityMapWidget + */ +export default defineMessages({ + title: { + id: "Widgets.ActivityMapWidget.title", + defaultMessage: "Activity Map", + }, +}) diff --git a/src/components/Widgets/widget_registry.js b/src/components/Widgets/widget_registry.js index 1fbe8cc1d..2d034885d 100644 --- a/src/components/Widgets/widget_registry.js +++ b/src/components/Widgets/widget_registry.js @@ -5,6 +5,10 @@ */ // Import first-party widgets shipped with MapRoulette +export { default as ActivityListingWidget } + from './ActivityListingWidget/ActivityListingWidget' +export { default as ActivityMapWidget } + from './ActivityMapWidget/ActivityMapWidget' export { default as FollowingWidget } from './FollowingWidget/FollowingWidget' export { default as MyTeamsWidget } diff --git a/src/interactions/Message/AsTaskActivityMessage.js b/src/interactions/Message/AsTaskActivityMessage.js new file mode 100644 index 000000000..f6b4da070 --- /dev/null +++ b/src/interactions/Message/AsTaskActivityMessage.js @@ -0,0 +1,71 @@ +import _isFinite from 'lodash/isFinite' +import _uniqueId from 'lodash/uniqueId' + +import { ActivityActionType } + from '../../services/Activity/ActivityActionTypes/ActivityActionTypes' +import { ActivityItemType } + from '../../services/Activity/ActivityItemTypes/ActivityItemTypes' + +/** + * AsTaskActivityMessage adds functionality to make a websocket message about task + * activity compatible with activity components + */ +export class AsTaskActivityMessage { + constructor(message) { + Object.assign(this, message) + } + + /** + * Generate representation of message compatible with activity items, or null + * if that's not possible for this particular message + */ + asActivityItem() { + const itemAction = this.activityAction() + if (!_isFinite(itemAction)) { + return null + } + + return { + id: parseInt(_uniqueId('-')), // use negative ids + action: itemAction, + typeId: ActivityItemType.task, + created: this.meta.created, + itemId: this.data.task.id, + parentId: this.data.challenge.id, + parentName: this.data.challenge.name, + status: this.data.task.status, + task: this.data.task, + user: this.activityUser(), + } + } + + /** + * Map message type to activity action when possible + */ + activityAction() { + switch(this.messageType) { + case 'task-claimed': + return ActivityActionType.taskViewed + case 'task-completed': + return ActivityActionType.taskStatusSet + default: + return null + } + } + + /** + * Represent message user data as format used by activity items + */ + activityUser() { + return { + id: this.data.byUser.userId, + osmProfile: { + id: this.data.byUser.osmId, + displayName: this.data.byUser.displayName, + avatarURL: this.data.byUser.avatarURL, + }, + } + } +} + +export default message => new AsTaskActivityMessage(message) diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 1cb2161a7..e6fa156cf 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -1,4 +1,10 @@ { + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority:", + "ActivityMap.tooltip.statusLabel": "Status:", "ActivityTimeline.UserActivityTimeline.header": "Your Recent Activity", "BurndownChart.heading": "Tasks Remaining: {taskCount, number}", "BurndownChart.tooltip": "Tasks Remaining", @@ -568,6 +574,7 @@ "FeatureStyleLegend.comparators.missing.label": "missing", "FeatureStyleLegend.comparators.exists.label": "exists", "Following.Activity.noRecentActivity": "No Recent Activity", + "Following.Activity.controls.group.label": "Group", "Following.Activity.statusTo": "as", "StartFollowing.header": "Follow a User", "StartFollowing.controls.follow.label": "Follow", @@ -625,6 +632,7 @@ "Navbar.links.userProfile": "User Settings", "Navbar.links.userMetrics": "User Metrics", "Navbar.links.teams": "Teams", + "Navbar.links.globalActivity": "Global Activity", "Navbar.links.signout": "Sign out", "PageNotFound.message": "Oops! The page you’re looking for is lost.", "PageNotFound.homePage": "Take me home", @@ -911,6 +919,9 @@ "UserEditorSelector.currentEditor.label": "Current Editor:", "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", "WidgetPicker.menuLabel": "Add Widget", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityMapWidget.title": "Activity Map", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", "Widgets.CompletionProgressWidget.label": "Completion Progress", @@ -1029,6 +1040,7 @@ "Dashboard.header.find": "Or find", "Dashboard.header.somethingNew": "something new", "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "GlobalActivity.title": "Global Activity", "Home.Featured.browse": "Explore", "Home.Featured.header": "Featured Challenges", "Inbox.header": "Notifications", diff --git a/src/pages/GlobalActivity/GlobalActivity.js b/src/pages/GlobalActivity/GlobalActivity.js new file mode 100644 index 000000000..70019bdfb --- /dev/null +++ b/src/pages/GlobalActivity/GlobalActivity.js @@ -0,0 +1,162 @@ +import React, { useState, useEffect } from 'react' +import { injectIntl, FormattedMessage } from 'react-intl' +import { gql, useQuery } from '@apollo/client' +import _find from 'lodash/find' +import _reject from 'lodash/reject' +import { generateWidgetId, WidgetDataTarget, widgetDescriptor } + from '../../services/Widget/Widget' +import WithWidgetWorkspaces + from '../../components/HOCs/WithWidgetWorkspaces/WithWidgetWorkspaces' +import WidgetWorkspace + from '../../components/WidgetWorkspace/WidgetWorkspace' +import { subscribeToAllTasks, unsubscribeFromAllTasks } + from '../../services/Task/Task' +import { ActivityActionType } + from '../../services/Activity/ActivityActionTypes/ActivityActionTypes' +import AsTaskActivityMessage from '../../interactions/Message/AsTaskActivityMessage' +import WithCurrentUser + from '../../components/HOCs/WithCurrentUser/WithCurrentUser' +import WithErrors from '../../components/HOCs/WithErrors/WithErrors' +import BusySpinner from '../../components/BusySpinner/BusySpinner' +import SignIn from '../SignIn/SignIn' +import messages from './Messages' + +const PAGE_SIZE = 50 + +const RECENT_ACTIVITY = gql` + query Activity($osmIds: [Long!], $limit: Int, $page: Int) { + recentActions(osmIds: $osmIds, limit: $limit, offset: $page) { + id + created + typeId + parentId + parentName + itemId + action + status + user { + id + osmProfile { + id + displayName + avatarURL + } + } + task { + id + location + } + } + } +` +const WIDGET_WORKSPACE_NAME = "globalActivity" + +export const defaultWorkspaceSetup = function() { + return { + dataModelVersion: 2, + name: WIDGET_WORKSPACE_NAME, + label: "Global Activity", + widgets: [ + widgetDescriptor('ActivityListingWidget'), + widgetDescriptor('ActivityMapWidget'), + ], + layout: [ + {i: generateWidgetId(), x: 0, y: 0, w: 4, h: 12}, + {i: generateWidgetId(), x: 4, y: 0, w: 8, h: 12}, + ], + } +} + +/** + * Renders the Global Activity page + * + * @author [Neil Rotstan](https://github.com/nrotstan) + */ +export const GlobalActivity = props => { + const [liveActivity, setLiveActivity] = useState([]) + const [mounted, setMounted] = useState(false) + + const { loading, error, data, refetch } = useQuery(RECENT_ACTIVITY, { + variables: { osmIds: props.osmIds, limit: PAGE_SIZE, page: 0}, + partialRefetch: true, + onCompleted: () => setMounted(true) + }) + + useEffect(() => { + if (!mounted && refetch) { + refetch() + setMounted(true) + } + }, [mounted, refetch]) + + useEffect(() => { + subscribeToAllTasks(message => { + setLiveActivity(updateActivity(liveActivity, message)) + }, "GlobalActivity") + + return () => unsubscribeFromAllTasks("GlobalActivity") + }) + + if (error) { + throw error + } + + if (!props.user) { + return ( + props.checkingLoginStatus ? +
    + +
    : + + ) + } + + if (loading) { + return + } + + return ( + + } + lightMode={false} + darkMode={true} + activity={liveActivity.concat(data.recentActions)} + /> + ) +} + +const updateActivity = (activity, message) => { + if (message.messageType === 'task-released') { + // Remove viewed. If they changed status, that'll stay on the map; otherwise + // it'll be removed since the user abandoned the task + return _reject(activity, {action: ActivityActionType.taskViewed}) + } + + const activityItem = AsTaskActivityMessage(message).asActivityItem() + + // If message doesn't represent activity, or if we've already processed this + // message (which can happen after an unsubscribe/resubscribe), do nothing + if (!activityItem || _find(activity, ({created: message.meta.created}))) { + return activity + } + + const updatedActivity = activity.slice() + updatedActivity.unshift(activityItem) + return updatedActivity +} + +export default +WithErrors( + WithCurrentUser( + WithWidgetWorkspaces( + injectIntl(GlobalActivity), + WidgetDataTarget.activity, + WIDGET_WORKSPACE_NAME, + defaultWorkspaceSetup + ) + ) +) diff --git a/src/pages/GlobalActivity/Messages.js b/src/pages/GlobalActivity/Messages.js new file mode 100644 index 000000000..c97ee7f4b --- /dev/null +++ b/src/pages/GlobalActivity/Messages.js @@ -0,0 +1,11 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with GlobalActivity + */ +export default defineMessages({ + title: { + id: "GlobalActivity.title", + defaultMessage: "Global Activity", + }, +}) diff --git a/src/services/MapBounds/MapBounds.js b/src/services/MapBounds/MapBounds.js index ec59212fb..e66b8136f 100644 --- a/src/services/MapBounds/MapBounds.js +++ b/src/services/MapBounds/MapBounds.js @@ -15,7 +15,11 @@ export const DEFAULT_MAP_BOUNDS = [ 22.51255695405145, // north ] -export const GLOBAL_MAPBOUNDS = [-180, -90, 180, 90] +/* + * Global bounds. Note that mercator projection doesn't extend much past 85 + * degrees + */ +export const GLOBAL_MAPBOUNDS = [-180, -85, 180, 85] /** * Maximum allowed size, in degrees, of the bounding box for diff --git a/src/services/Widget/Widget.js b/src/services/Widget/Widget.js index 33299d6a7..d40a47f64 100644 --- a/src/services/Widget/Widget.js +++ b/src/services/Widget/Widget.js @@ -29,6 +29,7 @@ export const WIDGET_DATA_TARGET_TASKS = 'tasks' export const WIDGET_DATA_TARGET_TASK = 'task' export const WIDGET_DATA_TARGET_USER = 'user' export const WIDGET_DATA_TARGET_REVIEW = 'review' +export const WIDGET_DATA_TARGET_ACTIVITY = 'activity' export const WIDGET_USER_TARGET_ALL = 'all' export const WIDGET_USER_TARGET_MANAGER_READ = 'managerRead' @@ -43,7 +44,8 @@ export const WidgetDataTarget = { tasks: WIDGET_DATA_TARGET_TASKS, task: WIDGET_DATA_TARGET_TASK, user: WIDGET_DATA_TARGET_USER, - review: WIDGET_DATA_TARGET_REVIEW + review: WIDGET_DATA_TARGET_REVIEW, + activity: WIDGET_DATA_TARGET_ACTIVITY, } export const WidgetUserTarget = { From f2cc8ed54f6ad0d0de77bc17cd9750fc3dca03a2 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 9 Jun 2020 15:47:37 -0700 Subject: [PATCH 06/29] Support RFC 7464 compliant line-by-line GeoJSON --- .../GeoJSON/AsValidatableGeoJSON.js | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/interactions/GeoJSON/AsValidatableGeoJSON.js b/src/interactions/GeoJSON/AsValidatableGeoJSON.js index 6e95b6063..b96472d78 100644 --- a/src/interactions/GeoJSON/AsValidatableGeoJSON.js +++ b/src/interactions/GeoJSON/AsValidatableGeoJSON.js @@ -5,6 +5,8 @@ import _map from 'lodash/map' import _trim from 'lodash/trim' import AsLineReadableFile from '../File/AsLineReadableFile' +const RS = String.fromCharCode(0x1E) // RS (record separator) control char + /** * Provides methods related to validating and linting GeoJSON. * @@ -36,15 +38,32 @@ export class AsValidatableGeoJSON { } // Our detection approach here is pretty rudimentary, basically looking for - // open-brace at start of line and close-brace at end of line (optionally - // followed by a newline), and then checking the first two lines to see if - // they match + // either RFC 7464 compliance or an open-brace at start of line and + // close-brace at end of line (optionally followed by a newline) on the + // first two lines this.geoJSONFile.rewind() const lines = await this.geoJSONFile.readLines(2) this.geoJSONFile.rewind() const re = /^\{[^\n]+\}(\r?\n|$)/ - return lines.length > 1 && re.test(lines[0]) && re.test(lines[1]) + return this.isRFC7464Sequence(lines[0]) || + (re.test(lines[0]) && re.test(lines[1])) + } + + /** + * Performs basic check to see if this is RFC 7464 compliant, which is to say + * each line begins with a RS (record separator) control character + */ + isRFC7464Sequence(line) { + return line && line.length > 1 && line[0] === RS + } + + /** + * Normalize a RFC 7464 sequence by stripping any RS characters from the beginning + * of the line. This is safe to run on strings containing ordinary JSON as well + */ + normalizeRFC7464Sequence(line) { + return line.replace(new RegExp(`^${RS}+`, 'g'), '') } /** @@ -57,7 +76,7 @@ export class AsValidatableGeoJSON { this.geoJSONFile.rewind() this.geoJSONFile.forEach(1, rawLine => { - const line = _trim(rawLine) + const line = this.normalizeRFC7464Sequence(_trim(rawLine)) if (line.length > 0) { // Skip blank lines or pure whitespace try { const geoJSONObject = JSON.parse(line) From b5048f958d2ec37ab6b42b55057a0dce0febd026 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Wed, 10 Jun 2020 12:36:31 -0700 Subject: [PATCH 07/29] Ignore activity-feed entries with missing tasks --- src/components/ActivityListing/ActivityListing.js | 4 ++++ src/components/ActivityMap/ActivityMap.js | 4 ++++ src/components/Following/Activity/Activity.js | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/components/ActivityListing/ActivityListing.js b/src/components/ActivityListing/ActivityListing.js index 5137704f3..4483eb727 100644 --- a/src/components/ActivityListing/ActivityListing.js +++ b/src/components/ActivityListing/ActivityListing.js @@ -69,6 +69,10 @@ export const groupActivity = (activity, group) => { const groups = [] let currentGroup = Object.assign({}, activity[0], {count: 1}) for (let i = 1; i < activity.length; i++) { + if (!activity[i].parentId) { + continue + } + if (activity[i].osmUserId !== currentGroup.osmUserId || activity[i].action !== currentGroup.action || activity[i].typeId !== currentGroup.typeId || diff --git a/src/components/ActivityMap/ActivityMap.js b/src/components/ActivityMap/ActivityMap.js index ed4b40beb..c3b26cd41 100644 --- a/src/components/ActivityMap/ActivityMap.js +++ b/src/components/ActivityMap/ActivityMap.js @@ -33,6 +33,10 @@ export const ActivityMap = props => { let coloredMarkers = null if (hasTaskMarkers) { coloredMarkers = _map(props.activity, entry => { + if (!entry.task) { + return null + } + const geojson = _isString(entry.task.location) ? JSON.parse(entry.task.location) : diff --git a/src/components/Following/Activity/Activity.js b/src/components/Following/Activity/Activity.js index 0bf66781e..df8ad690c 100644 --- a/src/components/Following/Activity/Activity.js +++ b/src/components/Following/Activity/Activity.js @@ -201,6 +201,10 @@ function groupActivity(activity, group) { const groups = [] let currentGroup = Object.assign({}, activity[0], {count: 1}) for (let i = 1; i < activity.length; i++) { + if (!activity[i].parentId) { + continue + } + if (activity[i].osmUserId !== currentGroup.osmUserId || activity[i].action !== currentGroup.action || activity[i].typeId !== currentGroup.typeId || From c48bc9a49967e6f7d6ceda1b2d5e07a98d3594fc Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Wed, 10 Jun 2020 19:02:39 -0700 Subject: [PATCH 08/29] Fix inaccessible Teams page controls * Fix controls that weren't clickable because they were technically obscured by a (transparent) portion of the header image * If user is viewing a team when initiating creation of a new one, take them to My Teams view after successful creation --- src/components/Teams/EditTeam/EditTeam.js | 4 ++-- src/components/Teams/MyTeams/MyTeams.js | 3 ++- src/components/Teams/ViewTeam/ViewTeam.js | 3 ++- src/pages/Teams/Teams.js | 9 +++++++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/Teams/EditTeam/EditTeam.js b/src/components/Teams/EditTeam/EditTeam.js index 1ef9905c8..7c7dc9300 100644 --- a/src/components/Teams/EditTeam/EditTeam.js +++ b/src/components/Teams/EditTeam/EditTeam.js @@ -39,7 +39,7 @@ export const EditTeam = props => { @@ -64,7 +64,7 @@ export const EditTeam = props => { }) } } - props.finish() + props.finish(true) }} > diff --git a/src/components/Teams/MyTeams/MyTeams.js b/src/components/Teams/MyTeams/MyTeams.js index f47f266d1..679695976 100644 --- a/src/components/Teams/MyTeams/MyTeams.js +++ b/src/components/Teams/MyTeams/MyTeams.js @@ -20,7 +20,8 @@ import messages from './Messages' */ export const MyTeams = function(props) { const { loading, error, data, refetch } = useQuery(MY_TEAMS, { - variables: { userId: props.user.id } + variables: { userId: props.user.id }, + partialRefetch: true, }) // Refresh the teams when this component updates to avoid stale data. It's diff --git a/src/components/Teams/ViewTeam/ViewTeam.js b/src/components/Teams/ViewTeam/ViewTeam.js index af7ddb95f..6f9bdf8ce 100644 --- a/src/components/Teams/ViewTeam/ViewTeam.js +++ b/src/components/Teams/ViewTeam/ViewTeam.js @@ -15,7 +15,8 @@ import messages from './Messages' export const ViewTeam = props => { const { loading, error, data, refetch } = useQuery(TEAM_USERS, { - variables: { teamId: props.team.id } + variables: { teamId: props.team.id }, + partialRefetch: true, }) useEffect(() => { diff --git a/src/pages/Teams/Teams.js b/src/pages/Teams/Teams.js index f9726aa7c..92dcef3a8 100644 --- a/src/pages/Teams/Teams.js +++ b/src/pages/Teams/Teams.js @@ -38,7 +38,12 @@ export const Teams = props => { setEditingTeam(null)} + finish={success => { + setEditingTeam(null) + if (success) { + setViewingTeam(null) + } + }} /> ) @@ -119,7 +124,7 @@ export const Teams = props => {
  • -
    +
    From 674b52f83065268760b855d29ad971545328ee18 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Thu, 11 Jun 2020 10:35:06 -0700 Subject: [PATCH 09/29] Suspend clickouts while ConfirmAction is active * Allow active clickouts to be temporarily suspended via a React.Context * Suspend clickouts in ConfirmAction so that users can interact with its modal without triggering a clickout --- src/components/ConfirmAction/ConfirmAction.js | 13 ++++++++++-- src/components/Dropdown/Dropdown.js | 7 ++++++- src/components/External/External.js | 20 +++++++++++++++---- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/components/ConfirmAction/ConfirmAction.js b/src/components/ConfirmAction/ConfirmAction.js index 3e4f53ed0..27f313629 100644 --- a/src/components/ConfirmAction/ConfirmAction.js +++ b/src/components/ConfirmAction/ConfirmAction.js @@ -6,6 +6,7 @@ import _cloneDeep from 'lodash/cloneDeep' import Modal from '../Modal/Modal' import External from '../External/External' import SvgSymbol from '../SvgSymbol/SvgSymbol' +import { ExternalContext } from '../External/External' import messages from './Messages' import './ConfirmAction.scss' @@ -21,6 +22,8 @@ import './ConfirmAction.scss' * @author [Neil Rotstan](https://github.com/nrotstan) */ export default class ConfirmAction extends Component { + static contextType = ExternalContext + originalAction = null state = { @@ -34,15 +37,21 @@ export default class ConfirmAction extends Component { } } else { + // Suspend clickout so that users can interact with our modal + this.context.suspendClickout(true) this.setState({confirming: true, originalEvent: _cloneDeep(e)}) } } - cancel = () => this.setState({confirming: false}) + cancel = () => { + this.context.suspendClickout(false) + this.setState({confirming: false}) + } proceed = () => { const event = this.state.originalEvent + this.context.suspendClickout(false) this.setState({confirming: false, originalEvent: null}) if (this.originalAction) { this.originalAction(event) @@ -115,7 +124,7 @@ export default class ConfirmAction extends Component { return ( {ControlWithConfirmation} - {this.modal()} + {this.state.confirming && this.modal()} ) } diff --git a/src/components/Dropdown/Dropdown.js b/src/components/Dropdown/Dropdown.js index dff683d5a..24682b371 100644 --- a/src/components/Dropdown/Dropdown.js +++ b/src/components/Dropdown/Dropdown.js @@ -3,8 +3,11 @@ import PropTypes from 'prop-types' import classNames from 'classnames' import wrapWithClickout from 'react-clickout' import SvgSymbol from '../SvgSymbol/SvgSymbol' +import { ExternalContext } from '../External/External' class Dropdown extends Component { + static contextType = ExternalContext + state = { isVisible: false, } @@ -18,7 +21,9 @@ class Dropdown extends Component { } handleClickout() { - this.closeDropdown() + if (!this.context.clickoutSuspended) { + this.closeDropdown() + } } render() { diff --git a/src/components/External/External.js b/src/components/External/External.js index 1b8a99efd..163771ca0 100644 --- a/src/components/External/External.js +++ b/src/components/External/External.js @@ -1,10 +1,24 @@ -import { Component } from 'react' +import React, { Component } from 'react' import ReactDOM from 'react-dom' import PropTypes from 'prop-types' const modalRoot = document.getElementById('external-root') -class External extends Component { +/** + * Context that can be used to temporarily suspend clickouts for components + * making use of External (which aren't otherwise detected as proper children + * by react-clickout since they've been moved around in the DOM). Components + * making use of react-clickout should check this context to see if any child + * components wish to temporarily suspend clickouts + */ +export const ExternalContext = React.createContext({ + clickoutSuspended: false, + suspendClickout(isSuspended) { + this.clickoutSuspended = isSuspended + } +}) + +export default class External extends Component { el = document.createElement('div') componentDidMount() { @@ -23,5 +37,3 @@ class External extends Component { External.propTypes = { children: PropTypes.node.isRequired, } - -export default External From 013867551e901c7600712bb434a589cfcc7c9592 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Fri, 12 Jun 2020 15:17:00 -0700 Subject: [PATCH 10/29] Show project and link task in ActivityListing * Refactor `Following/Activity` component to use `ActivityListing` component for rendering of activity feed * Switch `Following/Activity` to fetch activity via GraphQL instead of API * Show project name (with link) in ActivityListing entries * Link to task in ActivityListing entries --- .../ActivityListing/ActivityDescription.js | 15 +- .../UserActivityTimeline/Messages.js | 2 +- src/components/Following/Activity/Activity.js | 227 +++++------------- src/components/Following/Activity/Messages.js | 16 +- src/components/Following/FollowingQueries.js | 33 +++ src/lang/en-US.json | 6 +- src/pages/GlobalActivity/GlobalActivity.js | 11 + src/styles/utilities/typography.css | 9 + 8 files changed, 126 insertions(+), 193 deletions(-) diff --git a/src/components/ActivityListing/ActivityDescription.js b/src/components/ActivityListing/ActivityDescription.js index e528dc135..fa0599055 100644 --- a/src/components/ActivityListing/ActivityDescription.js +++ b/src/components/ActivityListing/ActivityDescription.js @@ -4,6 +4,7 @@ import classNames from 'classnames' import { FormattedMessage } from 'react-intl' import { Link } from 'react-router-dom' import _isFinite from 'lodash/isFinite' +import _get from 'lodash/get' import { ActivityItemType, messagesByType } from '../../services/Activity/ActivityItemTypes/ActivityItemTypes' import { ActivityActionType, messagesByAction } @@ -48,15 +49,25 @@ export const ActivityDescription = props => { {challengeName}
    + {_get(props.entry, 'challenge.general.parent.id') && +
    + + {props.entry.challenge.general.parent.displayName || props.entry.challenge.general.parent.name} + +
    + }
    {_isFinite(props.entry.count) && {props.entry.count} } - + - { + { props.entry.action === ActivityActionType.taskStatusSet && _isFinite(props.entry.status) && diff --git a/src/components/ActivityTimeline/UserActivityTimeline/Messages.js b/src/components/ActivityTimeline/UserActivityTimeline/Messages.js index 79c09d58b..2deef3c49 100644 --- a/src/components/ActivityTimeline/UserActivityTimeline/Messages.js +++ b/src/components/ActivityTimeline/UserActivityTimeline/Messages.js @@ -6,7 +6,7 @@ import { defineMessages } from 'react-intl' export default defineMessages({ header: { id: "ActivityTimeline.UserActivityTimeline.header", - defaultMessage: "Your Recent Activity", + defaultMessage: "Your Recent Contributions", }, }) diff --git a/src/components/Following/Activity/Activity.js b/src/components/Following/Activity/Activity.js index df8ad690c..c6c55c894 100644 --- a/src/components/Following/Activity/Activity.js +++ b/src/components/Following/Activity/Activity.js @@ -1,32 +1,18 @@ import React, { useState, useEffect } from 'react' -import PropTypes from 'prop-types' -import { - injectIntl, - FormattedMessage, - FormattedRelative, - FormattedDate, - FormattedTime -} from 'react-intl' -import { Link } from 'react-router-dom' +import { FormattedMessage } from 'react-intl' +import { useQuery } from '@apollo/client' import _get from 'lodash/get' import _isEmpty from 'lodash/isEmpty' +import _find from 'lodash/find' import _map from 'lodash/map' -import _reduce from 'lodash/reduce' -import _isFinite from 'lodash/isFinite' import _uniqBy from 'lodash/uniqBy' -import _unionBy from 'lodash/unionBy' -import _throttle from 'lodash/throttle' -import parse from 'date-fns/parse' -import { fetchMultipleUserActivity } from '../../../services/User/User' import { subscribeToAllTasks, unsubscribeFromAllTasks } from '../../../services/Task/Task' -import { ActivityItemType, messagesByType } - from '../../../services/Activity/ActivityItemTypes/ActivityItemTypes' -import { messagesByAction } - from '../../../services/Activity/ActivityActionTypes/ActivityActionTypes' -import { messagesByStatus } - from '../../../services/Task/TaskStatus/TaskStatus' +import AsTaskActivityMessage + from '../../../interactions/Message/AsTaskActivityMessage' import BusySpinner from '../../BusySpinner/BusySpinner' +import ActivityListing from '../../ActivityListing/ActivityListing' +import { RECENT_ACTIVITY } from '../FollowingQueries' import messages from './Messages' const PAGE_SIZE = 50 @@ -36,189 +22,84 @@ const PAGE_SIZE = 50 */ export const Activity = props => { const [activity, setActivity] = useState(null) - const [groupedActivity, setGroupedActivity] = useState([]) const [page, setPage] = useState(0) const [hasMore, setHasMore] = useState(false) - const isGrouped = props.widgetConfiguration.activityIsGrouped + const [mounted, setMounted] = useState(false) const following = _get(props.data, 'user.following') const followingIds = new Set(_map(following, 'id')) + const { loading, error, data, refetch } = useQuery(RECENT_ACTIVITY, { + variables: { osmIds: _map(following, 'osmProfile.id'), limit: PAGE_SIZE, page}, + partialRefetch: true, + onCompleted: () => setMounted(true) + }) + useEffect(() => { - if (!_isEmpty(following)) { - fetchMultipleUserActivity(_map(following, 'osmProfile.id'), PAGE_SIZE, page) - .then(newActivity => { - setActivity(activity => _uniqBy((activity || []).concat(newActivity.activity), 'id')) - setHasMore(newActivity.hasMore) - }) + if (!mounted && refetch) { + refetch() + setMounted(true) } - }, [following, page]) - - useEffect( - () => setGroupedActivity(groupActivity(activity || [], isGrouped)), - [activity, isGrouped] - ) + }, [mounted, refetch]) useEffect(() => { - // Refetch the first page of results and merge them in. Throttle to at most - // one request per 10 seconds - const refetchLatest = _throttle(() => { - fetchMultipleUserActivity(_map(following, 'osmProfile.id'), PAGE_SIZE, 0) - .then(latestActivity => { - setActivity(activity => _unionBy(latestActivity.activity, activity, 'id')) - }) - }, 10000, {leading: false, trailing: true}) + if (!_isEmpty(following) && data) { + setActivity(activity => _uniqBy((activity || []).concat(data.recentActions), 'id')) + setHasMore(data.recentActions.length >= PAGE_SIZE) + } + }, [following, data]) + useEffect(() => { subscribeToAllTasks(message => { - if (message.messageType === 'task-update' && + if (message.messageType === 'task-completed' && followingIds.has(message.data.byUser.userId)) { - refetchLatest() + setActivity(activity => addLiveActivity(activity, message)) } }, "FollowWidgetActivity") return () => unsubscribeFromAllTasks("FollowWidgetActivity") }) - if (!props.data || (!_isEmpty(following) && !activity)) { + if (error) { + throw error + } + + if (loading || !props.data) { return } - const userMap = _reduce(following, (m, u) => m.set(u.osmProfile.id, u), new Map()) return (
    - {_isEmpty(activity) ? - : - - props.updateWidgetConfiguration({activityIsGrouped: !isGrouped})} - onChange={() => null} - /> - -
    - {_map(groupedActivity, entry => - - )} -
    - {hasMore && - - } -
    + props.updateWidgetConfiguration({ + activityIsGrouped: !props.widgetConfiguration.activityIsGrouped + })} + /> + {hasMore && + }
    ) } -Activity.propTypes = { - data: PropTypes.object, -} - -export const ActivityTime = props => { - const timestamp = parse(props.entry.created) - const created = `${props.intl.formatDate(timestamp)} ${props.intl.formatTime(timestamp)}` - return ( -
    - {props.widgetConfiguration.showExactDates ? - - - : - - } -
    - ) -} +function addLiveActivity(activity, message) { + const activityItem = AsTaskActivityMessage(message).asActivityItem() -export const ActivityDescription = props => { - if (!props.user) { - return null - } - - const challengeName = - props.entry.typeId === ActivityItemType.task ? - props.entry.parentName : - null - - return ( -
    -
    - -
    - - {props.user.osmProfile.displayName} - -
    -
    - - {challengeName} - -
    -
    - {_isFinite(props.entry.count) && - {props.entry.count} - } - - - - - { - _isFinite(props.entry.status) && - - - - } -
    -
    - ) -} - -/** - * Combines consecutive entries that contain identical descriptions of work, - * along with a `count` field - */ -function groupActivity(activity, group) { - if (!group || activity.length <= 1) { + // If message doesn't represent activity, or if we've already processed this + // message (which can happen after an unsubscribe/resubscribe), do nothing + if (!activityItem || _find(activity, ({created: message.meta.created}))) { return activity } - const groups = [] - let currentGroup = Object.assign({}, activity[0], {count: 1}) - for (let i = 1; i < activity.length; i++) { - if (!activity[i].parentId) { - continue - } - - if (activity[i].osmUserId !== currentGroup.osmUserId || - activity[i].action !== currentGroup.action || - activity[i].typeId !== currentGroup.typeId || - activity[i].status !== currentGroup.status || - activity[i].parentId !== currentGroup.parentId) { - groups.push(currentGroup) - currentGroup = Object.assign({}, activity[i], {count: 0}) - } - - currentGroup.count += 1 - } - - groups.push(currentGroup) - return groups + const updatedActivity = activity.slice() + updatedActivity.unshift(activityItem) + return updatedActivity } -export default injectIntl(Activity) +export default Activity diff --git a/src/components/Following/Activity/Messages.js b/src/components/Following/Activity/Messages.js index a9d3bc85d..19ebe43a4 100644 --- a/src/components/Following/Activity/Messages.js +++ b/src/components/Following/Activity/Messages.js @@ -4,18 +4,8 @@ import { defineMessages } from 'react-intl' * Internationalized messages for use with Activity */ export default defineMessages({ - noRecentActivity: { - id: "Following.Activity.noRecentActivity", - defaultMessage: "No Recent Activity", - }, - - groupLabel: { - id: "Following.Activity.controls.group.label", - defaultMessage: "Group", - }, - - statusTo: { - id: "Following.Activity.statusTo", - defaultMessage: "as", + loadMoreLabel: { + id: "Following.Activity.controls.loadMore.label", + defaultMessage: "Load More", }, }) diff --git a/src/components/Following/FollowingQueries.js b/src/components/Following/FollowingQueries.js index 50b55053c..26813b4c4 100644 --- a/src/components/Following/FollowingQueries.js +++ b/src/components/Following/FollowingQueries.js @@ -66,3 +66,36 @@ export const UNBLOCK_USER = gql` ${USER_WITH_FOLLOW_DATA} ` + +export const RECENT_ACTIVITY = gql` + query Activity($osmIds: [Long!], $limit: Int, $page: Int) { + recentActions(osmIds: $osmIds, limit: $limit, offset: $page) { + id + created + typeId + parentId + parentName + itemId + action + status + user { ...UserIdentity } + task { + id + location + } + challenge { + id + name + general { + parent { + id + displayName + name + } + } + } + } + } + + ${USER_IDENTITY} +` diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 4f2a4396c..bc61f7ad4 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -5,7 +5,7 @@ "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", "ActivityMap.tooltip.priorityLabel": "Priority:", "ActivityMap.tooltip.statusLabel": "Status:", - "ActivityTimeline.UserActivityTimeline.header": "Your Recent Activity", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", "BurndownChart.heading": "Tasks Remaining: {taskCount, number}", "BurndownChart.tooltip": "Tasks Remaining", "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", @@ -574,9 +574,7 @@ "FeatureStyleLegend.comparators.contains.label": "contains", "FeatureStyleLegend.comparators.missing.label": "missing", "FeatureStyleLegend.comparators.exists.label": "exists", - "Following.Activity.noRecentActivity": "No Recent Activity", - "Following.Activity.controls.group.label": "Group", - "Following.Activity.statusTo": "as", + "Following.Activity.controls.loadMore.label": "Load More", "StartFollowing.header": "Follow a User", "StartFollowing.controls.follow.label": "Follow", "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", diff --git a/src/pages/GlobalActivity/GlobalActivity.js b/src/pages/GlobalActivity/GlobalActivity.js index 70019bdfb..bdfd0d42b 100644 --- a/src/pages/GlobalActivity/GlobalActivity.js +++ b/src/pages/GlobalActivity/GlobalActivity.js @@ -46,6 +46,17 @@ const RECENT_ACTIVITY = gql` id location } + challenge { + id + name + general { + parent { + id + name + displayName + } + } + } } } ` diff --git a/src/styles/utilities/typography.css b/src/styles/utilities/typography.css index 502fb3d1e..0a3ae800b 100644 --- a/src/styles/utilities/typography.css +++ b/src/styles/utilities/typography.css @@ -68,6 +68,15 @@ h4, @apply mr-block mr-mb-2; } +.mr-links-grey-light a { + @apply mr-text-grey-light; + + &:hover, + &.active { + @apply mr-text-white; + } +} + .mr-overflow-ellipsis { text-overflow: ellipsis; } From 6e1d631e033c0e2e942aa5312715146dc796556b Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Sat, 13 Jun 2020 09:12:28 -0700 Subject: [PATCH 11/29] Upgrade apollo-client to 3.0.0-rc.4 --- package.json | 4 ++-- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index b60826f8b..7be8377bd 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "3.6.4", "private": true, "dependencies": { - "@apollo/client": "^3.0.0-beta.44", + "@apollo/client": "3.0.0-rc.4", "@mapbox/geo-viewport": "^0.4.0", "@mapbox/geojsonhint": "^2.0.1", "@nivo/bar": "^0.61.1", @@ -28,7 +28,7 @@ "downshift": "^2.0.3", "file-saver": "^2.0.2", "fuse.js": "^3.1.0", - "graphql": "^15.0.0", + "graphql": "^15.1.0", "handlebars": "^4.2.0", "leaflet": "^1.5.1", "leaflet-lasso": "^2.0.4", diff --git a/yarn.lock b/yarn.lock index eda533b2b..c2e298454 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,16 +2,16 @@ # yarn lockfile v1 -"@apollo/client@^3.0.0-beta.44": - version "3.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-beta.44.tgz#79c6083dc2fe81725ad64398bc78e641ed1c1d84" - integrity sha512-udNiabIYs9WLHWvj2j6tlsaWPNhgMZsHrZyBTKOh+69fLpmZZ4Vv4mepWq/3WCzyHoWa3n3FPi/ajNljkO/Olg== +"@apollo/client@3.0.0-rc.4": + version "3.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-rc.4.tgz#20f621c5213550c1f6c3ab0018959c41b07ea246" + integrity sha512-hIs+C+i+qVQCkYbXUA0f+df2hC+0I8u5P38B4Ax5gOKh2gT1ZuYoFgz2EWrVZJf4fW6OUxqXLrPRnlG/SLq0rg== dependencies: "@types/zen-observable" "^0.8.0" "@wry/equality" "^0.1.9" fast-json-stable-stringify "^2.0.0" graphql-tag "^2.10.2" - optimism "^0.11.5" + optimism "^0.12.1" symbol-observable "^1.2.0" ts-invariant "^0.4.4" tslib "^1.10.0" @@ -2630,7 +2630,7 @@ "@webassemblyjs/wast-parser" "1.8.5" "@xtuc/long" "4.2.2" -"@wry/context@^0.5.0": +"@wry/context@^0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.5.2.tgz#f2a5d5ab9227343aa74c81e06533c1ef84598ec7" integrity sha512-B/JLuRZ/vbEKHRUiGj6xiMojST1kHhu4WcreLfNN7q9DqQFrb97cWgf/kiYsPSUCAMVN0HzfFc8XjJdzgZzfjw== @@ -7136,10 +7136,10 @@ graphql-tag@^2.10.2: resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.3.tgz#ea1baba5eb8fc6339e4c4cf049dabe522b0edf03" integrity sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA== -graphql@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.0.0.tgz#042a5eb5e2506a2e2111ce41eb446a8e570b8be9" - integrity sha512-ZyVO1xIF9F+4cxfkdhOJINM+51B06Friuv4M66W7HzUOeFd+vNzUn4vtswYINPi6sysjf1M2Ri/rwZALqgwbaQ== +graphql@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.1.0.tgz#b93e28de805294ec08e1630d901db550cb8960a1" + integrity sha512-0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q== growly@^1.3.0: version "1.3.0" @@ -10116,12 +10116,12 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimism@^0.11.5: - version "0.11.5" - resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.11.5.tgz#4c5d45fa0fa1cc9dcf092729b5d6d661b53ff5c9" - integrity sha512-twCHmBb64DYzEZ8A3O+TLCuF/RmZPBhXPQYv4agoiALRLlW9SidMzd7lwUP9mL0jOZhzhnBmb8ajqA00ECo/7g== +optimism@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.12.1.tgz#933f9467b9aef0e601655adb9638f893e486ad02" + integrity sha512-t8I7HM1dw0SECitBYAqFOVHoBAHEQBTeKjIL9y9ImHzAVkdyPK4ifTgM4VJRDtTUY4r/u5Eqxs4XcGPHaoPkeQ== dependencies: - "@wry/context" "^0.5.0" + "@wry/context" "^0.5.2" optimist@^0.6.1: version "0.6.1" From e8bfc050a66827076754b7dc41c6ef20f03b3547 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Sat, 13 Jun 2020 09:33:59 -0700 Subject: [PATCH 12/29] Upgrade create-react-app to v3.4.1 --- package.json | 2 +- yarn.lock | 1218 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 836 insertions(+), 384 deletions(-) diff --git a/package.json b/package.json index 7be8377bd..d25c38612 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "react-redux": "^5.0.5", "react-responsive": "^4.1.0", "react-router-dom": "^4.2.2", - "react-scripts": "3.3.1", + "react-scripts": "3.4.1", "react-share": "^1.16.0", "react-syntax-highlighter": "^10.3.0", "react-table": "^6.7.6", diff --git a/yarn.lock b/yarn.lock index c2e298454..1502d40f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,37 +30,45 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" + integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== + dependencies: + "@babel/highlight" "^7.10.1" + "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" dependencies: "@babel/highlight" "^7.0.0" -"@babel/compat-data@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.4.tgz#bbe65d05a291667a8394fe8a0e0e277ef22b0d2a" - integrity sha512-lHLhlsvFjJAqNU71b7k6Vv9ewjmTXKvqaMv7n0G1etdCabWLw3nEYE8mmgoVOxMIFE07xOvo7H7XBASirX6Rrg== +"@babel/compat-data@^7.10.1", "@babel/compat-data@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.1.tgz#b1085ffe72cd17bf2c0ee790fc09f9626011b2db" + integrity sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw== dependencies: - browserslist "^4.8.5" + browserslist "^4.12.0" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e" - integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA== +"@babel/core@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helpers" "^7.8.4" - "@babel/parser" "^7.8.4" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" @@ -104,6 +112,16 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/generator@^7.10.1", "@babel/generator@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" + integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== + dependencies: + "@babel/types" "^7.10.2" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/generator@^7.4.0", "@babel/generator@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" @@ -133,22 +151,19 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== - dependencies: - "@babel/types" "^7.8.3" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" dependencies: "@babel/types" "^7.0.0" +"@babel/helper-annotate-as-pure@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" + integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== + dependencies: + "@babel/types" "^7.10.1" + "@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" @@ -171,6 +186,23 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-builder-react-jsx-experimental@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz#9a7d58ad184d3ac3bafb1a452cec2bad7e4a0bc8" + integrity sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-module-imports" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-builder-react-jsx@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz#a327f0cf983af5554701b1215de54a019f09b532" + integrity sha512-KXzzpyWhXgzjXIlJU1ZjIXzUPdej1suE6vzqgImZ/cpAsR/CC8gUcX4EWRmDfWz/cs6HOCPMBIJ3nKoXt3BFuw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/types" "^7.10.1" + "@babel/helper-builder-react-jsx@^7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" @@ -178,14 +210,6 @@ "@babel/types" "^7.3.0" esutils "^2.0.0" -"@babel/helper-builder-react-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz#dee98d7d79cc1f003d80b76fe01c7f8945665ff6" - integrity sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ== - dependencies: - "@babel/types" "^7.8.3" - esutils "^2.0.0" - "@babel/helper-call-delegate@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" @@ -194,26 +218,29 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-call-delegate@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" - integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A== +"@babel/helper-compilation-targets@^7.8.7": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz#a17d9723b6e2c750299d2a14d4637c76936d8285" + integrity sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz#03d7ecd454b7ebe19a254f76617e61770aed2c88" - integrity sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg== - dependencies: - "@babel/compat-data" "^7.8.4" - browserslist "^4.8.5" + "@babel/compat-data" "^7.10.1" + browserslist "^4.12.0" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" +"@babel/helper-create-class-features-plugin@^7.10.1": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz#7474295770f217dbcf288bf7572eb213db46ee67" + integrity sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/helper-create-class-features-plugin@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" @@ -226,6 +253,15 @@ "@babel/helper-replace-supers" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" +"@babel/helper-create-regexp-features-plugin@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz#1b8feeab1594cbcfbf3ab5a3bbcabac0468efdbd" + integrity sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-regex" "^7.10.1" + regexpu-core "^4.7.0" + "@babel/helper-create-regexp-features-plugin@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" @@ -234,6 +270,15 @@ "@babel/helper-regex" "^7.8.3" regexpu-core "^4.6.0" +"@babel/helper-define-map@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz#5e69ee8308648470dd7900d159c044c10285221d" + integrity sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg== + dependencies: + "@babel/helper-function-name" "^7.10.1" + "@babel/types" "^7.10.1" + lodash "^4.17.13" + "@babel/helper-define-map@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" @@ -242,15 +287,6 @@ "@babel/types" "^7.5.5" lodash "^4.17.13" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" @@ -274,6 +310,15 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-function-name@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" + integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + "@babel/helper-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" @@ -289,6 +334,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-get-function-arity@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" + integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== + dependencies: + "@babel/types" "^7.10.1" + "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" @@ -296,18 +348,25 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-hoist-variables@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz#7e77c82e5dcae1ebf123174c385aaadbf787d077" + integrity sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg== + dependencies: + "@babel/types" "^7.10.1" + "@babel/helper-hoist-variables@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" dependencies: "@babel/types" "^7.4.4" -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== +"@babel/helper-member-expression-to-functions@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz#432967fd7e12a4afef66c4687d4ca22bc0456f15" + integrity sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.1" "@babel/helper-member-expression-to-functions@^7.5.5": version "7.5.5" @@ -328,6 +387,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-module-imports@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" + integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== + dependencies: + "@babel/types" "^7.10.1" + "@babel/helper-module-imports@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" @@ -346,16 +412,17 @@ "@babel/types" "^7.4.4" lodash "^4.17.11" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" - integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" +"@babel/helper-module-transforms@^7.10.1", "@babel/helper-module-transforms@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz#24e2f08ee6832c60b157bb0936c86bef7210c622" + integrity sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg== + dependencies: + "@babel/helper-module-imports" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.0.0": @@ -364,6 +431,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-optimise-call-expression@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz#b4a1f2561870ce1247ceddb02a3860fa96d72543" + integrity sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg== + dependencies: + "@babel/types" "^7.10.1" + "@babel/helper-optimise-call-expression@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" @@ -375,6 +449,11 @@ version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" +"@babel/helper-plugin-utils@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz#ec5a5cf0eec925b66c60580328b122c01230a127" + integrity sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA== + "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" @@ -386,6 +465,13 @@ dependencies: lodash "^4.17.11" +"@babel/helper-regex@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.1.tgz#021cf1a7ba99822f993222a001cc3fec83255b96" + integrity sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g== + dependencies: + lodash "^4.17.13" + "@babel/helper-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" @@ -414,6 +500,16 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-replace-supers@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz#ec6859d20c5d8087f6a2dc4e014db7228975f13d" + integrity sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + "@babel/helper-replace-supers@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" @@ -440,13 +536,20 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== +"@babel/helper-simple-access@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz#08fb7e22ace9eb8326f7e3920a1c2052f13d851e" + integrity sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw== dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/template" "^7.10.1" + "@babel/types" "^7.10.1" + +"@babel/helper-split-export-declaration@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" + integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== + dependencies: + "@babel/types" "^7.10.1" "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" @@ -461,6 +564,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" + integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== + "@babel/helper-wrap-function@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -496,14 +604,14 @@ "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" -"@babel/helpers@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" - integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== +"@babel/helpers@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" + integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.4" - "@babel/types" "^7.8.3" + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" "@babel/highlight@^7.0.0": version "7.0.0" @@ -513,6 +621,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" + integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== + dependencies: + "@babel/helper-validator-identifier" "^7.10.1" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -522,10 +639,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" +"@babel/parser@^7.10.1", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" + integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== + "@babel/parser@^7.6.0", "@babel/parser@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" @@ -535,11 +657,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== -"@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== - "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -604,7 +721,7 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-proposal-nullish-coalescing-operator@7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== @@ -620,6 +737,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.8.3" +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz#a9a38bc34f78bdfd981e791c27c6fdcec478c123" + integrity sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-numeric-separator" "^7.10.1" + "@babel/plugin-proposal-object-rest-spread@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" @@ -627,13 +752,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA== +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz#cba44908ac9f142650b4a65b8aa06bf3478d5fb6" + integrity sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.1" "@babel/plugin-proposal-optional-catch-binding@^7.2.0": version "7.2.0" @@ -650,14 +776,30 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" - integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg== +"@babel/plugin-proposal-optional-chaining@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz#15f5d6d22708629451a91be28f8facc55b0e818c" + integrity sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz#dc04feb25e2dd70c12b05d680190e138fa2c0c6f" + integrity sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-proposal-unicode-property-regex@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" @@ -727,19 +869,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz#0ae371134a42b91d5418feb3c8c8d43e1565d2da" + integrity sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" - integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" @@ -747,6 +889,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-numeric-separator@^7.10.1", "@babel/plugin-syntax-numeric-separator@^7.8.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz#25761ee7410bc8cf97327ba741ee94e4a61b7d99" + integrity sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" @@ -794,12 +943,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-typescript@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc" - integrity sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg== +"@babel/plugin-syntax-typescript@^7.10.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz#5e82bc27bb4202b93b949b029e699db536733810" + integrity sha512-X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" "@babel/plugin-transform-arrow-functions@^7.2.0": version "7.2.0" @@ -872,18 +1021,18 @@ "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" - integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" +"@babel/plugin-transform-classes@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz#6e11dd6c4dfae70f540480a4702477ed766d733f" + integrity sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.1" + "@babel/helper-define-map" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-optimise-call-expression" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-replace-supers" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -912,6 +1061,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz#920b9fec2d78bb57ebb64a644d5c2ba67cc104ee" + integrity sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-transform-dotall-regex@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" @@ -956,10 +1113,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.8.3.tgz#da705a655466b2a9b36046b57bf0cbcd53551bd4" - integrity sha512-g/6WTWG/xbdd2exBBzMfygjX/zw4eyNC4X8pRaq7aRHRoDUCzAIu3kGYIXviOv8BjCuWm8vDBwjHcjiRNgXrPA== +"@babel/plugin-transform-flow-strip-types@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz#8a3538aa40434e000b8f44a3c5c9ac7229bd2392" + integrity sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow" "^7.8.3" @@ -970,12 +1127,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-for-of@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz#6fe8eae5d6875086ee185dd0b098a8513783b47d" - integrity sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A== +"@babel/plugin-transform-for-of@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz#ff01119784eb0ee32258e8646157ba2501fcfda5" + integrity sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" "@babel/plugin-transform-function-name@^7.4.4": version "7.4.4" @@ -1026,14 +1183,14 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-amd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" - integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ== +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz#65950e8e05797ebd2fe532b96e19fc5482a1d52a" + integrity sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.6.0": version "7.6.0" @@ -1044,15 +1201,15 @@ "@babel/helper-simple-access" "^7.1.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg== +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz#d5ff4b4413ed97ffded99961056e1fb980fb9301" + integrity sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/helper-simple-access" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.5.0": version "7.5.0" @@ -1062,15 +1219,15 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" - integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg== +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz#9962e4b0ac6aaf2e20431ada3d8ec72082cbffb6" + integrity sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA== dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-hoist-variables" "^7.10.1" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.2.0": version "7.2.0" @@ -1079,13 +1236,13 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-umd@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" - integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw== +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz#ea080911ffc6eb21840a5197a39ede4ee67b1595" + integrity sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA== dependencies: - "@babel/helper-module-transforms" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" "@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": version "7.6.2" @@ -1128,6 +1285,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" +"@babel/plugin-transform-parameters@^7.10.1", "@babel/plugin-transform-parameters@^7.8.7": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz#b25938a3c5fae0354144a720b07b32766f683ddd" + integrity sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg== + dependencies: + "@babel/helper-get-function-arity" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" @@ -1136,15 +1301,6 @@ "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-parameters@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz#1d5155de0b65db0ccf9971165745d3bb990d77d3" - integrity sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA== - dependencies: - "@babel/helper-call-delegate" "^7.8.3" - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-property-literals@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" @@ -1178,6 +1334,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-react-jsx-development@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz#1ac6300d8b28ef381ee48e6fec430cc38047b7f3" + integrity sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" + "@babel/plugin-transform-react-jsx-self@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" @@ -1185,13 +1350,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx-self@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz#c4f178b2aa588ecfa8d077ea80d4194ee77ed702" - integrity sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg== +"@babel/plugin-transform-react-jsx-self@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz#22143e14388d72eb88649606bb9e46f421bc3821" + integrity sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" "@babel/plugin-transform-react-jsx-source@^7.0.0": version "7.2.0" @@ -1200,13 +1365,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx-source@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz#951e75a8af47f9f120db731be095d2b2c34920e0" - integrity sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag== +"@babel/plugin-transform-react-jsx-source@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz#30db3d4ee3cdebbb26a82a9703673714777a4273" + integrity sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" "@babel/plugin-transform-react-jsx@^7.0.0": version "7.3.0" @@ -1216,14 +1381,15 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a" - integrity sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g== +"@babel/plugin-transform-react-jsx@^7.9.1": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz#91f544248ba131486decb5d9806da6a6e19a2896" + integrity sha512-MBVworWiSRBap3Vs39eHt+6pJuLUAaK4oxGc8g+wY+vuSJvLiEQjW1LSTqKb8OUPtDvHCkdPhk7d6sjC19xyFw== dependencies: - "@babel/helper-builder-react-jsx" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/helper-builder-react-jsx" "^7.10.1" + "@babel/helper-builder-react-jsx-experimental" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-jsx" "^7.10.1" "@babel/plugin-transform-regenerator@^7.4.5": version "7.4.5" @@ -1231,12 +1397,12 @@ dependencies: regenerator-transform "^0.14.0" -"@babel/plugin-transform-regenerator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" - integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA== +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz#10e175cbe7bdb63cc9b39f9b3f823c5c7c5c5490" + integrity sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw== dependencies: - regenerator-transform "^0.14.0" + regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.2.0": version "7.2.0" @@ -1251,10 +1417,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-runtime@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" - integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ== +"@babel/plugin-transform-runtime@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -1330,14 +1496,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typescript@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz#be6f01a7ef423be68e65ace1f04fc407e6d88917" - integrity sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ== +"@babel/plugin-transform-typescript@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.1.tgz#2c54daea231f602468686d9faa76f182a94507a6" + integrity sha512-v+QWKlmCnsaimLeqq9vyCsVRMViZG1k2SZTlcZvB+TqyH570Zsij8nvVUZzOASCRiQFUxkLrn9Wg/kH0zgy5OQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-typescript" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.1" + "@babel/helper-plugin-utils" "^7.10.1" + "@babel/plugin-syntax-typescript" "^7.10.1" "@babel/plugin-transform-unicode-regex@^7.6.2": version "7.6.2" @@ -1355,27 +1521,29 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.4.tgz#9dac6df5f423015d3d49b6e9e5fa3413e4a72c4e" - integrity sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w== +"@babel/preset-env@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== dependencies: - "@babel/compat-data" "^7.8.4" - "@babel/helper-compilation-targets" "^7.8.4" + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" "@babel/plugin-proposal-dynamic-import" "^7.8.3" "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" @@ -1384,26 +1552,26 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" "@babel/plugin-transform-computed-properties" "^7.8.3" "@babel/plugin-transform-destructuring" "^7.8.3" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.8.4" + "@babel/plugin-transform-for-of" "^7.9.0" "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.8.3" - "@babel/plugin-transform-modules-commonjs" "^7.8.3" - "@babel/plugin-transform-modules-systemjs" "^7.8.3" - "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.4" + "@babel/plugin-transform-parameters" "^7.8.7" "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" "@babel/plugin-transform-reserved-words" "^7.8.3" "@babel/plugin-transform-shorthand-properties" "^7.8.3" "@babel/plugin-transform-spread" "^7.8.3" @@ -1411,8 +1579,9 @@ "@babel/plugin-transform-template-literals" "^7.8.3" "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/types" "^7.8.3" - browserslist "^4.8.5" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" @@ -1473,16 +1642,28 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-react@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.8.3.tgz#23dc63f1b5b0751283e04252e78cf1d6589273d2" - integrity sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@7.9.1": + version "7.9.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.1.tgz#b346403c36d58c3bb544148272a0cefd9c28677a" + integrity sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.8.3" - "@babel/plugin-transform-react-jsx-self" "^7.8.3" - "@babel/plugin-transform-react-jsx-source" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.9.1" + "@babel/plugin-transform-react-jsx-development" "^7.9.0" + "@babel/plugin-transform-react-jsx-self" "^7.9.0" + "@babel/plugin-transform-react-jsx-source" "^7.9.0" "@babel/preset-react@^7.0.0": version "7.0.0" @@ -1494,13 +1675,13 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/preset-typescript@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz#90af8690121beecd9a75d0cc26c6be39d1595d13" - integrity sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA== +"@babel/preset-typescript@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz#87705a72b1f0d59df21c179f7c3d2ef4b16ce192" + integrity sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-typescript" "^7.8.3" + "@babel/plugin-transform-typescript" "^7.9.0" "@babel/runtime-corejs2@^7.6.3": version "7.7.6" @@ -1509,12 +1690,20 @@ core-js "^2.6.5" regenerator-runtime "^0.13.2" -"@babel/runtime@7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz#d79f5a2040f7caa24d53e563aad49cbc05581308" - integrity sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ== +"@babel/runtime-corejs3@^7.8.3": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz#3511797ddf9a3d6f3ce46b99cc835184817eaa4e" + integrity sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg== dependencies: - regenerator-runtime "^0.13.2" + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.0.tgz#337eda67401f5b066a6f205a3113d4ac18ba495b" + integrity sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA== + dependencies: + regenerator-runtime "^0.13.4" "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4": version "7.4.5" @@ -1541,6 +1730,13 @@ dependencies: regenerator-runtime "^0.13.2" +"@babel/runtime@^7.8.4": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" + integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" @@ -1549,6 +1745,15 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" +"@babel/template@^7.10.1", "@babel/template@^7.8.6": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" + integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" + "@babel/template@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" @@ -1566,7 +1771,7 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" dependencies: @@ -1580,6 +1785,21 @@ globals "^11.1.0" lodash "^4.17.11" +"@babel/traverse@^7.10.1", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" + integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/generator" "^7.10.1" + "@babel/helper-function-name" "^7.10.1" + "@babel/helper-split-export-declaration" "^7.10.1" + "@babel/parser" "^7.10.1" + "@babel/types" "^7.10.1" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2": version "7.6.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" @@ -1609,21 +1829,6 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" @@ -1632,6 +1837,15 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0", "@babel/types@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" + integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== + dependencies: + "@babel/helper-validator-identifier" "^7.10.1" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@babel/types@^7.5.5", "@babel/types@^7.6.0": version "7.6.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" @@ -2415,6 +2629,11 @@ version "7.0.3" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" +"@types/json-schema@^7.0.4": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -2772,6 +2991,16 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.2: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -3183,14 +3412,15 @@ babel-core@^6.24.1, babel-core@^6.26.0: slash "^1.0.0" source-map "^0.5.7" -babel-eslint@10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" +babel-eslint@10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" resolve "^1.12.0" @@ -3351,14 +3581,16 @@ babel-jest@^24.9.0: chalk "^2.4.2" slash "^2.0.0" -babel-loader@8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" pify "^4.0.1" + schema-utils "^2.6.5" babel-messages@^6.23.0: version "6.23.0" @@ -3378,6 +3610,13 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + babel-plugin-istanbul@^5.1.0: version "5.1.4" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" @@ -3835,22 +4074,24 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -babel-preset-react-app@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.1.1.tgz#d1ceb47cbe48b285fdd5c562c54c432ed5a41e0e" - integrity sha512-YkWP2UwY//TLltNlEBRngDOrYhvSLb+CA330G7T9M5UhGEMWe+JK/8IXJc5p2fDTSfSiETf+PY0+PYXFMix81Q== +babel-preset-react-app@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz#54775d976588a8a6d1a99201a702befecaf48030" + integrity sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA== dependencies: - "@babel/core" "7.8.4" + "@babel/core" "7.9.0" "@babel/plugin-proposal-class-properties" "7.8.3" "@babel/plugin-proposal-decorators" "7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.8.3" "@babel/plugin-proposal-numeric-separator" "7.8.3" - "@babel/plugin-transform-flow-strip-types" "7.8.3" + "@babel/plugin-proposal-optional-chaining" "7.9.0" + "@babel/plugin-transform-flow-strip-types" "7.9.0" "@babel/plugin-transform-react-display-name" "7.8.3" - "@babel/plugin-transform-runtime" "7.8.3" - "@babel/preset-env" "7.8.4" - "@babel/preset-react" "7.8.3" - "@babel/preset-typescript" "7.8.3" - "@babel/runtime" "7.8.4" + "@babel/plugin-transform-runtime" "7.9.0" + "@babel/preset-env" "7.9.0" + "@babel/preset-react" "7.9.1" + "@babel/preset-typescript" "7.9.0" + "@babel/runtime" "7.9.0" babel-plugin-macros "2.8.0" babel-plugin-transform-react-remove-prop-types "0.4.24" @@ -4163,14 +4404,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.8.6, browserslist@^4.8.3, browserslist@^4.8.5: - version "4.8.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" - integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== +browserslist@4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" + integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== dependencies: - caniuse-lite "^1.0.30001023" - electron-to-chromium "^1.3.341" - node-releases "^1.1.47" + caniuse-lite "^1.0.30001035" + electron-to-chromium "^1.3.378" + node-releases "^1.1.52" + pkg-up "^3.1.0" browserslist@^3.2.6: version "3.2.8" @@ -4187,6 +4429,16 @@ browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6 electron-to-chromium "^1.3.150" node-releases "^1.1.23" +browserslist@^4.12.0, browserslist@^4.9.1: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== + dependencies: + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" + browserslist@^4.6.3, browserslist@^4.6.4: version "4.7.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" @@ -4195,6 +4447,15 @@ browserslist@^4.6.3, browserslist@^4.6.4: electron-to-chromium "^1.3.247" node-releases "^1.1.29" +browserslist@^4.8.3: + version "4.8.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.6.tgz#96406f3f5f0755d272e27a66f4163ca821590a7e" + integrity sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg== + dependencies: + caniuse-lite "^1.0.30001023" + electron-to-chromium "^1.3.341" + node-releases "^1.1.47" + bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" @@ -4412,6 +4673,11 @@ caniuse-lite@^1.0.30001023: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz#b82155827f3f5009077bdd2df3d8968bcbcc6fc4" integrity sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA== +caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001043: + version "1.0.30001081" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz#40615a3c416a047c5a4d45673e5257bf128eb3b5" + integrity sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -4431,13 +4697,13 @@ ccount@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" -chalk@3.0.0, chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" @@ -4449,13 +4715,13 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" + ansi-styles "^4.1.0" + supports-color "^7.1.0" chalk@~0.4.0: version "0.4.0" @@ -4947,6 +5213,11 @@ core-js-pure@3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" +core-js-pure@^3.0.0: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" @@ -5771,6 +6042,11 @@ electron-to-chromium@^1.3.341: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.344.tgz#f1397a633c35e726730c24be1084cd25c3ee8148" integrity sha512-tvbx2Wl8WBR+ym3u492D0L6/jH+8NoQXqe46+QhbWH3voVPauGuZYeb1QAXYoOAWuiP2dbSvlBx0kQ1F3hu/Mw== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.413: + version "1.3.473" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz#d0cd5fe391046fb70674ec98149f0f97609d29b8" + integrity sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A== + elliptic@^6.0.0: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" @@ -5796,6 +6072,11 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -6026,10 +6307,10 @@ escodegen@~1.2.0: optionalDependencies: source-map "~0.1.30" -eslint-config-react-app@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.0.tgz#135110ba56a9e378f7acfe5f36e2ae76a2317899" - integrity sha512-WrHjoGpKr1kLLiWDD81tme9jMM0hk5cMxasLSdyno6DdPt+IfLOrDJBVo6jN7tn4y1nzhs43TmUaZWO6Sf0blw== +eslint-config-react-app@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" + integrity sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ== dependencies: confusing-browser-globals "^1.0.9" @@ -6066,10 +6347,10 @@ eslint-plugin-flowtype@4.6.0: dependencies: lodash "^4.17.15" -eslint-plugin-import@2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.0.tgz#d749a7263fb6c29980def8e960d380a6aa6aecaa" - integrity sha512-NK42oA0mUc8Ngn4kONOPsPB1XhbUvNHqF+g307dPV28aknPoiNnKLFd9em4nkswwepdF5ouieqv5Th/63U7YJQ== +eslint-plugin-import@2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" + integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" @@ -6102,10 +6383,10 @@ eslint-plugin-react-hooks@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" -eslint-plugin-react@7.18.0: - version "7.18.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.18.0.tgz#2317831284d005b30aff8afb7c4e906f13fa8e7e" - integrity sha512-p+PGoGeV4SaZRDsXqdj9OWcOrOpZn8gXoGPcIQTzo2IDMbAKhNDnME9myZWqO3Ic4R3YmwAZ1lDjWl2R2hMUVQ== +eslint-plugin-react@7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== dependencies: array-includes "^3.1.1" doctrine "^2.1.0" @@ -6115,7 +6396,10 @@ eslint-plugin-react@7.18.0: object.fromentries "^2.0.2" object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.14.2" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" eslint-scope@^4.0.3: version "4.0.3" @@ -6477,6 +6761,11 @@ fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^2.0.2: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -6641,7 +6930,7 @@ find-cache-dir@^0.1.1: mkdirp "^0.5.1" pkg-dir "^1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" dependencies: @@ -7702,6 +7991,15 @@ internal-ip@^4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + interpret@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" @@ -7895,6 +8193,11 @@ is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" +is-docker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -8122,6 +8425,13 @@ is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -8763,6 +9073,13 @@ json5@^2.1.0: dependencies: minimist "^1.2.0" +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -8967,7 +9284,7 @@ loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" dependencies: @@ -8975,6 +9292,15 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + localforage@^1.5.2: version "1.7.3" resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.7.3.tgz#0082b3ca9734679e1bd534995bdd3b24cf10f204" @@ -9484,6 +9810,11 @@ minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -9564,6 +9895,13 @@ mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: dependencies: minimist "0.0.8" +mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" @@ -9791,6 +10129,11 @@ node-releases@^1.1.47: dependencies: semver "^6.3.0" +node-releases@^1.1.52, node-releases@^1.1.53: + version "1.1.58" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" + integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== + node-sass@^4.11.0: version "4.13.0" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" @@ -10102,12 +10445,13 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" - integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== +open@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/open/-/open-7.0.4.tgz#c28a9d315e5c98340bf979fdcb2e58664aa10d83" + integrity sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ== dependencies: - is-wsl "^1.1.0" + is-docker "^2.0.0" + is-wsl "^2.1.1" opn@^5.5.0: version "5.5.0" @@ -10577,23 +10921,30 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pkg-up@3.1.0: +pkg-up@3.1.0, pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" -pnp-webpack-plugin@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.0.tgz#d5c068013a2fdc82224ca50ed179c8fba9036a8e" - integrity sha512-ZcMGn/xF/fCOq+9kWMP9vVVxjIkMCja72oy3lziR7UHy0hHFZ57iVpQ71OtveVbmzeCmphBg8pxNdk/hlK99aQ== +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: - ts-pnp "^1.1.2" + ts-pnp "^1.1.6" popper.js@^1.14.4: version "1.16.0" @@ -11669,15 +12020,15 @@ react-delayed@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/react-delayed/-/react-delayed-0.2.3.tgz#6432d2d20c8d3b242e278b4087046fda243d1131" -react-dev-utils@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.1.0.tgz#ccf82135f6dc2fc91969bc729ce57a69d8e86025" - integrity sha512-KmZChqxY6l+ed28IHetGrY8J9yZSvzlAHyFXduEIhQ42EBGtqftlbqQZ+dDTaC7CwNW2tuXN+66bRKE5h2HgrQ== +react-dev-utils@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19" + integrity sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ== dependencies: "@babel/code-frame" "7.8.3" address "1.1.2" - browserslist "4.8.6" - chalk "3.0.0" + browserslist "4.10.0" + chalk "2.4.2" cross-spawn "7.0.1" detect-port-alt "1.1.6" escape-string-regexp "2.0.0" @@ -11691,9 +12042,9 @@ react-dev-utils@^10.1.0: inquirer "7.0.4" is-root "2.1.0" loader-utils "1.2.3" - open "^6.4.0" + open "^7.0.2" pkg-up "3.1.0" - react-error-overlay "^6.0.5" + react-error-overlay "^6.0.7" recursive-readdir "2.2.2" shell-quote "1.7.2" strip-ansi "6.0.0" @@ -11734,10 +12085,10 @@ react-elastic-carousel@^0.4.1: resolved "https://registry.yarnpkg.com/react-elastic-carousel/-/react-elastic-carousel-0.4.1.tgz#6486fa7514f50fdc2af95277a6cfe860b0702020" integrity sha512-lsaj7JD4ags55caRx8UlPpP+BvHEHbdT0RbawyzAJV/Aixsw6S3QkSBKi2v/utbtaVVRcr/euRr9UQOaK1wJXg== -react-error-overlay@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.5.tgz#55d59c2a3810e8b41922e0b4e5f85dcf239bd533" - integrity sha512-+DMR2k5c6BqMDSMF8hLH0vYKtKTeikiFW+fj0LClN+XZg4N9b8QUAdHC62CGWNLTi/gnuuemNcNcTFrCvK1f+A== +react-error-overlay@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" + integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== react-grid-layout@^0.16.6: version "0.16.6" @@ -11912,32 +12263,32 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-scripts@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.3.1.tgz#dee7962045dbee5b02b1d47569815e62f7a546b5" - integrity sha512-DHvc+/QN0IsLvmnPQqd+H70ol+gdFD3p/SS2tX8M6z1ysjtRGvOwLWy72co1nphYGpq1NqV/Ti5dviU8SCAXpA== +react-scripts@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.1.tgz#f551298b5c71985cc491b9acf3c8e8c0ae3ada0a" + integrity sha512-JpTdi/0Sfd31mZA6Ukx+lq5j1JoKItX7qqEK4OiACjVQletM1P38g49d9/D0yTxp9FrSF+xpJFStkGgKEIRjlQ== dependencies: - "@babel/core" "7.8.4" + "@babel/core" "7.9.0" "@svgr/webpack" "4.3.3" "@typescript-eslint/eslint-plugin" "^2.10.0" "@typescript-eslint/parser" "^2.10.0" - babel-eslint "10.0.3" + babel-eslint "10.1.0" babel-jest "^24.9.0" - babel-loader "8.0.6" + babel-loader "8.1.0" babel-plugin-named-asset-import "^0.3.6" - babel-preset-react-app "^9.1.1" + babel-preset-react-app "^9.1.2" camelcase "^5.3.1" case-sensitive-paths-webpack-plugin "2.3.0" css-loader "3.4.2" dotenv "8.2.0" dotenv-expand "5.1.0" eslint "^6.6.0" - eslint-config-react-app "^5.2.0" + eslint-config-react-app "^5.2.1" eslint-loader "3.0.3" eslint-plugin-flowtype "4.6.0" - eslint-plugin-import "2.20.0" + eslint-plugin-import "2.20.1" eslint-plugin-jsx-a11y "6.2.3" - eslint-plugin-react "7.18.0" + eslint-plugin-react "7.19.0" eslint-plugin-react-hooks "^1.6.1" file-loader "4.3.0" fs-extra "^8.1.0" @@ -11949,24 +12300,24 @@ react-scripts@3.3.1: jest-watch-typeahead "0.4.2" mini-css-extract-plugin "0.9.0" optimize-css-assets-webpack-plugin "5.0.3" - pnp-webpack-plugin "1.6.0" + pnp-webpack-plugin "1.6.4" postcss-flexbugs-fixes "4.1.0" postcss-loader "3.0.0" postcss-normalize "8.0.1" postcss-preset-env "6.7.0" postcss-safe-parser "4.0.1" react-app-polyfill "^1.0.6" - react-dev-utils "^10.1.0" + react-dev-utils "^10.2.1" resolve "1.15.0" resolve-url-loader "3.1.1" sass-loader "8.0.2" semver "6.3.0" - style-loader "1.1.3" - terser-webpack-plugin "2.3.4" - ts-pnp "1.1.5" + style-loader "0.23.1" + terser-webpack-plugin "2.3.5" + ts-pnp "1.1.6" url-loader "2.3.0" - webpack "4.41.5" - webpack-dev-server "3.10.1" + webpack "4.42.0" + webpack-dev-server "3.10.3" webpack-manifest-plugin "2.2.0" workbox-webpack-plugin "4.3.1" optionalDependencies: @@ -12228,6 +12579,13 @@ regenerate-unicode-properties@^8.1.0: dependencies: regenerate "^1.4.0" +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + regenerate@^1.2.1, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -12245,6 +12603,11 @@ regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -12259,6 +12622,14 @@ regenerator-transform@^0.14.0: dependencies: private "^0.1.6" +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + dependencies: + "@babel/runtime" "^7.8.4" + private "^0.1.8" + regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" @@ -12276,6 +12647,14 @@ regex-parser@2.2.10: version "2.2.10" resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" +regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -12304,6 +12683,18 @@ regexpu-core@^4.6.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -12312,6 +12703,11 @@ regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" @@ -12324,6 +12720,13 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -12535,7 +12938,7 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.15.0, resolve@^1.14.2: +resolve@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.0.tgz#1b7ca96073ebb52e741ffd799f6b39ea462c67f5" integrity sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw== @@ -12554,6 +12957,13 @@ resolve@^1.10.0, resolve@^1.12.0: dependencies: path-parse "^1.0.6" +resolve@^1.15.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -12760,6 +13170,15 @@ schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6 ajv "^6.10.2" ajv-keywords "^3.4.1" +schema-utils@^2.6.5: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" @@ -12951,6 +13370,14 @@ shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" +side-channel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" + integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== + dependencies: + es-abstract "^1.17.0-next.1" + object-inspect "^1.7.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -13323,6 +13750,18 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -13466,13 +13905,13 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" - integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw== +style-loader@0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.6.4" + loader-utils "^1.1.0" + schema-utils "^1.0.0" style-to-object@^0.2.1: version "0.2.3" @@ -13667,10 +14106,10 @@ terraformer@^1.0.9: optionalDependencies: "@types/geojson" "^1.0.0" -terser-webpack-plugin@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.4.tgz#ac045703bd8da0936ce910d8fb6350d0e1dee5fe" - integrity sha512-Nv96Nws2R2nrFOpbzF6IxRDpIkkIfmhvOws+IqMvYdFLO7o6wAILWFKONFgaYy8+T4LVz77DQW0f7wOeDEAjrg== +terser-webpack-plugin@2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" + integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== dependencies: cacache "^13.0.1" find-cache-dir "^3.2.0" @@ -13900,14 +14339,15 @@ ts-invariant@^0.4.4: dependencies: tslib "^1.9.3" -ts-pnp@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" - integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA== +ts-pnp@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a" + integrity sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ== -ts-pnp@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tslib@^1.10.0, tslib@^1.9.3: version "1.11.2" @@ -14010,6 +14450,11 @@ unicode-match-property-value-ecmascript@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + unicode-property-aliases-ecmascript@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" @@ -14397,10 +14842,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" - integrity sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA== +webpack-dev-server@3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -14468,10 +14913,10 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.41.5: - version "4.41.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" - integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw== +webpack@4.42.0: + version "4.42.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" + integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -14812,6 +15257,13 @@ xmltojson@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/xmltojson/-/xmltojson-1.3.5.tgz#a57d3e0110404b83f62deefa0fcfc465772332e9" +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From b167db47fb3990189a4a6f59e354f55ddb7d40f6 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Wed, 10 Jun 2020 16:16:31 -0700 Subject: [PATCH 13/29] Upgrade react-jsonschema-form from v1.5 to v2 --- package.json | 3 +- .../Manage/EditProject/EditProject.js | 2 +- .../EditChallenge/EditChallenge.js | 80 +++++++--- .../Manage/ManageTasks/EditTask/EditTask.js | 2 +- .../RJSFFormFieldAdapter.js | 4 +- .../TaskPropertyQueryBuilder.js | 26 ++-- src/components/Teams/EditTeam/EditTeam.js | 2 +- .../Profile/UserSettings/UserSettings.js | 2 +- src/styles/utilities/typography.css | 2 +- yarn.lock | 138 ++++++++++++++---- 10 files changed, 190 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index d25c38612..dfb1f6aca 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@nivo/bar": "^0.61.1", "@nivo/line": "^0.61.1", "@nivo/radar": "^0.61.1", + "@rjsf/core": "^2.0.2", "@turf/bbox": "^5.1.5", "@turf/bbox-polygon": "^5.1.5", "@turf/boolean-disjoint": "^5.1.5", @@ -59,8 +60,6 @@ "react-grid-layout": "^0.16.6", "react-intl": "^2.9.0", "react-intl-formatted-duration": "^3.0.0", - "react-jsonschema-form": "1.5.0", - "react-jsonschema-form-async": "^0.2.0", "react-leaflet": "^2.4.0", "react-leaflet-bing": "^4.1.0", "react-leaflet-markercluster": "^2.0.0-rc3", diff --git a/src/components/AdminPane/Manage/EditProject/EditProject.js b/src/components/AdminPane/Manage/EditProject/EditProject.js index 3be3dbde1..88fa01eef 100644 --- a/src/components/AdminPane/Manage/EditProject/EditProject.js +++ b/src/components/AdminPane/Manage/EditProject/EditProject.js @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import Form from 'react-jsonschema-form' +import Form from '@rjsf/core' import _merge from 'lodash/merge' import _get from 'lodash/get' import _isFinite from 'lodash/isFinite' diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/EditChallenge.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/EditChallenge.js index ae94a84b5..1aad8d511 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/EditChallenge.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/EditChallenge.js @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import Form from 'react-jsonschema-form-async'; +import Form from '@rjsf/core'; import _isObject from 'lodash/isObject' import _isNumber from 'lodash/isNumber' import _isString from 'lodash/isString' @@ -14,6 +14,7 @@ import _get from 'lodash/get' import _remove from 'lodash/remove' import _isEqual from 'lodash/isEqual' import _merge from 'lodash/merge' +import _map from 'lodash/map' import { FormattedMessage, injectIntl } from 'react-intl' import { Link } from 'react-router-dom' import External from '../../../../External/External' @@ -124,9 +125,11 @@ export class EditChallenge extends Component { activeStep: 0, formData: {}, formContext: {}, + extraErrors: {}, isSaving: false, } + validationPromise = null isFinishing = false componentDidMount() { @@ -161,7 +164,9 @@ export class EditChallenge extends Component { jsonFileField.validated = true } else { - response.errors = {localGeoJSON: _first(lintErrors).message} + response.errors = { + localGeoJSON: {__errors: _map(lintErrors, e => `GeoJSON error: ${e.message}`)} + } } return response @@ -182,6 +187,25 @@ export class EditChallenge extends Component { return response } + /** + * Perform additional validation, including async validation that will set + * the extraErrors state field to a value as needed + */ + validate = (formData, errors) => { + this.validationPromise = this.validateGeoJSONSource(formData) + this.validationPromise.then(() => { + if (!_isEmpty(this.state.extraErrors)) { + this.setState({extraErrors: {}}) + } + }).catch(errors => { + this.setState({extraErrors: errors}) + }).finally(() => { + this.validationPromise = null + }) + + return errors + } + /** * Perform additional validation checks beyond schema validation. Primarily * we check Overpass queries and GeoJSON. @@ -207,14 +231,22 @@ export class EditChallenge extends Component { } if (response.errors) { - throw response + throw response.errors } return response } - asyncSubmit = (formData, result) => { - return this.isFinishing ? this.finish() : this.nextStep() + /** + * Process submit event at each step, waiting until any pending validation is + * complete before deciding how to proceed + */ + handleSubmit = (formData) => { + (this.validationPromise || Promise.resolve()).then(() => { + return this.isFinishing ? this.finish() : this.nextStep() + }).catch(() => null) // Stay on current step if validation fails + + return false } /** Back up to the previous step in the workflow */ @@ -655,24 +687,26 @@ export class EditChallenge extends Component { } -
    {this.hasTaskStyleRuleErrors() && challengeSteps[this.state.activeStep].name === "Extra" && diff --git a/src/components/AdminPane/Manage/ManageTasks/EditTask/EditTask.js b/src/components/AdminPane/Manage/ManageTasks/EditTask/EditTask.js index 74fe30fad..dc9c98935 100644 --- a/src/components/AdminPane/Manage/ManageTasks/EditTask/EditTask.js +++ b/src/components/AdminPane/Manage/ManageTasks/EditTask/EditTask.js @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import Form from 'react-jsonschema-form' +import Form from '@rjsf/core' import _merge from 'lodash/merge' import _get from 'lodash/get' import _isObject from 'lodash/isObject' diff --git a/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js b/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js index 03f88ae64..46a214db5 100644 --- a/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js +++ b/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js @@ -8,9 +8,9 @@ import _isObject from 'lodash/isObject' import TagsInput from 'react-tagsinput' import Dropzone from 'react-dropzone' import OriginalSelectWidget - from 'react-jsonschema-form/lib/components/widgets/SelectWidget' + from '@rjsf/core/lib/components/widgets/SelectWidget' import OriginalTextWidget - from 'react-jsonschema-form/lib/components/widgets/TextWidget' + from '@rjsf/core/lib/components/widgets/TextWidget' import { FormattedMessage } from 'react-intl' import MarkdownContent from '../../MarkdownContent/MarkdownContent' import MarkdownTemplate from '../../MarkdownContent/MarkdownTemplate' diff --git a/src/components/TaskPropertyQueryBuilder/TaskPropertyQueryBuilder.js b/src/components/TaskPropertyQueryBuilder/TaskPropertyQueryBuilder.js index 6d6c4b64b..8dbb59b5e 100644 --- a/src/components/TaskPropertyQueryBuilder/TaskPropertyQueryBuilder.js +++ b/src/components/TaskPropertyQueryBuilder/TaskPropertyQueryBuilder.js @@ -1,6 +1,6 @@ import React, { Component } from 'react' import { FormattedMessage, injectIntl } from 'react-intl' -import Form from 'react-jsonschema-form-async' +import Form from '@rjsf/core' import { CustomSelectWidget } from '../Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter' import _get from 'lodash/get' @@ -175,18 +175,18 @@ export class TaskPropertyQueryBuilder extends Component { return (
    - {this.state.errors &&
    diff --git a/src/components/Teams/EditTeam/EditTeam.js b/src/components/Teams/EditTeam/EditTeam.js index 7c7dc9300..ead811441 100644 --- a/src/components/Teams/EditTeam/EditTeam.js +++ b/src/components/Teams/EditTeam/EditTeam.js @@ -1,7 +1,7 @@ import React, { useState } from 'react' import PropTypes from 'prop-types' import { useMutation } from '@apollo/client' -import Form from 'react-jsonschema-form' +import Form from '@rjsf/core' import { FormattedMessage } from 'react-intl' import _isFinite from 'lodash/isFinite' import _isEmpty from 'lodash/isEmpty' diff --git a/src/pages/Profile/UserSettings/UserSettings.js b/src/pages/Profile/UserSettings/UserSettings.js index d3a116b8a..c7e9aa995 100644 --- a/src/pages/Profile/UserSettings/UserSettings.js +++ b/src/pages/Profile/UserSettings/UserSettings.js @@ -1,7 +1,7 @@ import React, { Component } from 'react' import { FormattedMessage, injectIntl } from 'react-intl' -import Form from 'react-jsonschema-form' +import Form from '@rjsf/core' import _each from 'lodash/each' import _get from 'lodash/get' import _pick from 'lodash/pick' diff --git a/src/styles/utilities/typography.css b/src/styles/utilities/typography.css index 0a3ae800b..cb136c5e1 100644 --- a/src/styles/utilities/typography.css +++ b/src/styles/utilities/typography.css @@ -43,7 +43,7 @@ h4, } .text-danger { - @apply mr-text-red; + @apply mr-text-red-light; } .mr-links-inverse a { diff --git a/yarn.lock b/yarn.lock index 1502d40f5..28ac521c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1690,6 +1690,14 @@ core-js "^2.6.5" regenerator-runtime "^0.13.2" +"@babel/runtime-corejs2@^7.8.7": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.10.2.tgz#532f20b839684615f97e9f700f630e995efed426" + integrity sha512-ZLwsFnNm3WpIARU1aLFtufjMHsmEnc8TjtrfAjmbgMbeoyR+LuQoyESoNdTfeDhL6IdY12SpeycXMgSgl8XGXA== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + "@babel/runtime-corejs3@^7.8.3": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz#3511797ddf9a3d6f3ce46b99cc835184817eaa4e" @@ -2298,6 +2306,23 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@rjsf/core@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-2.0.2.tgz#b6fdbcd730711ee0f985c7940f5b4f61ac4da77c" + integrity sha512-2QpWwhc9epc37G8K0jsFfjgjooPSq7zjqvtoixuHhYBTc3ixYcmSWmzNbt/MtTvMvt1hZHXZTVQeXYcGjqXgIQ== + dependencies: + "@babel/runtime-corejs2" "^7.8.7" + "@types/json-schema" "^7.0.4" + ajv "^6.7.0" + core-js "^2.5.7" + json-schema-merge-allof "^0.6.0" + jsonpointer "^4.0.1" + lodash "^4.17.15" + prop-types "^15.7.2" + react-app-polyfill "^1.0.4" + react-is "^16.9.0" + shortid "^2.2.14" + "@svgr/babel-plugin-add-jsx-attribute@^4.2.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" @@ -2973,7 +2998,7 @@ ajv-keywords@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" -ajv@^6.1.0, ajv@^6.7.0, ajv@^6.9.1: +ajv@^6.1.0, ajv@^6.9.1: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" dependencies: @@ -2991,7 +3016,7 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.12.2: +ajv@^6.12.2, ajv@^6.7.0: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -5093,6 +5118,25 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compute-gcd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.0.tgz#fc1ede5b65001e950226502f46543863e4fea10e" + integrity sha1-/B7eW2UAHpUCJlAvRlQ4Y+T+oQ4= + dependencies: + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + +compute-lcm@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.0.tgz#abd96d040b41b0a166f89944b5c8b7c511e21ad5" + integrity sha1-q9ltBAtBsKFm+JlEtci3xRHiGtU= + dependencies: + compute-gcd "^1.2.0" + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + compute-scroll-into-view@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz#7ff0a57f9aeda6314132d8994cce7aeca794fecf" @@ -5223,7 +5267,7 @@ core-js@^1.0.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= -core-js@^2.4.0, core-js@^2.5.7: +core-js@^2.4.0: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" @@ -5231,7 +5275,7 @@ core-js@^2.5.0: version "2.6.10" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" -core-js@^2.6.5: +core-js@^2.5.7, core-js@^2.6.5: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" @@ -9031,6 +9075,22 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" +json-schema-compare@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" + integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== + dependencies: + lodash "^4.17.4" + +json-schema-merge-allof@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" + integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ== + dependencies: + compute-lcm "^1.1.0" + json-schema-compare "^0.2.2" + lodash "^4.17.4" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -9103,6 +9163,11 @@ jsonp@^0.2.1: dependencies: debug "^2.1.3" +jsonpointer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -9390,10 +9455,6 @@ lodash.toarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" -lodash.topath@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9949,6 +10010,11 @@ nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" +nanoid@^2.1.0: + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -11954,7 +12020,7 @@ react-animate-height@^2.0.7: classnames "^2.2.5" prop-types "^15.6.1" -react-app-polyfill@^1.0.6: +react-app-polyfill@^1.0.4, react-app-polyfill@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== @@ -12129,23 +12195,6 @@ react-is@^16.8.4: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" -react-jsonschema-form-async@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/react-jsonschema-form-async/-/react-jsonschema-form-async-0.2.0.tgz#e99ab33348d9f8bf77f506abfd813bd81c7f6e53" - dependencies: - lodash "^4.17.5" - prop-types "^15.6.1" - -react-jsonschema-form@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/react-jsonschema-form/-/react-jsonschema-form-1.5.0.tgz#e088c993de25dbf5f87c2067d67b278939e1acb6" - dependencies: - ajv "^6.7.0" - babel-runtime "^6.26.0" - core-js "^2.5.7" - lodash.topath "^4.5.2" - prop-types "^15.5.8" - react-leaflet-bing@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/react-leaflet-bing/-/react-leaflet-bing-4.1.0.tgz#11142b8b9b9dcafedad1b7512bbcc383143e2af9" @@ -13370,6 +13419,13 @@ shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" +shortid@^2.2.14: + version "2.2.15" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" + integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== + dependencies: + nanoid "^2.1.0" + side-channel@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" @@ -14681,6 +14737,36 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate.io-array@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" + integrity sha1-W1osr9j4uFq7L4hroVPy2Tond00= + +validate.io-function@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" + integrity sha1-NDoZgC7TsZaCaceA5VjpNBHAutc= + +validate.io-integer-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" + integrity sha1-LKveAzKTpry+Bj/q/pHq9GsToIk= + dependencies: + validate.io-array "^1.0.3" + validate.io-integer "^1.0.4" + +validate.io-integer@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" + integrity sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg= + dependencies: + validate.io-number "^1.0.3" + +validate.io-number@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" + integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg= + value-equal@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" From e38ee288d6b8a95e14cb94918868dd4da300bbf1 Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Mon, 15 Jun 2020 12:52:24 -0700 Subject: [PATCH 14/29] Fix mutiple location rules under same priority rule error --- .../ManageChallenges/EditChallenge/PriorityRuleGroup.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/PriorityRuleGroup.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/PriorityRuleGroup.js index 5deab065b..31724d4cf 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/PriorityRuleGroup.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/PriorityRuleGroup.js @@ -5,6 +5,8 @@ import _compact from 'lodash/compact' import _flatten from 'lodash/flatten' import _groupBy from 'lodash/groupBy' import _trim from 'lodash/trim' +import _remove from 'lodash/remove' +import _clone from 'lodash/clone' /** * Prepares a group of priority rules from the server to the representation @@ -62,7 +64,10 @@ export const preparePriorityRuleForForm = rule => { * property and operator into a single rule with comma-separated values */ export const combineRulesForForm = rules => { - const rulesByProperty = _groupBy(rules, rule => `${rule.key}:::${rule.operator}`) + const allRules = _clone(rules) + const locationRules = _remove(allRules, (rule) => rule.valueType === "bounds") + const rulesByProperty = _groupBy(allRules, rule => `${rule.key}:::${rule.operator}`) + return _map(rulesByProperty, groupedRules => groupedRules.length === 1 ? groupedRules[0] : @@ -70,7 +75,7 @@ export const combineRulesForForm = rules => { // Quote any strings with literal commas prior to combining, and then join together value: _map(groupedRules, rule => /,/.test(rule.value) ? `"${rule.value}"` : rule.value).join(','), }) - ) + ).concat(locationRules) } /** From 9f2966ac4dfea27ca4c309eebdf3b30e4cb98ebd Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Mon, 15 Jun 2020 17:51:13 -0700 Subject: [PATCH 15/29] Fix Safari display of Featured Challenges widget * Upgrade react-elastic-carousel * Fix erroneous min-w-1/2 CSS class and adjust Modal to use different class to achieve same functionality --- package.json | 2 +- .../FeaturedChallengesWidget.js | 12 ++++++------ src/components/Modal/Modal.js | 2 +- src/styles/components/cards/challenge.css | 2 +- src/tailwind.config.js | 10 +++++++++- yarn.lock | 17 +++++++++++++---- 6 files changed, 31 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index dfb1f6aca..842c9a871 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "react-dom": "^16.8.0", "react-dom-confetti": "^0.0.10", "react-dropzone": "^10.1.5", - "react-elastic-carousel": "^0.4.1", + "react-elastic-carousel": "^0.6.4", "react-grid-layout": "^0.16.6", "react-intl": "^2.9.0", "react-intl-formatted-duration": "^3.0.0", diff --git a/src/components/FeaturedChallenges/FeaturedChallengesWidget.js b/src/components/FeaturedChallenges/FeaturedChallengesWidget.js index 0358e70e8..a794f9888 100644 --- a/src/components/FeaturedChallenges/FeaturedChallengesWidget.js +++ b/src/components/FeaturedChallenges/FeaturedChallengesWidget.js @@ -18,8 +18,8 @@ const descriptor = { targets: [ WidgetDataTarget.user, ], - minWidth: 3, - defaultWidth: 4, + minWidth: 4, + defaultWidth: 6, minHeight: 12, defaultHeight: 12, } @@ -27,8 +27,8 @@ const descriptor = { export default class FeaturedChallengesWidget extends Component { render() { return ( - -
    + +

    @@ -36,8 +36,8 @@ export default class FeaturedChallengesWidget extends Component {
    -
    -
    +
    +
    diff --git a/src/components/Modal/Modal.js b/src/components/Modal/Modal.js index 77d04731f..b643a88dd 100644 --- a/src/components/Modal/Modal.js +++ b/src/components/Modal/Modal.js @@ -28,7 +28,7 @@ class Modal extends Component { "md:mr-min-w-1/3 md:mr-w-1/3 md:mr-top-5 md:mr-left-33": this.props.narrow, "mr-w-full md:mr-w-1/4 md:mr-top-5 md:mr-left-37": this.props.extraNarrow, "md:mr-min-w-2/5 md:mr-w-2/5 md:mr-top-15 md:mr-left-30": this.props.medium, - "md:mr-min-w-1/2 lg:mr-max-w-screen60 mr-w-full lg:mr-top-50 lg:mr-left-50 lg:mr--translate-1/2": + "md:mr-min-w-screen50 lg:mr-max-w-screen60 mr-w-full lg:mr-top-50 lg:mr-left-50 lg:mr--translate-1/2": !this.props.extraWide && !this.props.wide && !this.props.narrow && !this.props.extraNarrow && !this.props.medium })} diff --git a/src/styles/components/cards/challenge.css b/src/styles/components/cards/challenge.css index e85677dd3..d39dacdeb 100644 --- a/src/styles/components/cards/challenge.css +++ b/src/styles/components/cards/challenge.css @@ -58,7 +58,7 @@ } &__description { - @apply mr-text-base mr-my-4 mr-max-h-40 mr-overflow-auto mr-scrolling-touch mr-break-words; + @apply mr-text-base mr-my-4 mr-max-h-36 mr-overflow-auto mr-scrolling-touch mr-break-words; word-break: break-word; } diff --git a/src/tailwind.config.js b/src/tailwind.config.js index 1dcea3b51..492141ac2 100644 --- a/src/tailwind.config.js +++ b/src/tailwind.config.js @@ -210,6 +210,7 @@ module.exports = { '40': '10rem', '48': '12rem', '52': '13rem', + '56': '14rem', '64': '16rem', '76': '19rem', '88': '22rem', @@ -285,15 +286,20 @@ module.exports = { '30': '7.5rem', '36': '9rem', '48': '12rem', + '52': '13rem', + '56': '14rem', '60': '15rem', '72': '18rem', '88': '22rem', '102': '24rem', '120': '30rem', auto: 'auto', + '1/3': '33.33333%', + '2/5': '40%', + '1/2': '50%', full: '100%', - '1/2': '50vw', button: '7.8125rem', + screen50: '50vw', }, minHeight: { @@ -317,6 +323,7 @@ module.exports = { md: '40rem', lg: '50rem', xl: '60rem', + '56': '14rem', '88': '22rem', '96': '24rem', '2xl': '70rem', @@ -344,6 +351,7 @@ module.exports = { maxHeight: { full: '100%', screen: '100vh', + '36': '9rem', '40': '10rem', '48': '12rem', '100': '25rem', diff --git a/yarn.lock b/yarn.lock index 28ac521c2..b5e21386e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12146,10 +12146,12 @@ react-dropzone@^10.1.5: file-selector "^0.1.11" prop-types "^15.7.2" -react-elastic-carousel@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/react-elastic-carousel/-/react-elastic-carousel-0.4.1.tgz#6486fa7514f50fdc2af95277a6cfe860b0702020" - integrity sha512-lsaj7JD4ags55caRx8UlPpP+BvHEHbdT0RbawyzAJV/Aixsw6S3QkSBKi2v/utbtaVVRcr/euRr9UQOaK1wJXg== +react-elastic-carousel@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/react-elastic-carousel/-/react-elastic-carousel-0.6.4.tgz#2856235b7427a4dc93a657d77c32b20a4284fbe4" + integrity sha512-tygNLU9f8LBOFTASTD3p6dPxC180vyJ/UcpQmrt+TUdl00X9jECg6J3NywPIqjsmz39NnY1CzM9tz86C+/05qg== + dependencies: + react-swipeable "^5.5.1" react-error-overlay@^6.0.7: version "6.0.7" @@ -12381,6 +12383,13 @@ react-share@^1.16.0: jsonp "^0.2.1" prop-types "^15.5.8" +react-swipeable@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/react-swipeable/-/react-swipeable-5.5.1.tgz#48ae6182deaf62f21d4b87469b60281dbd7c4a76" + integrity sha512-EQObuU3Qg3JdX3WxOn5reZvOSCpU4fwpUAs+NlXSN3y+qtsO2r8VGkVnOQzmByt3BSYj9EWYdUOUfi7vaMdZZw== + dependencies: + prop-types "^15.6.2" + react-syntax-highlighter@^10.3.0: version "10.3.5" resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-10.3.5.tgz#3b3e2d1eba92fb7988c3b50d22d2c74ae0263fdd" From fa7a1ede59da6638581762a0e650764f482da2d2 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 16 Jun 2020 08:05:39 -0700 Subject: [PATCH 16/29] Switch tooltips to popups on ActivityMap --- src/components/ActivityMap/ActivityMap.js | 10 ++++++---- src/styles/utilities/typography.css | 7 +++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/ActivityMap/ActivityMap.js b/src/components/ActivityMap/ActivityMap.js index c3b26cd41..b5fd0c427 100644 --- a/src/components/ActivityMap/ActivityMap.js +++ b/src/components/ActivityMap/ActivityMap.js @@ -1,7 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' import { FormattedMessage, injectIntl } from 'react-intl' -import { ZoomControl, CircleMarker, Tooltip } from 'react-leaflet' +import { ZoomControl, CircleMarker, Popup } from 'react-leaflet' import { getCoord } from '@turf/invariant' import centroid from '@turf/centroid' import parse from 'date-fns/parse' @@ -55,9 +55,11 @@ export const ActivityMap = props => { stroke={false} options={{ title: `Task ${entry.task.id}` }} > - - - + +
    + +
    +
    ) }) diff --git a/src/styles/utilities/typography.css b/src/styles/utilities/typography.css index cb136c5e1..f1d3f498f 100644 --- a/src/styles/utilities/typography.css +++ b/src/styles/utilities/typography.css @@ -75,6 +75,13 @@ h4, &.active { @apply mr-text-white; } + + .mr-lightmode & { + &:hover, + &:active { + @apply mr-text-blue-light; + } + } } .mr-overflow-ellipsis { From 41e80440f8234051cc9e421a36e72c5daa6ce2c2 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 16 Jun 2020 14:53:51 -0700 Subject: [PATCH 17/29] Upgrade react-intl and other dependencies * Upgrade react-intl * Change build-intl command to use extract-react-intl-messages package * Upgrade other various dependencies, such as @turf and @nivo packages --- .babelrc | 3 + .nvmrc | 1 + package.json | 28 +- .../ActivityListing/ActivityTime.js | 5 +- .../EditChallenge/Messages.js | 30 +- .../EditChallenge/Step1Schema.js | 2 +- .../EditChallenge/Step4Schema.js | 2 +- .../Manage/RebuildTasksControl/Messages.js | 2 +- src/components/CardChallenge/CardChallenge.js | 8 +- .../ChallengeDetail/ChallengeDetail.js | 8 +- src/components/HomePane/Messages.js | 2 +- src/components/ProjectDetail/ProjectDetail.js | 12 +- .../TaskCompletionStep2/Messages.js | 2 +- .../TaskTooHardControl/Messages.js | 4 +- src/index.js | 7 +- src/lang/af.json | 8 +- src/lang/cs_CZ.json | 8 +- src/lang/de.json | 88 +- src/lang/en-US.json | 2124 ++++++++--------- src/lang/es.json | 8 +- src/lang/fa_IR.json | 8 +- src/lang/fr.json | 8 +- src/lang/ja.json | 8 +- src/lang/ko.json | 8 +- src/lang/nl.json | 8 +- src/lang/pt_BR.json | 8 +- src/lang/ru_RU.json | 358 +-- src/lang/uk.json | 8 +- src/pages/Profile/Messages.js | 5 +- .../UserSettings/UserSettingsSchema.js | 2 +- src/services/Error/Messages.js | 2 +- src/services/KeyboardShortcuts/Messages.js | 2 +- src/services/Task/TaskProperty/Messages.js | 2 +- src/services/User/Locale/Locale.js | 92 +- yarn.lock | 1985 +++++---------- 35 files changed, 2040 insertions(+), 2816 deletions(-) create mode 100644 .babelrc create mode 100644 .nvmrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..c14b2828d --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["react-app"] +} diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..571500f8d --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +nvm use 10 diff --git a/package.json b/package.json index 842c9a871..a6e2e61a8 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,18 @@ "dependencies": { "@apollo/client": "3.0.0-rc.4", "@mapbox/geo-viewport": "^0.4.0", - "@mapbox/geojsonhint": "^2.0.1", - "@nivo/bar": "^0.61.1", - "@nivo/line": "^0.61.1", - "@nivo/radar": "^0.61.1", - "@rjsf/core": "^2.0.2", - "@turf/bbox": "^5.1.5", - "@turf/bbox-polygon": "^5.1.5", - "@turf/boolean-disjoint": "^5.1.5", - "@turf/center": "^5.1.5", + "@mapbox/geojsonhint": "^3.0.0", + "@nivo/bar": "^0.62.0", + "@nivo/line": "^0.62.0", + "@nivo/radar": "^0.62.0", + "@rjsf/core": "^2.1.0", + "@turf/bbox": "^6.0.1", + "@turf/bbox-polygon": "^6.0.1", + "@turf/boolean-disjoint": "^6.0.2", + "@turf/center": "^6.0.1", "@turf/centroid": "^6.0.2", "@turf/distance": "^6.0.1", - "@turf/invariant": "^5.1.5", + "@turf/invariant": "^6.1.2", "@turf/nearest-point-on-line": "^6.0.2", "bulma": "0.6.0", "bulma-badge": "^0.1.0", @@ -58,8 +58,8 @@ "react-dropzone": "^10.1.5", "react-elastic-carousel": "^0.6.4", "react-grid-layout": "^0.16.6", - "react-intl": "^2.9.0", - "react-intl-formatted-duration": "^3.0.0", + "react-intl": "^4.6.9", + "react-intl-formatted-duration": "^4.0.0", "react-leaflet": "^2.4.0", "react-leaflet-bing": "^4.1.0", "react-leaflet-markercluster": "^2.0.0-rc3", @@ -88,9 +88,9 @@ "xmltojson": "^1.3.5" }, "devDependencies": { - "combine-react-intl-messages": "^1.0.6", "enzyme": "^3.2.0", "enzyme-adapter-react-16": "^1.1.1", + "extract-react-intl-messages": "^4.1.1", "npm-run-all": "^4.1.1", "postcss-cli": "^7.1.0", "postcss-import": "^12.0.1", @@ -110,7 +110,7 @@ "scripts": { "build-postcss": "postcss src/styles/index.css -o src/index.css", "watch-postcss": "postcss src/styles/index.css -o src/index.css -w", - "build-intl": "yarn run combine-messages -i './src/**/*.js' -o './src/lang/en-US.json'", + "build-intl": "NODE_ENV=production yarn run extract-messages -l=en-US -o src/lang/ -d en-US --flat -f json 'src/**/!(*.test).js'", "update-layers": "node scripts/update_layers.js", "update-layers-prod": "NODE_ENV=production node scripts/update_layers.js", "start-js": "react-scripts start", diff --git a/src/components/ActivityListing/ActivityTime.js b/src/components/ActivityListing/ActivityTime.js index 3ca6bbee4..c68e90855 100644 --- a/src/components/ActivityListing/ActivityTime.js +++ b/src/components/ActivityListing/ActivityTime.js @@ -3,10 +3,11 @@ import PropTypes from 'prop-types' import classNames from 'classnames' import { injectIntl, - FormattedRelative, + FormattedRelativeTime, FormattedDate, FormattedTime } from 'react-intl' +import { selectUnit } from '@formatjs/intl-utils' import parse from 'date-fns/parse' /** @@ -30,7 +31,7 @@ export const ActivityTime = props => { : - + }
    ) diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js index c567648e9..7ddb54316 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js @@ -45,7 +45,7 @@ export default defineMessages({ "other users (subject to project visibility). Unless you are really " + "confident in creating new Challenges, we would recommend leaving this set " + "to No at first, especially if the parent Project had been made visible. " + - "Setting your Challenge's visibility to Yes will make it appear on the home " + + "Setting your Challenge’s visibility to Yes will make it appear on the home " + "page, in the Challenge search, and in metrics - but only if the parent " + "Project is also visible.", }, @@ -91,9 +91,6 @@ export default defineMessages({ defaultMessage: "Instructions", }, - // Note: dummy variable included to workaround react-intl - // [bug 1158](https://github.com/yahoo/react-intl/issues/1158) - // Just pass in an empty string for its value instructionDescription: { id: 'Admin.EditChallenge.form.instruction.description', defaultMessage: "The instruction tells a mapper how to resolve a Task in " + @@ -102,9 +99,9 @@ export default defineMessages({ "about how to solve the task, so think about this field carefully. You can " + "include links to the OSM wiki or any other hyperlink if you want, because " + "this field supports Markdown. You can also reference feature properties " + - "from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be " + + "from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be " + "replaced with the value of the `address` property, allowing for basic " + - "customization of instructions for each task. This field is required. {dummy}", + "customization of instructions for each task. This field is required.", }, checkinCommentLabel: { @@ -340,11 +337,11 @@ will not be able to make sense of it. "The priority of tasks can be defined as High, Medium and Low. All " + "high priority tasks will be offered to users first when working " + "through a challenge, followed by medium and finally low priority " + - "tasks. Each task's priority is assigned automatically based on " + + "tasks. Each task’s priority is assigned automatically based on " + "the rules you specify below, each of which is evaluated against the " + - "task's feature properties (OSM tags if you are using an Overpass " + - "query, otherwise whatever properties you've chosen to include in " + - "your GeoJSON). Tasks that don't pass any rules will be assigned " + + "task’s feature properties (OSM tags if you are using an Overpass " + + "query, otherwise whatever properties you’ve chosen to include in " + + "your GeoJSON). Tasks that don’t pass any rules will be assigned " + "the default priority.", }, @@ -409,7 +406,7 @@ will not be able to make sense of it. id: 'Admin.EditChallenge.form.defaultZoom.description', defaultMessage: "When a user begins work on a task, MapRoulette will " + "attempt to automatically use a zoom level that fits the bounds of the " + - "task's feature. But if that's not possible, then this default zoom level " + + "task’s feature. But if that’s not possible, then this default zoom level " + "will be used. It should be set to a level is generally suitable for " + "working on most tasks in your challenge.", }, @@ -424,7 +421,7 @@ will not be able to make sense of it. defaultMessage: "The minimum allowed zoom level for your challenge. " + "This should be set to a level that allows the user to sufficiently " + "zoom out to work on tasks while keeping them from zooming out to " + - "a level that isn't useful.", + "a level that isn’t useful.", }, maxZoomLabel: { @@ -437,7 +434,7 @@ will not be able to make sense of it. defaultMessage: "The maximum allowed zoom level for your challenge. " + "This should be set to a level that allows the user to sufficiently " + "zoom in to work on the tasks while keeping them from zooming in " + - "to a level that isn't useful or exceeds the available resolution " + + "to a level that isn’t useful or exceeds the available resolution " + "of the map/imagery in the geographic region.", }, @@ -458,12 +455,9 @@ will not be able to make sense of it. defaultMessage: "Custom Basemap", }, - // Note: dummy variable included to workaround react-intl - // [bug 1158](https://github.com/yahoo/react-intl/issues/1158) - // Just pass in an empty string for its value customBasemapDescription: { id: "Admin.EditChallenge.form.customBasemap.description", - defaultMessage: "Insert a custom base map URL here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + defaultMessage: "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", }, exportablePropertiesLabel: { @@ -544,6 +538,6 @@ will not be able to make sense of it. requiesLocalDescription: { id: "Admin.EditChallenge.form.requiresLocal.description", defaultMessage: "Tasks require local or on-the-ground knowledge to complete." + - " Note: challenge will not appear in the 'Find challenges' list." + " Note: challenge will not appear in the Find Challenges list." } }) diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step1Schema.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step1Schema.js index 6234a8102..f0e479dc1 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step1Schema.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step1Schema.js @@ -160,7 +160,7 @@ export const uiSchema = (intl, user, challengeData) => { }, instruction: { "ui:field": "markdown", - "ui:help": , + "ui:help": , "ui:lightMode": true, }, difficulty: { diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step4Schema.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step4Schema.js index c95644c14..52bc05c24 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step4Schema.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Step4Schema.js @@ -162,7 +162,7 @@ export const uiSchema = intl => ({ }, customBasemap: { "ui:emptyValue": "", - "ui:help": , + "ui:help": , }, exportableProperties: { "ui:emptyValue": "", diff --git a/src/components/AdminPane/Manage/RebuildTasksControl/Messages.js b/src/components/AdminPane/Manage/RebuildTasksControl/Messages.js index a54a8a276..321eb828d 100644 --- a/src/components/AdminPane/Manage/RebuildTasksControl/Messages.js +++ b/src/components/AdminPane/Manage/RebuildTasksControl/Messages.js @@ -21,7 +21,7 @@ export default defineMessages({ remote: { id: "RebuildTasksControl.modal.intro.remote", - defaultMessage: "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:" + defaultMessage: "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:" }, local: { diff --git a/src/components/CardChallenge/CardChallenge.js b/src/components/CardChallenge/CardChallenge.js index 94d7de08a..4dfaf3524 100644 --- a/src/components/CardChallenge/CardChallenge.js +++ b/src/components/CardChallenge/CardChallenge.js @@ -1,6 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import { FormattedMessage, FormattedRelative } from 'react-intl' +import { FormattedMessage, FormattedRelativeTime } from 'react-intl' +import { selectUnit } from '@formatjs/intl-utils' import { Link } from 'react-router-dom' import AnimateHeight from 'react-animate-height' import classNames from 'classnames' @@ -49,7 +50,6 @@ export class CardChallenge extends Component { } } - return (
    this.node = node} @@ -111,8 +111,8 @@ export class CardChallenge extends Component {
  • : -
  • diff --git a/src/components/ChallengeDetail/ChallengeDetail.js b/src/components/ChallengeDetail/ChallengeDetail.js index 611c21cea..63f2323f7 100644 --- a/src/components/ChallengeDetail/ChallengeDetail.js +++ b/src/components/ChallengeDetail/ChallengeDetail.js @@ -1,6 +1,8 @@ import React, { Component } from 'react' import { Link } from 'react-router-dom' -import { FormattedMessage, FormattedRelative, injectIntl } from 'react-intl' +import { FormattedMessage, FormattedRelativeTime, injectIntl } + from 'react-intl' +import { selectUnit } from '@formatjs/intl-utils' import classNames from 'classnames' import _isObject from 'lodash/isObject' import _get from 'lodash/get' @@ -194,9 +196,7 @@ export class ChallengeDetail extends Component { /> : {' '} - +
  • : {' '} - +
  • @@ -101,9 +101,7 @@ export class ProjectDetail extends Component { /> : {' '} - +
  • {_get(this.props, 'challenges.length', 0) > 0 &&
  • diff --git a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskCompletionStep2/Messages.js b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskCompletionStep2/Messages.js index eeab7027d..3d0d9785e 100644 --- a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskCompletionStep2/Messages.js +++ b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskCompletionStep2/Messages.js @@ -11,7 +11,7 @@ export default defineMessages({ notFixed: { id: 'ActiveTask.controls.notFixed.label', - defaultMessage: "Too difficult / Couldn't see", + defaultMessage: "Too difficult / Couldn’t see", }, alreadyFixed: { diff --git a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskTooHardControl/Messages.js b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskTooHardControl/Messages.js index 1e9c7f03c..d1d4e11ac 100644 --- a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskTooHardControl/Messages.js +++ b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/TaskTooHardControl/Messages.js @@ -6,12 +6,12 @@ import { defineMessages } from 'react-intl' export default defineMessages({ tooHardLabel: { id: 'Task.controls.tooHard.label', - defaultMessage: "Too hard / Can't see", + defaultMessage: "Too hard / Can’t see", }, tooHardTooltip: { id: 'Task.controls.tooHard.tooltip', - defaultMessage: "Too hard / Can't see", + defaultMessage: "Too hard / Can’t see", }, }) diff --git a/src/index.js b/src/index.js index c6d174734..adb15e8c8 100644 --- a/src/index.js +++ b/src/index.js @@ -55,7 +55,12 @@ if (!_isEmpty(process.env.REACT_APP_MATOMO_URL) && // Attach user's current locale to react-intl IntlProvider const ConnectedIntl = WithUserLocale(props => ( - + {props.children} )) diff --git a/src/lang/af.json b/src/lang/af.json index f2e751671..420fd868e 100644 --- a/src/lang/af.json +++ b/src/lang/af.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Blurb", "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.", "Admin.EditChallenge.form.instruction.label": "Instructions", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Default Basemap", "Profile.form.defaultBasemap.description": "Kies die verstek basemap te vertoon op die kaart. Slegs ''n standaard uitdaging basemap sal die opsie hier gekies ignoreer.", "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Voeg n persoonlike basis kaart hier. Eg. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png`", + "Profile.form.customBasemap.description": "Voeg n persoonlike basis kaart hier. Eg. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "Gebruikers land te gebruik vir MapRoulette UI.", "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file +} diff --git a/src/lang/cs_CZ.json b/src/lang/cs_CZ.json index 38ce40df4..323fcf922 100644 --- a/src/lang/cs_CZ.json +++ b/src/lang/cs_CZ.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Blurb", "Admin.EditChallenge.form.blurb.description": "Velmi stručný popis vaší výzvy vhodný pro malé prostory, jako je vyskakovací okno se značkou. Toto pole podporuje Markdown.", "Admin.EditChallenge.form.instruction.label": "Instrukce", - "Admin.EditChallenge.form.instruction.description": "Instrukce říká mapovači, jak vyřešit úkol ve vaší výzvě. Toto je to, co mapovači vidí v poli Pokyny při každém načtení úlohy, a je to primární informace pro mapovače o tom, jak úkol vyřešit, proto o tomto poli pečlivě přemýšlejte. Můžete přidat odkazy na wiki OSM nebo jakýkoli jiný hypertextový odkaz, pokud chcete, protože toto pole podporuje Markdown. Můžete také odkazovat na vlastnosti objektu z GeoJSON pomocí jednoduchých značek např: `\\{\\{address\\}\\}` by bylo nahrazeno hodnotou vlastnosti `address`, což umožní základní přizpůsobení instrukcí pro každou úlohu. Toto pole je povinné. {dummy}", + "Admin.EditChallenge.form.instruction.description": "Instrukce říká mapovači, jak vyřešit úkol ve vaší výzvě. Toto je to, co mapovači vidí v poli Pokyny při každém načtení úlohy, a je to primární informace pro mapovače o tom, jak úkol vyřešit, proto o tomto poli pečlivě přemýšlejte. Můžete přidat odkazy na wiki OSM nebo jakýkoli jiný hypertextový odkaz, pokud chcete, protože toto pole podporuje Markdown. Můžete také odkazovat na vlastnosti objektu z GeoJSON pomocí jednoduchých značek např: `'{{address}}'` by bylo nahrazeno hodnotou vlastnosti `address`, což umožní základní přizpůsobení instrukcí pro každou úlohu. Toto pole je povinné.", "Admin.EditChallenge.form.checkinComment.label": "Popis sady změn", "Admin.EditChallenge.form.checkinComment.description": "Komentář bude přidružen ke změnám provedeným uživateli v editoru", "Admin.EditChallenge.form.checkinSource.label": "Zdroj změn", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", "Admin.EditChallenge.form.defaultBasemap.description": "Výchozí základní mapa, která se má použít pro výzvu, přepíše všechna uživatelská nastavení, která definují výchozí základní mapu", "Admin.EditChallenge.form.customBasemap.label": "Vlastní Základní mapa", - "Admin.EditChallenge.form.customBasemap.description": "Sem vložte vlastní základní adresu URL mapy. Např. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Sem vložte vlastní základní adresu URL mapy. Např. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Default Basemap", "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "User locale to use for MapRoulette UI.", "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file +} diff --git a/src/lang/de.json b/src/lang/de.json index a123b03cc..79687c86f 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -36,9 +36,9 @@ "Admin.EditProject.form.displayName.label": "Anzeigename", "Admin.EditProject.form.displayName.description": "Projektname", "Admin.EditProject.form.enabled.label": "Sichtbar", - "Admin.EditProject.form.enabled.description": "Wenn du dein Projekt auf Sichtbar setzt, werden alle zugehörigen Kampagne, die auch auf Sichtbar gesetzt sind, für andere Nutzer zugänglich sein. Wenn du ein Projekt auf Sichtbar setzt, werden alle zugehörigen Kampagnen veröffentlicht, sollten sie auf Sichtbar gesetzt sein. Du kannst trotzdem weiterhin an deinen eigenen Kampagnen arbeiten und diese mit anderen Personen teilen. Bis du ein Projekt auf Sichtbar setzt, kannst du es als eine Art Testfeld für deine Kampagnen ansehen.", + "Admin.EditProject.form.enabled.description": "Setzt du das Projekt auf Sichtbar, werden alle zugehörigen Kampagne, die auch auf Sichtbar gesetzt sind, für andere Benutzer zugänglich sein. Damit werden auch alle zugehörigen Kampagnen veröffentlicht, sollten sie auf Sichtbar gesetzt sein. Du kannst trotzdem weiterhin an deinen eigenen Kampagnen arbeiten und diese mit anderen Personen teilen. Bis du ein Projekt auf Sichtbar setzt, kannst du es als eine Art Testfeld für deine Kampagnen ansehen.", "Admin.EditProject.form.featured.label": "Empfohlen", - "Admin.EditProject.form.featured.description": "Empfohlene Projekte werden auf der Homepage und oben auf der \"Kampagnen Suchen\" Seite angezeigt, um mehr Aufmerksamkeit auf sie zu lenken. Beachte, dass das Empfehlen eines Projektes **nicht** automatisch dessen Kampagnen vorstellt. Nur Super-User können ganze Projekte als Empfohlen markieren.", + "Admin.EditProject.form.featured.description": "Empfohlene Projekte werden auf der Homepage und oben auf der \"Kampagnen Suchen\" Seite angezeigt, um mehr Aufmerksamkeit auf sie zu lenken. Beachte, dass das Empfehlen eines Projektes **nicht** automatisch dessen Kampagnen vorstellt. Nur erfahrene Benutzer können ganze Projekte als Empfohlen markieren.", "Admin.EditProject.form.isVirtual.label": "Virtuell", "Admin.EditProject.form.isVirtual.description": "Wenn ein Projekt virtuell ist, kannst du bereits bestehende Kampagnen gruppieren. Diese Einstellung kann nach Erstellen des Projektes nicht mehr geändert werden. Alle Berechtigungen werden von der originalen Kampagne übertragen.", "Admin.EditProject.form.description.label": "Beschreibung", @@ -55,11 +55,11 @@ "Admin.EditChallenge.form.name.label": "Name", "Admin.EditChallenge.form.name.description": "Der Name deiner Kampagne, wie er an vielen Stellen in MapRoulette erscheint und wie über das Suchfeld gesucht werden kann. Dieses Feld ist erforderlich und unterstützt nur reinen Text.", "Admin.EditChallenge.form.description.label": "Beschreibung", - "Admin.EditChallenge.form.description.description": "Die primäre, ausführliche Beschreibung der Kampagne, die den Benutzern angezeigt wird, wenn sie auf die Kampagne klicken, um mehr darüber zu erfahren. Dieses Feld unterstützt Markdown.", + "Admin.EditChallenge.form.description.description": "Die primäre, ausführliche Beschreibung der Kampagne, die Beutzern angezeigt wird, wenn sie auf die Kampagne klicken, um mehr darüber zu erfahren. Dieses Feld unterstützt Markdown.", "Admin.EditChallenge.form.blurb.label": "Klappentext", "Admin.EditChallenge.form.blurb.description": "Eine Kurzbeschreibung der Kampagne. Knapp genug, dass sie z.B. für kleine Hinweisfenster auf der Karte geeignet ist. Dieses Feld unterstützt Markdown.", "Admin.EditChallenge.form.instruction.label": "Anleitung", - "Admin.EditChallenge.form.instruction.description": "Die Anleitung erklärt einem Mapper, wie er die Kampagne lösen kann. Diese Information sehen die Mapper jedes Mal im Anleitungsfeld, wenn sie eine Aufgabe laden. Gleichzeitig ist sie die wichtigste Informationsquelle für den Mapper. Denke also sorgfältig über dieses Feld nach. Du kannst Links zum OSM Wiki oder andere Webseiten hinzufügen, da dieses Feld Markdown unterstützt. Du kannst außerdem auch auf Eigenschaften aus deiner GeoJSON mit Mustache Tags verweisen. Z. B. würde `\\{\\{address\\}\\}` mit dem Wert der `address` Eigenschaft ersetzt werden, was die Anpassung der Anleitung für einzelne Aufgaben ermöglicht. Dieses Feld ist erforderlich. {dummy}", + "Admin.EditChallenge.form.instruction.description": "Die Anleitung erklärt einem Mapper, wie er die Kampagne lösen kann. Diese Information sehen die Mapper jedes Mal im Anleitungsfeld, wenn sie eine Aufgabe laden. Gleichzeitig ist sie die wichtigste Informationsquelle für den Mapper. Denke also sorgfältig über dieses Feld nach. Du kannst Links zum OSM Wiki oder andere Webseiten hinzufügen, da dieses Feld Markdown unterstützt. Du kannst außerdem auch auf Eigenschaften aus deiner GeoJSON mit Mustache Tags verweisen. Z. B. würde `'{{address}}'` mit dem Wert der `address` Eigenschaft ersetzt werden, was die Anpassung der Anleitung für einzelne Aufgaben ermöglicht. Dieses Feld ist erforderlich.", "Admin.EditChallenge.form.checkinComment.label": "Beschreibung des Änderungssatzes", "Admin.EditChallenge.form.checkinComment.description": "Kommentar, der den Änderungen von Benutzern im Editor zugeordnet wird", "Admin.EditChallenge.form.checkinSource.label": "Quelle des Änderungssatzes", @@ -70,13 +70,13 @@ "Admin.EditChallenge.form.difficulty.label": "Schwierigkeit", "Admin.EditChallenge.form.difficulty.description": "Wähle die Schwierigkeit zwischen Einfach, Normal und Experte, um den Mappern zu zeigen, wie schwer deine Aufgabe ist. Einfache Aufgaben sollten für Einsteiger mit wenig oder gar keiner Erfahrung lösbar sein.", "Admin.EditChallenge.form.category.label": "Kategorie", - "Admin.EditChallenge.form.category.description": "Die geeignete Kategorie für deine Kampagne kann Benutzern helfen, schnell Kampagnen zu entdecken, die ihren Interessen entsprechen. Wenn du keine passende Kategorie findest, wähle Andere.", + "Admin.EditChallenge.form.category.description": "Die geeignete Kategorie für deine Kampagne hilft Benutzern, Kampagnen zu entdecken, die ihren Interessen entsprechen. Wenn du keine passende Kategorie findest, wähle Andere.", "Admin.EditChallenge.form.additionalKeywords.label": "Schlüsselwörter", "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", "Admin.EditChallenge.form.preferredTags.label": "Bevorzugte Tags", - "Admin.EditChallenge.form.preferredTags.description": "Du kannst auch eine Liste mit bevorzugten Tags, welche der Benutzer verwenden sollte, wenn er eine Aufgabe erfüllt, angeben.", + "Admin.EditChallenge.form.preferredTags.description": "Du kannst optional empfohlene Tags auflisten, die Benutzer zur Bearbeitung der Aufgabe verwenden sollen.", "Admin.EditChallenge.form.featured.label": "Empfohlen", - "Admin.EditChallenge.form.featured.description": "Empfohlene Kampagnen werden bei der Suche oben in der Liste angezeigt. Nur Super-Use können Kampagnen als Empfohlen markieren.", + "Admin.EditChallenge.form.featured.description": "Empfohlene Kampagnen werden bei der Suche oben in der Liste angezeigt. Nur erfahrene Benutzer können Kampagnen als Empfohlen markieren.", "Admin.EditChallenge.form.step2.label": "GeoJSON", "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", "Admin.EditChallenge.form.source.label": "GeoJSON Quelle", @@ -89,9 +89,9 @@ "Admin.EditChallenge.form.remoteGeoJson.description": "Bitte geben Sie die Adresse ein, von wo das GeoJSON geholt werden soll.", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.beispiel.com/geojson.json", "Admin.EditChallenge.form.dataOriginDate.label": "Datum an dem die Daten erhoben wurden", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", + "Admin.EditChallenge.form.dataOriginDate.description": "Alter der Daten. Das Datum, an dem die Daten erzeugt oder heruntergeladen wurden.", "Admin.EditChallenge.form.ignoreSourceErrors.label": "Fehler ignorieren", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Fortfahren trotz festgestellter Fehler in den Quelldaten. Nur für erfahrene Benutzer, die die Auswirkungen vollständig verstehen.", "Admin.EditChallenge.form.step3.label": "Prioritäten", "Admin.EditChallenge.form.step3.description": "Die Priorität von Aufgaben kann als Hoch, Mittel und Gering angegeben werden. Alle Aufgaben mit Priorität Hoch werden zuerst angezeigt, dann Aufgaben mit Priorität Mittel und zum Schluss Aufgaben mit Priorität Niedrig. Das kann sinnvoll sein, wenn Sie eine große Anzahl von Aufgaben haben und gewisse Aufgaben zuerst anzeigen möchten.", "Admin.EditChallenge.form.defaultPriority.label": "Standardpriorität", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Kartenhintergrund der Kampagne", "Admin.EditChallenge.form.defaultBasemap.description": "Der Kartenhintergrund für die Kampagne überschreibt alle voreingestellten Kartenhintergründe der Benutzer.", "Admin.EditChallenge.form.customBasemap.label": "Eigener Kartenhintergrund", - "Admin.EditChallenge.form.customBasemap.description": "Füge hier die URL des eigenen Kartenhintergrunds ein. Zum Beispiel `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Füge hier die URL des eigenen Kartenhintergrunds ein. Zum Beispiel `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Eigenschaften für CSV-Export", "Admin.EditChallenge.form.exportableProperties.description": "Alle Eigenschaften in dieser kommagetrennten Liste werden als Spalte im CSV-Export exportiert und mit der ersten entsprechenden Merkmal-Eigenschaft aus jeder Aufgabe ergänzt.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -161,7 +161,7 @@ "Admin.manage.virtual": "Virtuell", "Admin.ProjectCard.tabs.challenges.label": "Kampagnen", "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Managers", + "Admin.ProjectCard.tabs.managers.label": "Projektleiter", "Admin.Project.fields.enabled.tooltip": "Aktiviert", "Admin.Project.fields.disabled.tooltip": "Deaktiviert", "Admin.ProjectCard.controls.editProject.tooltip": "Projekt bearbeiten", @@ -181,7 +181,7 @@ "Admin.Project.fields.lastModifiedDate.label": "Bearbeitet", "Admin.Project.controls.delete.label": "Projekt löschen", "Admin.Project.controls.visible.label": "Sichtbar:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.confirmation": "Bist Du sicher? Die Kampagnen dieses Projekts werden für Andere nicht auffindbar.", "Admin.Project.challengesUndiscoverable": "Kampagnen nicht auffindbar", "ProjectPickerModal.chooseProject": "Wähle ein Projekt", "ProjectPickerModal.noProjects": "Keine Projekte gefunden", @@ -192,11 +192,11 @@ "Admin.ProjectsDashboard.regenerateHomeProject": "Bitte ab- und wieder anmelden, um ein neues Projekt zu aktualisieren.", "RebuildTasksControl.label": "Aufgaben wiederherstellen", "RebuildTasksControl.modal.title": "Aufgaben der Kampagne wiederherstellen", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "RebuildTasksControl.modal.intro.overpass": "Beim Neuaufbau werden die Overpass-Abfrage wiederholt und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", + "RebuildTasksControl.modal.intro.remote": "Beim Neuaufbau werden die GeoJSON-Daten erneut von der externen URL der Kampagne heruntergeladen und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", + "RebuildTasksControl.modal.intro.local": "Beim Neuaufbau kann eine neue lokale Datei mit den neuesten GeoJSON-Daten hochgeladen und die Aufgaben der Kampagne aktualisiert werden:", + "RebuildTasksControl.modal.explanation": "* Vorhandene Aufgaben, die in den neuesten Daten enthalten sind, werden aktualisiert\n* Neue Aufgaben werden hinzugefügt.\n* Bei der Auswahl, zuerst unvollständige Aufgaben (unten) zu entfernen, werden bestehende __unvollständige__ Aufgaben zuerst entfernt\n* Bei der Auswahl, unvollständige Aufgaben nicht zuerst entfernen, werden sie so belassen, wie sie sind, und möglicherweise bereits erledigte Aufgaben außerhalb von MapRoulette belassen.", + "RebuildTasksControl.modal.warning": "Warnung: Ein Neuaufbau kann zur Doppelung von Aufgaben führen, wenn Objekt-IDs nicht richtig eingerichtet sind oder wenn der Abgleich alter Daten mit neuen Daten nicht erfolgreich ist. Dieser Vorgang kann nicht rückgängig gemacht werden!", "RebuildTasksControl.modal.moreInfo": "[Mehr erfahren](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", "RebuildTasksControl.modal.controls.removeUnmatched.label": "Zuerst nicht erledigte Aufgaben entfernen", "RebuildTasksControl.modal.controls.cancel.label": "Abbrechen", @@ -256,7 +256,7 @@ "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Erstellt:", "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Bearbeitet:", "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Aufgaben aktualisiert:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Aufgaben von:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Aufgaben erstellt:", "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Aufgaben erstellt am {refreshDate} mit Daten vom {sourceDate}.", "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Sichtbar:", @@ -280,7 +280,7 @@ "Admin.ProjectManagers.addManager": "Projektleiter hinzufügen", "Admin.ProjectManagers.projectOwner": "Eigentümer", "Admin.ProjectManagers.controls.removeManager.label": "Projektleiter entfernen", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Bist Du sicher, dass Du den Projektleiter aus dem Projekt entfernen willst?", "Admin.ProjectManagers.controls.selectRole.choose.label": "Wähle eine Rolle", "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Teamname", @@ -307,7 +307,7 @@ "Project.indicator.label": "Projekt", "ChallengeDetails.controls.goBack.label": "Zurück", "ChallengeDetails.controls.start.label": "Start", - "ChallengeDetails.controls.favorite.label": "Favorit", + "ChallengeDetails.controls.favorite.label": "Als Favorit", "ChallengeDetails.controls.favorite.tooltip": "In Favoritenliste speichern", "ChallengeDetails.controls.unfavorite.label": "Von Favoritenliste entfernen", "ChallengeDetails.controls.unfavorite.tooltip": "Aus Favoritenliste entfernen", @@ -338,7 +338,7 @@ "Challenge.signIn.label": "Bitte melde dich an, um zu starten", "Challenge.results.heading": "Kampagnen", "Challenge.results.noResults": "Keine Kampagnen gefunden", - "VirtualChallenge.controls.tooMany.label": "Hineinkommen, um Aufgaben zu bearbeiten", + "VirtualChallenge.controls.tooMany.label": "Hineinzoomen, um Aufgaben zu bearbeiten", "VirtualChallenge.controls.tooMany.tooltip": "Eine \"virtuelle\" Kampagne kann maximal {maxTasks, number} Aufgaben beinhalten.", "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", "VirtualChallenge.fields.name.label": "Gebe deiner \"virtuellen\" Kampagne einen Namen", @@ -603,7 +603,7 @@ "Navbar.links.admin": "Erstellen & Verwalten", "Navbar.links.help": "Mehr erfahren", "Navbar.links.userProfile": "Benutzereinstellungen", - "Navbar.links.userMetrics": "Nutzerstatistik", + "Navbar.links.userMetrics": "Benutzerstatistik", "Navbar.links.signout": "Abmelden", "PageNotFound.message": "Hoppla! Die Seite, die Du suchst, ist nicht mehr verfügbar.", "PageNotFound.homePage": "Take me home", @@ -640,7 +640,7 @@ "Admin.TaskReview.controls.taskNotCompleted": "Diese Aufgabe kann noch nicht geprüft werden, weil sie noch nicht erledigt wurde.", "Admin.TaskReview.controls.approved": "Bestätigen", "Admin.TaskReview.controls.rejected": "Verwerfen", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.approvedWithFixes": "Bestätigen (mit Korrekturen)", "Admin.TaskReview.controls.startReview": "Prüfung starten", "Admin.TaskReview.controls.skipReview": "Prüfung überspringen", "Admin.TaskReview.controls.resubmit": "Wiedervorlage zur Prüfung", @@ -662,11 +662,11 @@ "ShareLink.controls.copy.label": "Kopieren", "SignIn.control.label": "Anmelden", "SignIn.control.longLabel": "Bitte melde dich an, um zu starten", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.justChangesHeader": "Änderungsvorschläge der OSM Tags", "TagDiffVisualization.header": "Vorgeschlagene OSM Tags", "TagDiffVisualization.current.label": "Aktuell", "TagDiffVisualization.proposed.label": "Vorgeschlagen", - "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChanges": "Keine Änderungen der OSM Tags", "TagDiffVisualization.noChangeset": "No changeset would be uploaded", "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.changeset.tooltip": "Als OSM Änderungssatz anzeigen", @@ -855,7 +855,7 @@ "Task.taskTags.cancel.label": "Abbrechen", "Task.taskTags.modify.label": "MR Tags bearbeiten", "Task.taskTags.addTags.placeholder": "MR Tags hinzufügen", - "Taxonomy.indicators.newest.label": "Neu", + "Taxonomy.indicators.newest.label": "Neuste", "Taxonomy.indicators.popular.label": "Beliebt", "Taxonomy.indicators.featured.label": "Vorgestellt", "Taxonomy.indicators.favorite.label": "In Favoritenliste speichern", @@ -985,9 +985,9 @@ "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", "Dashboard.header": "Übersicht", "Dashboard.header.welcomeBack": "Willkommen zurück, {username}!", - "Dashboard.header.completionPrompt": "Du bist fertig", + "Dashboard.header.completionPrompt": "Mit", "Dashboard.header.completedTasks": "{completedTasks, number} Aufgaben", - "Dashboard.header.pointsPrompt": ", hast", + "Dashboard.header.pointsPrompt": ", hast Du", "Dashboard.header.userScore": "{points, number} Punkte", "Dashboard.header.rankPrompt": ", und bist auf", "Dashboard.header.globalRank": "Platz #{rank, number}", @@ -1028,7 +1028,7 @@ "Inbox.notification.controls.reviewTask.label": "Aufgabe prüfen", "Inbox.notification.controls.manageChallenge.label": "Kampagne verwalten", "Leaderboard.title": "Bestenliste", - "Leaderboard.global": "Weltweit", + "Leaderboard.global": "Weltweite", "Leaderboard.scoringMethod.label": "Zählmethode", "Leaderboard.scoringMethod.explanation": "##### Punkte pro erledigter Aufgabe werden wie folgt vergeben:\n\n| Status | Punkte |\n| :------------ | -----: |\n| Behoben | 5 |\n| Falsch Positiv | 3 |\n| Bereits behoben | 3 |\n| Zu schwierig | 1 |\n| Übersprungen | 0 |", "Leaderboard.user.points": "Punkte", @@ -1038,7 +1038,7 @@ "Leaderboard.updatedFrequently": "Aktualisierung alle 15 Minuten", "Leaderboard.updatedDaily": "Aktualisierung alle 24 Stunden", "Metrics.userOptedOut": "Dieser Benutzer hat die Veröffentlichung seiner Statistiken abgelehnt.", - "Metrics.userSince": "Nutzer seit:", + "Metrics.userSince": "Benutzer seit:", "Metrics.totalCompletedTasksTitle": "Alle erledigten Aufgaben", "Metrics.completedTasksTitle": "Erledigte Aufgaben", "Metrics.reviewedTasksTitle": "Prüfstatus", @@ -1062,13 +1062,13 @@ "Profile.page.title": "Benutzereinstellungen", "Profile.settings.header": "Allgemein", "Profile.noUser": "Benutzer nicht gefunden oder Du bist nicht berechtigt, diesen Benutzer zu betrachten.", - "Profile.userSince": "Nutzer seit:", + "Profile.userSince": "Beutzer seit:", "Profile.form.defaultEditor.label": "Standardeditor", "Profile.form.defaultEditor.description": "Wählen Sie den Standardeditor, den Sie verwenden möchten wenn Sie Aufgaben lösen. Durch Auswahl dieser Option können Sie die Editorauswahl überspringen, nachdem Sie auf Bearbeiten geklickt haben.", "Profile.form.defaultBasemap.label": "Standard Kartenhintergrund", "Profile.form.defaultBasemap.description": "Wähle den Standard Kartenhintergrund. Nur ein definierter Kartenhintergrund einer Kampagne kann die hier ausgewählte Option überschreiben.", "Profile.form.customBasemap.label": "Eigener Kartenhintergrund", - "Profile.form.customBasemap.description": "Fügen Sie eine eigene Basiskarte hier ein. Zum Beispiel `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png`", + "Profile.form.customBasemap.description": "Fügen Sie eine eigene Basiskarte hier ein. Zum Beispiel `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Sprache", "Profile.form.locale.description": "Benutzersprache für die MapRoulette Benutzeroberfläche.", "Profile.form.leaderboardOptOut.label": "Von der Bestenliste abmelden", @@ -1081,10 +1081,10 @@ "Profile.form.isReviewer.label": "Als Prüfer mithelfen", "Profile.form.isReviewer.description": "Hilf mit Aufgaben zu prüfen, bei denen eine Überprüfung angefragt wurde", "Profile.form.email.label": "E-Mail Adresse", - "Profile.form.email.description": "Als Email abonnierte Nachrichten werden an diese Adresse gesendet.\n\nWähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob du per Email über die Nachrichten informiert werden willst (entweder direkt oder als tägliche Zusammenfassung).", + "Profile.form.email.description": "E-Mail Nachrichten werden an diese Adresse gesendet.\n\nWähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als Email versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", "Profile.form.notification.label": "Nachricht", "Profile.form.notificationSubscriptions.label": "Nachrichten Abonnements", - "Profile.form.notificationSubscriptions.description": "Wähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob du per Email über die Nachrichten informiert werden willst (entweder direkt oder als tägliche Zusammenfassung).", + "Profile.form.notificationSubscriptions.description": "Wähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als E-Mail versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", "Profile.form.yes.label": "Ja", "Profile.form.no.label": "Nein", "Profile.form.mandatory.label": "Obligatorisch", @@ -1098,7 +1098,7 @@ "ReviewStatus.metrics.awaitingReview": "Aufgaben zur Prüfung", "ReviewStatus.metrics.approvedReview": "Aufgaben nach Prüfung bestätigt", "ReviewStatus.metrics.rejectedReview": "Aufgaben nach Prüfung nicht bestätigt", - "ReviewStatus.metrics.assistedReview": "Aufgaben nach Prüfung bestätigt mit Änderungen", + "ReviewStatus.metrics.assistedReview": "Aufgaben nach Prüfung bestätigt mit Korrekturen", "ReviewStatus.metrics.disputedReview": "Aufgaben nach Prüfung mit Konflikt", "ReviewStatus.metrics.fixed": "GELÖST", "ReviewStatus.metrics.falsePositive": "KEIN FEHLER", @@ -1172,7 +1172,7 @@ "Activity.item.bundle": "Gruppe", "Activity.item.grant": "Förderung", "Challenge.basemap.none": "Keine", - "Admin.Challenge.basemap.none": "Nutze Standard", + "Admin.Challenge.basemap.none": "Benutzer Standard", "Challenge.basemap.openStreetMap": "OSM", "Challenge.basemap.openCycleMap": "OpenCycleMap", "Challenge.basemap.bing": "Bing", @@ -1181,11 +1181,11 @@ "Challenge.difficulty.normal": "Normal", "Challenge.difficulty.expert": "Experte", "Challenge.difficulty.any": "Egal", - "Challenge.keywords.navigation": "Straßen / Fußwege / Fahrradwege", + "Challenge.keywords.navigation": "Straßen und Wege", "Challenge.keywords.water": "Wasser", - "Challenge.keywords.pointsOfInterest": "Punkte / Flächen von Interesse", + "Challenge.keywords.pointsOfInterest": "Interessante Orte", "Challenge.keywords.buildings": "Gebäude", - "Challenge.keywords.landUse": "Landnutzung / administrative Grenzen", + "Challenge.keywords.landUse": "Landnutzung und Grenzen", "Challenge.keywords.transit": "Verkehr", "Challenge.keywords.other": "Andere", "Challenge.keywords.any": "Alles", @@ -1284,10 +1284,10 @@ "KeyMapping.taskInspect.nextTask": "Nächste", "KeyMapping.taskInspect.prevTask": "Vorherige", "KeyMapping.taskCompletion.confirmSubmit": "Abschicken", - "Subscription.type.ignore": "Ignorieren", - "Subscription.type.noEmail": "Empfange, aber sende keine E-Mail", - "Subscription.type.immediateEmail": "Empfange und sende eine E-Mail sofort", - "Subscription.type.dailyEmail": "Empfange und sende eine E-Mail täglich", + "Subscription.type.ignore": "Keine Nachrichten", + "Subscription.type.noEmail": "Nachrichten nicht als E-Mail versenden", + "Subscription.type.immediateEmail": "Nachrichten direkt als E-Mail versenden", + "Subscription.type.dailyEmail": "Nachrichten nur einmal täglich als E-Mail versenden", "Notification.type.system": "System", "Notification.type.mention": "Erwähnen", "Notification.type.review.approved": "Bestätigt", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Sichtbar", "Dashboard.ProjectFilter.owner.label": "Im Besitz", "Dashboard.ProjectFilter.pinned.label": "Angeheftet" -} \ No newline at end of file +} diff --git a/src/lang/en-US.json b/src/lang/en-US.json index bc61f7ad4..48943cf66 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -1,418 +1,479 @@ { + "ActiveTask.controls.aleadyFixed.label": "Already fixed", + "ActiveTask.controls.cancelEditing.label": "Go Back", + "ActiveTask.controls.comments.tooltip": "View Comments", + "ActiveTask.controls.fixed.label": "I fixed it!", + "ActiveTask.controls.info.tooltip": "Task Details", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Existing Status", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Challenge Information", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Comments", + "ActiveTask.subheading.instructions": "Instructions", + "ActiveTask.subheading.location": "Location", + "ActiveTask.subheading.progress": "Challenge Progress", + "ActiveTask.subheading.social": "Share", + "ActiveTask.subheading.status": "Existing Status", + "Activity.action.created": "Created", + "Activity.action.deleted": "Deleted", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Updated", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Challenge", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Task", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", "ActivityListing.controls.group.label": "Group", "ActivityListing.noRecentActivity": "No Recent Activity", "ActivityListing.statusTo": "as", "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", - "ActivityMap.tooltip.priorityLabel": "Priority:", - "ActivityMap.tooltip.statusLabel": "Status:", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", - "BurndownChart.heading": "Tasks Remaining: {taskCount, number}", - "BurndownChart.tooltip": "Tasks Remaining", - "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Recent Activity", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "Clone Challenge", + "Admin.Challenge.controls.delete.label": "Delete Challenge", + "Admin.Challenge.controls.edit.label": "Edit Challenge", + "Admin.Challenge.controls.move.label": "Move Challenge", + "Admin.Challenge.controls.move.none": "No permitted projects", + "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", + "Admin.Challenge.controls.start.label": "Start Challenge", + "Admin.Challenge.controls.startChallenge.label": "Start Challenge", + "Admin.Challenge.fields.creationDate.label": "Created:", + "Admin.Challenge.fields.enabled.label": "Visible:", + "Admin.Challenge.fields.lastModifiedDate.label": "Modified:", + "Admin.Challenge.fields.status.label": "Status:", + "Admin.Challenge.tasksBuilding": "Tasks Building...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Tasks Failed to Build", + "Admin.Challenge.tasksNone": "No Tasks", + "Admin.Challenge.totalCreationTime": "Total elapsed time:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Options", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Challenge Name", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Done", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Visible", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Last Activity", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Edit", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Challenge Name", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Clone", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Include status columns", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Start Challenge", - "Admin.Challenge.controls.edit.label": "Edit Challenge", - "Admin.Challenge.controls.move.label": "Move Challenge", - "Admin.Challenge.controls.move.none": "No permitted projects", - "Admin.Challenge.controls.clone.label": "Clone Challenge", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Delete Challenge", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Edit", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Include status columns", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", "Admin.ChallengeList.noChallenges": "No Challenges", - "ChallengeProgressBorder.available": "Available", - "CompletionRadar.heading": "Tasks Completed: {taskCount, number}", - "Admin.EditProject.unavailable": "Project Unavailable", - "Admin.EditProject.edit.header": "Edit", - "Admin.EditProject.new.header": "New Project", - "Admin.EditProject.controls.save.label": "Save", - "Admin.EditProject.controls.cancel.label": "Cancel", - "Admin.EditProject.form.name.label": "Name", - "Admin.EditProject.form.name.description": "Name of the project", - "Admin.EditProject.form.displayName.label": "Display Name", - "Admin.EditProject.form.displayName.description": "Displayed name of the project", - "Admin.EditProject.form.enabled.label": "Visible", - "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Description", - "Admin.EditProject.form.description.description": "Description of the project", - "Admin.InspectTask.header": "Inspect Tasks", - "Admin.EditChallenge.edit.header": "Edit", + "Admin.ChallengeTaskMap.controls.editTask.label": "Edit Task", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", "Admin.EditChallenge.clone.header": "Clone", - "Admin.EditChallenge.new.header": "New Challenge", - "Admin.EditChallenge.lineNumber": "Line {line, number}:", + "Admin.EditChallenge.edit.header": "Edit", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "General", - "Admin.EditChallenge.form.visible.label": "Visible", - "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge's visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", - "Admin.EditChallenge.form.name.label": "Name", - "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", - "Admin.EditChallenge.form.description.label": "Description", - "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", - "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", "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.", - "Admin.EditChallenge.form.instruction.label": "Instructions", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", - "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", + "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", + "Admin.EditChallenge.form.category.label": "Category", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", - "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", "Admin.EditChallenge.form.checkinSource.description": "Source to be associated with changes made by users in editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", - "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Custom Basemap", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "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": "Default priority level for tasks in this challenge", + "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", + "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", + "Admin.EditChallenge.form.description.label": "Description", "Admin.EditChallenge.form.difficulty.description": "Choose between Easy, Normal and Expert to give an indication to mappers what skill level is required to resolve the Tasks in your Challenge. Easy challenges should be suitable for beginners with little or experience.", - "Admin.EditChallenge.form.category.label": "Category", - "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", - "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Featured challenges are shown at the top of the list when browsing and searching challenges. Only super-users may mark a a challenge as featured.", - "Admin.EditChallenge.form.step2.label": "GeoJSON Source", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON Source", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", + "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instructions", + "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", + "Admin.EditChallenge.form.localGeoJson.label": "Upload File", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", + "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", + "Admin.EditChallenge.form.name.label": "Name", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Please provide a suitable bounding box when inserting an overpass query, as this can potentially generate large amounts of data and bog the system down.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", "Admin.EditChallenge.form.overpassQL.placeholder": "Enter Overpass API query here...", - "Admin.EditChallenge.form.localGeoJson.label": "Upload File", - "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", - "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON Source", + "Admin.EditChallenge.form.step1.label": "General", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON Source", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorities", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task's priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task's feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you've chosen to include in your GeoJSON). Tasks that don't pass any rules will be assigned the default priority.", - "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", - "Admin.EditChallenge.form.defaultPriority.description": "Default priority level for tasks in this challenge", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", - "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", - "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task's feature. But if that's not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", - "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", - "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", - "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", - "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", - "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Challenges", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", - "Admin.ManageChallenges.search.placeholder": "Name", - "Admin.ManageChallenges.allProjectChallenge": "All", - "Admin.Challenge.fields.creationDate.label": "Created:", - "Admin.Challenge.fields.lastModifiedDate.label": "Modified:", - "Admin.Challenge.fields.status.label": "Status:", - "Admin.Challenge.fields.enabled.label": "Visible:", - "Admin.Challenge.controls.startChallenge.label": "Start Challenge", - "Admin.Challenge.activity.label": "Recent Activity", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", - "Admin.EditTask.edit.header": "Edit Task", - "Admin.EditTask.new.header": "New Task", - "Admin.EditTask.form.formTitle": "Task Details", - "Admin.EditTask.controls.save.label": "Save", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Visible", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "New Challenge", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Cancel", + "Admin.EditProject.controls.save.label": "Save", + "Admin.EditProject.edit.header": "Edit", + "Admin.EditProject.form.description.description": "Description of the project", + "Admin.EditProject.form.description.label": "Description", + "Admin.EditProject.form.displayName.description": "Displayed name of the project", + "Admin.EditProject.form.displayName.label": "Display Name", + "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", + "Admin.EditProject.form.enabled.label": "Visible", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "Name of the project", + "Admin.EditProject.form.name.label": "Name", + "Admin.EditProject.new.header": "New Project", + "Admin.EditProject.unavailable": "Project Unavailable", "Admin.EditTask.controls.cancel.label": "Cancel", - "Admin.EditTask.form.name.label": "Name", - "Admin.EditTask.form.name.description": "Name of the task", - "Admin.EditTask.form.instruction.label": "Instructions", - "Admin.EditTask.form.instruction.description": "Instructions for users doing this specific task (overrides challenge instructions)", - "Admin.EditTask.form.geometries.label": "GeoJSON", - "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", - "Admin.EditTask.form.priority.label": "Priority", - "Admin.EditTask.form.status.label": "Status", - "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.additionalTags.label": "MR Tags", + "Admin.EditTask.controls.save.label": "Save", + "Admin.EditTask.edit.header": "Edit Task", "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Edit Task", - "Admin.Task.controls.editTask.label": "Edit", - "Admin.manage.header": "Create & Manage", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Challenges", - "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Managers", - "Admin.Project.fields.enabled.tooltip": "Enabled", - "Admin.Project.fields.disabled.tooltip": "Disabled", - "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.formTitle": "Task Details", + "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Instructions for users doing this specific task (overrides challenge instructions)", + "Admin.EditTask.form.instruction.label": "Instructions", + "Admin.EditTask.form.name.description": "Name of the task", + "Admin.EditTask.form.name.label": "Name", + "Admin.EditTask.form.priority.label": "Priority", + "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.label": "Status", + "Admin.EditTask.new.header": "New Task", + "Admin.InspectTask.header": "Inspect Tasks", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "All", + "Admin.ManageChallenges.header": "Challenges", + "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.search.placeholder": "Name", + "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", + "Admin.ManageTasks.header": "Tasks", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Add Challenge", + "Admin.Project.controls.addChallenge.tooltip": "New Challenge", + "Admin.Project.controls.delete.label": "Delete Project", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Manage Challenge List", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Created:", + "Admin.Project.fields.disabled.tooltip": "Disabled", + "Admin.Project.fields.enabled.tooltip": "Enabled", + "Admin.Project.fields.lastModifiedDate.label": "Modified:", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Edit Project", - "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Challenges", + "Admin.ProjectCard.tabs.details.label": "Details", + "Admin.ProjectCard.tabs.managers.label": "Managers", "Admin.ProjectDashboard.controls.addChallenge.label": "Add Challenge", + "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectDashboard.controls.edit.label": "Edit Project", "Admin.ProjectDashboard.controls.manageChallenges.label": "Manage Challenges", - "Admin.Project.fields.creationDate.label": "Created:", - "Admin.Project.fields.lastModifiedDate.label": "Modified:", - "Admin.Project.controls.delete.label": "Delete Project", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "Add Project", + "Admin.ProjectManagers.addManager": "Add Project Manager", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", + "Admin.ProjectManagers.noManagers": "No Managers", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Owner", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projects serve as a means of grouping related challenges together. All challenges must belong to a project.", - "Admin.ProjectsDashboard.search.placeholder": "Project or Challenge Name", - "Admin.Project.controls.addChallenge.tooltip": "New Challenge", + "Admin.ProjectsDashboard.newProject": "Add Project", "Admin.ProjectsDashboard.regenerateHomeProject": "Please sign out and sign back in to regenerate a fresh home project.", - "RebuildTasksControl.label": "Rebuild Tasks", - "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", - "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Cancel", - "RebuildTasksControl.modal.controls.proceed.label": "Proceed", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Cancel", - "StepNavigation.controls.next.label": "Next", - "StepNavigation.controls.prev.label": "Prev", - "StepNavigation.controls.finish.label": "Finish", + "Admin.ProjectsDashboard.search.placeholder": "Project or Challenge Name", + "Admin.Task.controls.editTask.label": "Edit", + "Admin.Task.controls.editTask.tooltip": "Edit Task", + "Admin.Task.fields.name.label": "Task:", + "Admin.Task.fields.status.label": "Status:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Edit", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Admin.TaskAnalysisTable.controls.startTask.label": "Start", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "tasks deleted", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Edit Task", + "Admin.TaskInspect.controls.modifyTask.label": "Modify Task", + "Admin.TaskInspect.controls.nextTask.label": "Next Task", + "Admin.TaskInspect.controls.previousTask.label": "Prior Task", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approve", + "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", + "Admin.TaskReview.controls.rejected": "Reject", + "Admin.TaskReview.controls.resubmit": "Submit for Review Again", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Start Review", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "tasks uploaded", - "Admin.Challenge.tasksBuilding": "Tasks Building...", - "Admin.Challenge.tasksFailed": "Tasks Failed to Build", - "Admin.Challenge.tasksNone": "No Tasks", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Total elapsed time:", - "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", - "Admin.ManageTasks.header": "Tasks", - "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", - "Admin.manageTasks.controls.changePriority.label": "Change Priority", - "Admin.manageTasks.priorityLabel": "Priority", - "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", - "Admin.ChallengeTaskMap.controls.editTask.label": "Edit Task", - "Admin.Task.fields.name.label": "Task:", - "Admin.Task.fields.status.label": "Status:", - "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", "Admin.VirtualProject.ChallengeList.noChallenges": "No Challenges", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Find Challenges", "Admin.VirtualProject.controls.add.label": "Add", + "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Remove", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "Challenges", - "Widgets.ChallengeListWidget.title": "Challenges", - "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Find Challenges", + "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Reviewed On", + "Admin.manage.header": "Create & Manage", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", - "Widgets.ChallengeOverviewWidget.title": "Overview", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Tasks", - "Widgets.ChallengeTasksWidget.title": "Tasks", - "Widgets.CommentsWidget.label": "Comments", - "Widgets.CommentsWidget.title": "Comments", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Leaderboard", - "Widgets.LeaderboardWidget.title": "Leaderboard", - "Widgets.ProjectAboutWidget.label": "About Projects", - "Widgets.ProjectAboutWidget.title": "About Projects", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Project List", - "Widgets.ProjectListWidget.title": "Projects", - "Widgets.ProjectListWidget.search.placeholder": "Search", - "Widgets.ProjectManagersWidget.label": "Project Managers", - "Admin.ProjectManagers.noManagers": "No Managers", - "Admin.ProjectManagers.addManager": "Add Project Manager", - "Admin.ProjectManagers.projectOwner": "Owner", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Overview", - "Widgets.ProjectOverviewWidget.title": "Overview", - "Widgets.RecentActivityWidget.label": "Recent Activity", - "Widgets.RecentActivityWidget.title": "Recent Activity", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Change Priority", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Export CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Priority", "AutosuggestTextBox.labels.noResults": "No matches", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", "BoundsSelectorModal.header": "Select Bounds", "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", - "BoundsSelectorModal.control.dismiss.label": "Select Bounds", - "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", - "Form.textUpload.readonly": "Existing file will be used", - "Form.controls.addPriorityRule.label": "Add a Rule", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BurndownChart.heading": "Tasks Remaining: {taskCount, number}", + "BurndownChart.tooltip": "Tasks Remaining", + "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Custom", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Clear Filters", + "Challenge.controls.loadMore.label": "More Results", + "Challenge.controls.save.label": "Save", + "Challenge.controls.start.label": "Start", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Any", + "Challenge.difficulty.easy": "Easy", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Difficulty", "Challenge.fields.lastTaskRefresh.label": "Tasks From", "Challenge.fields.viewLeaderboard.label": "View Leaderboard", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Anything", + "Challenge.keywords.buildings": "Buildings", + "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", + "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Anywhere", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Near Me", + "Challenge.location.withinMapBounds": "Within Map Bounds", + "Challenge.management.controls.manage.label": "Manage", + "Challenge.results.heading": "Challenges", + "Challenge.results.noResults": "No Results", + "Challenge.signIn.label": "Sign in to get started", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Newest", + "Challenge.sort.default": "Default", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Building", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Failed", + "Challenge.status.finished": "Finished", + "Challenge.status.none": "Not Applicable", + "Challenge.status.partiallyLoaded": "Partially Loaded", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Challenge", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Manage", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "Difficulty", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.viewLeaderboard.label": "View Leaderboard", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Manage", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "Contact Owner", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", "ChallengeFilterSubnav.filter.difficulty.label": "Difficulty", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", "ChallengeFilterSubnav.filter.location.label": "Location", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Clear Filters", - "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Save", - "Challenge.controls.start.label": "Start", - "Challenge.management.controls.manage.label": "Manage", - "Challenge.signIn.label": "Sign in to get started", - "Challenge.results.heading": "Challenges", - "Challenge.results.noResults": "No Results", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "More Results", + "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "Available", - "ChallengeProgress.tooltip.label": "Tasks", - "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Tasks", + "ChallengeProgressBorder.available": "Available", "CommentList.controls.viewTask.label": "View Task", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "Tasks Completed: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Cancel", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Continue", "CongratulateModal.header": "Congratulations!", "CongratulateModal.primaryMessage": "Challenge is complete", - "CongratulateModal.control.dismiss.label": "Continue", - "CountryName.ALL": "All Countries", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "United Arab Emirates", "CountryName.AF": "Afghanistan", - "CountryName.AO": "Angola", "CountryName.AL": "Albania", - "CountryName.AE": "United Arab Emirates", - "CountryName.AR": "Argentina", + "CountryName.ALL": "All Countries", "CountryName.AM": "Armenia", + "CountryName.AO": "Angola", "CountryName.AQ": "Antarctica", - "CountryName.TF": "French Southern Territories", - "CountryName.AU": "Australia", + "CountryName.AR": "Argentina", "CountryName.AT": "Austria", + "CountryName.AU": "Australia", "CountryName.AZ": "Azerbaijan", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosnia and Herzegovina", + "CountryName.BD": "Bangladesh", "CountryName.BE": "Belgium", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesh", "CountryName.BG": "Bulgaria", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bosnia and Herzegovina", - "CountryName.BY": "Belarus", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunei", "CountryName.BO": "Bolivia", "CountryName.BR": "Brazil", - "CountryName.BN": "Brunei", + "CountryName.BS": "Bahamas", "CountryName.BT": "Bhutan", "CountryName.BW": "Botswana", - "CountryName.CF": "Central African Republic", + "CountryName.BY": "Belarus", + "CountryName.BZ": "Belize", "CountryName.CA": "Canada", + "CountryName.CD": "Congo (Kinshasa)", + "CountryName.CF": "Central African Republic", + "CountryName.CG": "Congo (Brazzaville)", "CountryName.CH": "Switzerland", - "CountryName.CL": "Chile", - "CountryName.CN": "China", "CountryName.CI": "Ivory Coast", + "CountryName.CL": "Chile", "CountryName.CM": "Cameroon", - "CountryName.CD": "Congo (Kinshasa)", - "CountryName.CG": "Congo (Brazzaville)", + "CountryName.CN": "China", "CountryName.CO": "Colombia", "CountryName.CR": "Costa Rica", "CountryName.CU": "Cuba", @@ -424,10 +485,10 @@ "CountryName.DO": "Dominican Republic", "CountryName.DZ": "Algeria", "CountryName.EC": "Ecuador", + "CountryName.EE": "Estonia", "CountryName.EG": "Egypt", "CountryName.ER": "Eritrea", "CountryName.ES": "Spain", - "CountryName.EE": "Estonia", "CountryName.ET": "Ethiopia", "CountryName.FI": "Finland", "CountryName.FJ": "Fiji", @@ -437,57 +498,58 @@ "CountryName.GB": "United Kingdom", "CountryName.GE": "Georgia", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinea", + "CountryName.GL": "Greenland", "CountryName.GM": "Gambia", - "CountryName.GW": "Guinea Bissau", + "CountryName.GN": "Guinea", "CountryName.GQ": "Equatorial Guinea", "CountryName.GR": "Greece", - "CountryName.GL": "Greenland", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinea Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Croatia", "CountryName.HT": "Haiti", "CountryName.HU": "Hungary", "CountryName.ID": "Indonesia", - "CountryName.IN": "India", "CountryName.IE": "Ireland", - "CountryName.IR": "Iran", + "CountryName.IL": "Israel", + "CountryName.IN": "India", "CountryName.IQ": "Iraq", + "CountryName.IR": "Iran", "CountryName.IS": "Iceland", - "CountryName.IL": "Israel", "CountryName.IT": "Italy", "CountryName.JM": "Jamaica", "CountryName.JO": "Jordan", "CountryName.JP": "Japan", - "CountryName.KZ": "Kazakhstan", "CountryName.KE": "Kenya", "CountryName.KG": "Kyrgyzstan", "CountryName.KH": "Cambodia", + "CountryName.KP": "North Korea", "CountryName.KR": "South Korea", "CountryName.KW": "Kuwait", + "CountryName.KZ": "Kazakhstan", "CountryName.LA": "Laos", "CountryName.LB": "Lebanon", - "CountryName.LR": "Liberia", - "CountryName.LY": "Libya", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Liberia", "CountryName.LS": "Lesotho", "CountryName.LT": "Lithuania", "CountryName.LU": "Luxembourg", "CountryName.LV": "Latvia", + "CountryName.LY": "Libya", "CountryName.MA": "Morocco", "CountryName.MD": "Moldova", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagascar", - "CountryName.MX": "Mexico", "CountryName.MK": "Macedonia", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongolia", - "CountryName.MZ": "Mozambique", "CountryName.MR": "Mauritania", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexico", "CountryName.MY": "Malaysia", + "CountryName.MZ": "Mozambique", "CountryName.NA": "Namibia", "CountryName.NC": "New Caledonia", "CountryName.NE": "Niger", @@ -498,492 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "New Zealand", "CountryName.OM": "Oman", - "CountryName.PK": "Pakistan", "CountryName.PA": "Panama", "CountryName.PE": "Peru", - "CountryName.PH": "Philippines", "CountryName.PG": "Papua New Guinea", + "CountryName.PH": "Philippines", + "CountryName.PK": "Pakistan", "CountryName.PL": "Poland", "CountryName.PR": "Puerto Rico", - "CountryName.KP": "North Korea", + "CountryName.PS": "West Bank", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Qatar", "CountryName.RO": "Romania", + "CountryName.RS": "Serbia", "CountryName.RU": "Russia", "CountryName.RW": "Rwanda", "CountryName.SA": "Saudi Arabia", - "CountryName.SD": "Sudan", - "CountryName.SS": "South Sudan", - "CountryName.SN": "Senegal", "CountryName.SB": "Solomon Islands", + "CountryName.SD": "Sudan", + "CountryName.SE": "Sweden", + "CountryName.SI": "Slovenia", + "CountryName.SK": "Slovakia", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somalia", - "CountryName.RS": "Serbia", "CountryName.SR": "Suriname", - "CountryName.SK": "Slovakia", - "CountryName.SI": "Slovenia", - "CountryName.SE": "Sweden", - "CountryName.SZ": "Swaziland", + "CountryName.SS": "South Sudan", + "CountryName.SV": "El Salvador", "CountryName.SY": "Syria", + "CountryName.SZ": "Swaziland", "CountryName.TD": "Chad", + "CountryName.TF": "French Southern Territories", "CountryName.TG": "Togo", "CountryName.TH": "Thailand", "CountryName.TJ": "Tajikistan", - "CountryName.TM": "Turkmenistan", "CountryName.TL": "East Timor", - "CountryName.TT": "Trinidad and Tobago", + "CountryName.TM": "Turkmenistan", "CountryName.TN": "Tunisia", "CountryName.TR": "Turkey", + "CountryName.TT": "Trinidad and Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tanzania", - "CountryName.UG": "Uganda", "CountryName.UA": "Ukraine", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "United States", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Uzbekistan", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "West Bank", "CountryName.YE": "Yemen", "CountryName.ZA": "South Africa", "CountryName.ZM": "Zambia", "CountryName.ZW": "Zimbabwe", - "FitBoundsControl.tooltip": "Fit map to task features", - "LayerToggle.controls.showTaskFeatures.label": "Task Features", - "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(loading...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Edit in iD (web editor)", + "Editor.josm.label": "Edit in JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "Edit in new JOSM layer", + "Editor.level0.label": "Edit in Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Following.Activity.controls.loadMore.label": "Load More", - "StartFollowing.header": "Follow a User", - "StartFollowing.controls.follow.label": "Follow", - "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Followers.ViewFollowers.header": "Your Followers", - "Followers.ViewFollowers.indicator.following": "Following", - "Followers.ViewFollowers.blockedHeader": "Blocked Followers", - "Followers.controls.followBack.label": "Follow back", - "Followers.controls.block.label": "Block", - "Followers.controls.unblock.label": "Unblock", - "Followers.ViewFollowers.noFollowers": "Nobody is following you", - "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Unable to delete challenge.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Unable to delete task.", + "Errors.task.doesNotExist": "That task does not exist.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "No tasks remain in this challenge.", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Unable to fetch user data from server.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", + "Errors.user.notFound": "No user found with that username.", + "Errors.user.unauthenticated": "Please sign in to continue.", + "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Fit map to task features", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", "Following.ViewFollowing.header": "You are Following", - "Following.controls.stopFollowing.label": "Stop Following", "Following.ViewFollowing.notFollowing": "You're not following anyone", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Get Help", - "Footer.reportBug": "Report a Bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Follow Us", + "Following.controls.stopFollowing.label": "Stop Following", "Footer.email.placeholder": "Email Address", "Footer.email.submit.label": "Submit", + "Footer.followUs": "Follow Us", + "Footer.getHelp": "Get Help", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Report a Bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Add a Rule", + "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", + "Form.textUpload.readonly": "Existing file will be used", + "General.controls.moreResults.label": "More Results", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Create tasks for others to help improve map data.", "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", - "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Get Started", - "Admin.TaskInspect.controls.previousTask.label": "Prior Task", - "Admin.TaskInspect.controls.nextTask.label": "Next Task", - "Admin.TaskInspect.controls.editTask.label": "Edit Task", - "Admin.TaskInspect.controls.modifyTask.label": "Modify Task", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "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.editJosm": "Edit in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", + "KeyMapping.openEditor.editLevel0": "Edit in Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Not an Issue", + "KeyMapping.taskCompletion.fixed": "I fixed it!", + "KeyMapping.taskCompletion.skip": "Skip", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancel Editing", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Next Task", + "KeyMapping.taskInspect.prevTask": "Previous Task", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Add keyword", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "More Results", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(loading...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Leaderboard", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "Points", + "Leaderboard.user.topChallenges": "Top Challenges", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Sorry, MapRoulette does not currently support mobile devices.", "MobileNotSupported.pageMessage": "Sorry, this page is not yet compatible with mobile devices and smaller screens.", "MobileNotSupported.widenDisplay": "If using a computer, please widen your window or use a larger display.", - "Navbar.links.dashboard": "Dashboard", + "MobileTask.subheading.instructions": "Instructions", + "Navbar.links.admin": "Create & Manage", "Navbar.links.challengeResults": "Find Challenges", - "Navbar.links.leaderboard": "Leaderboard", + "Navbar.links.dashboard": "Dashboard", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Learn", "Navbar.links.inbox": "Inbox", + "Navbar.links.leaderboard": "Leaderboard", "Navbar.links.review": "Review", - "Navbar.links.admin": "Create & Manage", - "Navbar.links.help": "Learn", - "Navbar.links.userProfile": "User Settings", - "Navbar.links.userMetrics": "User Metrics", - "Navbar.links.teams": "Teams", - "Navbar.links.globalActivity": "Global Activity", "Navbar.links.signout": "Sign out", - "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "User Metrics", + "Navbar.links.userProfile": "User Settings", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "My Points", "PopularChallenges.header": "Popular Challenges", "PopularChallenges.none": "No Challenges", - "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", - "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", - "ProjectDetails.fields.created.label": "Created", - "ProjectDetails.fields.modified.label": "Modified", - "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", + "Profile.form.defaultBasemap.label": "Default Basemap", + "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.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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", + "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", + "Profile.form.locale.description": "User locale to use for MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", + "ProjectDetails.controls.goBack.label": "Go Back", + "ProjectDetails.controls.save.label": "Save", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", + "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.fields.modified.label": "Modified", + "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", - "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "Approve", - "Admin.TaskReview.controls.rejected": "Reject", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", - "Admin.TaskReview.controls.startReview": "Start Review", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Submit for Review Again", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "RebuildTasksControl.label": "Rebuild Tasks", + "RebuildTasksControl.modal.controls.cancel.label": "Cancel", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Proceed", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", + "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", + "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tracked Tasks", - "Task.unsave.control.tooltip": "Stop Tracking", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "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.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Copy", "SignIn.control.label": "Sign in", "SignIn.control.longLabel": "Sign in to get started", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Cancel", + "StepNavigation.controls.finish.label": "Finish", + "StepNavigation.controls.next.label": "Next", + "StepNavigation.controls.prev.label": "Prev", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Internal Id", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", + "Task.awaitingReview.label": "Task is awaiting review.", + "Task.comments.comment.controls.submit.label": "Submit", + "Task.controls.alreadyFixed.label": "Already fixed", + "Task.controls.alreadyFixed.tooltip": "Already fixed", + "Task.controls.cancelEditing.label": "Cancel Editing", + "Task.controls.completionComment.placeholder": "Your comment", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Contact Owner", + "Task.controls.edit.label": "Edit", + "Task.controls.edit.tooltip": "Edit", + "Task.controls.falsePositive.label": "Not an Issue", + "Task.controls.falsePositive.tooltip": "Not an Issue", + "Task.controls.fixed.label": "I fixed it!", + "Task.controls.fixed.tooltip": "I fixed it!", + "Task.controls.moreOptions.label": "More Options", + "Task.controls.next.label": "Next Task", + "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Next Task", + "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.label": "Revision Complete", + "Task.controls.revised.resubmit": "Resubmit for review", + "Task.controls.revised.tooltip": "Revision Complete", + "Task.controls.skip.label": "Skip", + "Task.controls.skip.tooltip": "Skip Task", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", + "Task.controls.track.label": "Track this Task", + "Task.controls.untrack.label": "Stop tracking this Task", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Available", + "Task.fields.completedBy.label": "Completed By", "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "Status", - "Task.fields.priority.label": "Priority", + "Task.fields.id.label": "Internal Id", "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Review Status", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", + "Task.fields.priority.label": "Priority", "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Review Status", "Task.fields.reviewedBy.label": "Reviewer", - "Admin.fields.reviewedAt.label": "Reviewed On", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Admin.TaskAnalysisTable.controls.editTask.label": "Edit", - "Admin.TaskAnalysisTable.controls.startTask.label": "Start", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Change status to", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Export CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Your comment", - "Task.comments.comment.controls.submit.label": "Submit", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Comments", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Next task:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "Task.fields.status.label": "Status", + "Task.loadByMethod.proximity": "Nearby", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "Modify", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Task marked as", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "High", + "Task.priority.low": "Low", + "Task.priority.medium": "Medium", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Already Fixed", + "Task.status.created": "Created", + "Task.status.deleted": "Deleted", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Not an Issue", + "Task.status.fixed": "Fixed", + "Task.status.skipped": "Skipped", + "Task.status.tooHard": "Too Hard", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "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.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Comments", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", "TaskConfirmationModal.cancel.label": "Cancel", - "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", "TaskConfirmationModal.invert.label": "invert", "TaskConfirmationModal.inverted.label": "inverted", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.loadBy.label": "Next task:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", "TaskConfirmationModal.osmComment.header": "OSM Change Comment", "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", "TaskConfirmationModal.reviewStatus.label": "Review Status:", "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", + "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Task marked as", - "Task.requestReview.label": "request review?", - "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "More Options", - "Task.controls.alreadyFixed.label": "Already fixed", - "Task.controls.alreadyFixed.tooltip": "Already fixed", - "Task.controls.cancelEditing.label": "Cancel Editing", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "I fixed it!", - "ActiveTask.controls.notFixed.label": "Too difficult / Couldn't see", - "ActiveTask.controls.aleadyFixed.label": "Already fixed", - "ActiveTask.controls.cancelEditing.label": "Go Back", - "Task.controls.edit.label": "Edit", - "Task.controls.edit.tooltip": "Edit", - "Task.controls.falsePositive.label": "Not an Issue", - "Task.controls.falsePositive.tooltip": "Not an Issue", - "Task.controls.fixed.label": "I fixed it!", - "Task.controls.fixed.tooltip": "I fixed it!", - "Task.controls.next.label": "Next Task", - "Task.controls.next.tooltip": "Next Task", - "Task.controls.next.loadBy.label": "Load Next:", - "Task.controls.nextNearby.label": "Select next nearby task", - "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", - "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", - "Task.controls.skip.label": "Skip", - "Task.controls.skip.tooltip": "Skip Task", - "Task.controls.tooHard.label": "Too hard / Can't see", - "Task.controls.tooHard.tooltip": "Too hard / Can't see", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Task Details", - "ActiveTask.controls.comments.tooltip": "View Comments", - "ActiveTask.subheading.comments": "Comments", - "ActiveTask.heading": "Challenge Information", - "ActiveTask.subheading.instructions": "Instructions", - "ActiveTask.subheading.location": "Location", - "ActiveTask.subheading.progress": "Challenge Progress", - "ActiveTask.subheading.social": "Share", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructions", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "Modify", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", - "Task.controls.track.label": "Track this Task", - "Task.controls.untrack.label": "Stop tracking this Task", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Existing Status", - "ActiveTask.controls.status.tooltip": "Existing Status", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Your Top Challenges", "TopUserChallenges.widget.label": "Your Top Challenges", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tracked Tasks", + "UserProfile.topChallenges.header": "Your Top Challenges", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Add Widget", - "Widgets.ActivityListingWidget.title": "Activity Listing", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "Challenges", + "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Widgets.ChallengeListWidget.title": "Challenges", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", + "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Overview", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", + "Widgets.ChallengeTasksWidget.label": "Tasks", + "Widgets.ChallengeTasksWidget.title": "Tasks", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Comments", + "Widgets.CommentsWidget.title": "Comments", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Challenge has no tasks", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", - "Widgets.FollowingWidget.label": "Follow", - "Widgets.FollowingWidget.header.following": "You are Following", - "Widgets.FollowingWidget.header.followers": "Your Followers", - "Widgets.FollowingWidget.header.activity": "Activity You're Following", - "Widgets.FollowingWidget.controls.following.label": "Following", - "Widgets.FollowersWidget.controls.followers.label": "Followers", "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Leaderboard", + "Widgets.LeaderboardWidget.title": "Leaderboard", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "About Projects", + "Widgets.ProjectAboutWidget.title": "About Projects", + "Widgets.ProjectListWidget.label": "Project List", + "Widgets.ProjectListWidget.search.placeholder": "Search", + "Widgets.ProjectListWidget.title": "Projects", + "Widgets.ProjectManagersWidget.label": "Project Managers", + "Widgets.ProjectOverviewWidget.label": "Overview", + "Widgets.ProjectOverviewWidget.title": "Overview", + "Widgets.RecentActivityWidget.label": "Recent Activity", + "Widgets.RecentActivityWidget.title": "Recent Activity", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", "Widgets.TagDiffWidget.label": "Cooperativees", "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -992,414 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "GlobalActivity.title": "Global Activity", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured Challenges", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", - "Inbox.followNotification.followed.lead": "You have a new follower!", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Inbox.notification.controls.viewTeams.label": "View Teams", - "Leaderboard.title": "Leaderboard", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### 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| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Points", - "Leaderboard.user.topChallenges": "Top Challenges", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Default Editor", - "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.defaultBasemap.label": "Default Basemap", - "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "User locale to use for MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", - "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", - "Profile.form.allowFollowing.label": "Allow Following", - "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Updated", - "Activity.action.created": "Created", - "Activity.action.deleted": "Deleted", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Project", - "Activity.item.challenge": "Challenge", - "Activity.item.task": "Task", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Custom", - "Challenge.difficulty.easy": "Easy", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Any", - "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", - "Challenge.keywords.buildings": "Buildings", - "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Anything", - "Challenge.location.nearMe": "Near Me", - "Challenge.location.withinMapBounds": "Within Map Bounds", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Anywhere", - "Challenge.status.none": "Not Applicable", - "Challenge.status.building": "Building", - "Challenge.status.failed": "Failed", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partially Loaded", - "Challenge.status.finished": "Finished", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Challenge", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Edit in iD (web editor)", - "Editor.josm.label": "Edit in JOSM", - "Editor.josmLayer.label": "Edit in new JOSM layer", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Edit in Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", - "Errors.user.unauthenticated": "Please sign in to continue.", - "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Unable to fetch user data from server.", - "Errors.user.notFound": "No user found with that username.", - "Errors.user.genericFollowFailure": "Failure{details}", - "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", - "Errors.task.none": "No tasks remain in this challenge.", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Unable to delete task.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "That task does not exist.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Unable to delete challenge.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Edit in Id", - "KeyMapping.openEditor.editJosm": "Edit in JOSM", - "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Edit in Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Cancel Editing", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Skip", - "KeyMapping.taskCompletion.falsePositive": "Not an Issue", - "KeyMapping.taskCompletion.fixed": "I fixed it!", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", - "KeyMapping.taskInspect.nextTask": "Next Task", - "KeyMapping.taskInspect.prevTask": "Previous Task", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Notification.type.team": "Team", - "Notification.type.follow": "Follow", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Newest", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Default", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Nearby", - "Task.priority.high": "High", - "Task.priority.medium": "Medium", - "Task.priority.low": "Low", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.nearby": "Nearby Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Created", - "Task.status.fixed": "Fixed", - "Task.status.falsePositive": "Not an Issue", - "Task.status.skipped": "Skipped", - "Task.status.deleted": "Deleted", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Already Fixed", - "Task.status.tooHard": "Too Hard", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Locale.uk.label": "uk (Ukrainian)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" +} diff --git a/src/lang/es.json b/src/lang/es.json index 8d65d638f..cd12725f1 100644 --- a/src/lang/es.json +++ b/src/lang/es.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Propaganda", "Admin.EditChallenge.form.blurb.description": "Una descripción muy breve de su desafío adecuada para espacios pequeños, como una ventana emergente de marcador de mapa. Este campo es compatible con Markdown.", "Admin.EditChallenge.form.instruction.label": "Instrucciones", - "Admin.EditChallenge.form.instruction.description": "La instrucción le dice a un mapeador cómo resolver una Tarea en su Desafío. Esto es lo que los mapeadores ven en el cuadro de Instrucciones cada vez que se carga una tarea, y es la información principal para el mapeador sobre cómo resolver la tarea, así que piense cuidadosamente en este campo. Puede incluir enlaces a la wiki de OSM o cualquier otro hipervínculo si lo desea, porque este campo admite Markdown. También puede hacer referencia a propiedades de características de su GeoJSON con etiquetas de llaves simples: por ejemplo, `\\{\\{address\\} \\}` se reemplazaría con el valor de la propiedad `address`, lo que permite la personalización básica de instrucciones para cada tarea. Este campo es requerido. {dummy}", + "Admin.EditChallenge.form.instruction.description": "La instrucción le dice a un mapeador cómo resolver una Tarea en su Desafío. Esto es lo que los mapeadores ven en el cuadro de Instrucciones cada vez que se carga una tarea, y es la información principal para el mapeador sobre cómo resolver la tarea, así que piense cuidadosamente en este campo. Puede incluir enlaces a la wiki de OSM o cualquier otro hipervínculo si lo desea, porque este campo admite Markdown. También puede hacer referencia a propiedades de características de su GeoJSON con etiquetas de llaves simples: por ejemplo, `'{{address}}'` se reemplazaría con el valor de la propiedad `address`, lo que permite la personalización básica de instrucciones para cada tarea. Este campo es requerido.", "Admin.EditChallenge.form.checkinComment.label": "Descripción del conjunto de cambios", "Admin.EditChallenge.form.checkinComment.description": "Comentario que se asociará con los cambios realizados por los usuarios en el editor", "Admin.EditChallenge.form.checkinSource.label": "Origen del conjunto de cambios", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Mapa base del desafío", "Admin.EditChallenge.form.defaultBasemap.description": "El mapa base predeterminado para usar para el desafío, anulando cualquier configuración de usuario que defina un mapa base predeterminado", "Admin.EditChallenge.form.customBasemap.label": "Mapa base personalizado", - "Admin.EditChallenge.form.customBasemap.description": "Inserte una URL de mapa base personalizada aquí. Por ejemplo, `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Inserte una URL de mapa base personalizada aquí. Por ejemplo, `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Propiedades para exportar en CSV", "Admin.EditChallenge.form.exportableProperties.description": "Cualquier propiedad incluida en esta lista separada por comas se exportará como una columna en la exportación CSV y se completará con la primera propiedad de función coincidente de cada tarea.", "Admin.EditChallenge.form.osmIdProperty.label": "Propiedad ID de OSM", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Mapa base predeterminado", "Profile.form.defaultBasemap.description": "Seleccione el mapa base predeterminado para mostrar en el mapa. Solo un mapa base de desafío predeterminado anulará la opción seleccionada aquí.", "Profile.form.customBasemap.label": "Mapa base personalizado", - "Profile.form.customBasemap.description": "Inserte un mapa base personalizado aquí. Por ejemplo `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Inserte un mapa base personalizado aquí. Por ejemplo `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Configuración regional", "Profile.form.locale.description": "Configuración regional de usuario para usar en la interfaz de usuario de MapRoulette.", "Profile.form.leaderboardOptOut.label": "Salirse de la tabla de clasificación", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Míos", "Dashboard.ProjectFilter.pinned.label": "Fijado" -} \ No newline at end of file +} diff --git a/src/lang/fa_IR.json b/src/lang/fa_IR.json index 0ebac1d64..c6b15ecd7 100644 --- a/src/lang/fa_IR.json +++ b/src/lang/fa_IR.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "شرح کوتاه", "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.", "Admin.EditChallenge.form.instruction.label": "دستورالعمل ها", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Default Basemap", "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "User locale to use for MapRoulette UI.", "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file +} diff --git a/src/lang/fr.json b/src/lang/fr.json index e4df16667..db47f09de 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Accroche", "Admin.EditChallenge.form.blurb.description": "Rédiger une petite acrroche pour le défi. (optionel)", "Admin.EditChallenge.form.instruction.label": "Instructions", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Description du groupe de modifications", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", "Admin.EditChallenge.form.checkinSource.label": "Source du Changeset", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Fond de carte du défi", "Admin.EditChallenge.form.defaultBasemap.description": "Fond de carte personnalisé qui sera utilisé pour le défi, il remplacera le fond de carte défini dans les personnalisation de l'utilisateur.", "Admin.EditChallenge.form.customBasemap.label": "Fond de carte personnalisé", - "Admin.EditChallenge.form.customBasemap.description": "Insérez l'URL d'un fond de carte personnalisé ici. Ex. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Insérez l'URL d'un fond de carte personnalisé ici. Ex. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Fond de carte par défaut", "Profile.form.defaultBasemap.description": "Sélectionnez le fond de carte par défaut à afficher. Un fond de carte provenant d'un défi peut remplacer cette préférence.", "Profile.form.customBasemap.label": "Fond de carte personnalisé", - "Profile.form.customBasemap.description": "Insérez une carte de base personnalisée ici. Exemple : `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png`", + "Profile.form.customBasemap.description": "Insérez une carte de base personnalisée ici. Exemple : `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Langue", "Profile.form.locale.description": "Langue de l'interface MapRoulette.", "Profile.form.leaderboardOptOut.label": "Ne pas apparaître dans le classement", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file +} diff --git a/src/lang/ja.json b/src/lang/ja.json index 8d9bf90dc..121ba9834 100644 --- a/src/lang/ja.json +++ b/src/lang/ja.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "短い説明", "Admin.EditChallenge.form.blurb.description": "マップのマーカーのポップアップのように小さいスペースに表示するのに適した、あなたのチャレンジのごく短い説明。この項目はマークダウン記法をサポートしています。", "Admin.EditChallenge.form.instruction.label": "手順", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "変更セットの説明", "Admin.EditChallenge.form.checkinComment.description": "エディタ内でユーザーが行った変更に伴うコメント", "Admin.EditChallenge.form.checkinSource.label": "変更セットのソース", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "チャレンジのベースマップ", "Admin.EditChallenge.form.defaultBasemap.description": "チャレンジで使うデフォルトのベースマップで、ユーザー定義のデフォルトを上書きします", "Admin.EditChallenge.form.customBasemap.label": "カスタム・ベースマップ", - "Admin.EditChallenge.form.customBasemap.description": "ここにカスタムベースマップのURLを記入. 例) `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "ここにカスタムベースマップのURLを記入. 例) `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "既定のベースマップ", "Profile.form.defaultBasemap.description": "マップ上に表示させる既定のベースマップを選んでください。既定のチャレンジ用ベースマップだけがここでの選択内容を上書きします。", "Profile.form.customBasemap.label": "カスタム・ベースマップ", - "Profile.form.customBasemap.description": "ここにカスタム・ベースマップを入力してください。例) `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "ここにカスタム・ベースマップを入力してください。例) `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "言語と地域", "Profile.form.locale.description": "MapRoulette UI用のユーザーの言語と地域。", "Profile.form.leaderboardOptOut.label": "リーダーボードのオプトアウト", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "表示", "Dashboard.ProjectFilter.owner.label": "所有", "Dashboard.ProjectFilter.pinned.label": "ピン留め" -} \ No newline at end of file +} diff --git a/src/lang/ko.json b/src/lang/ko.json index 348e5fa90..2560ba9f5 100644 --- a/src/lang/ko.json +++ b/src/lang/ko.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "짧은 설명", "Admin.EditChallenge.form.blurb.description": "지도에 띄우는 팝업 같은 작은 공간에 들어갈 짧은 설명입니다. 이 칸은 마크다운 문법을 지원합니다.", "Admin.EditChallenge.form.instruction.label": "지시", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "바뀜집합 설명", "Admin.EditChallenge.form.checkinComment.description": "편집 내역과 관련된 내용(편집기로 이동할 때 자동으로 적용)", "Admin.EditChallenge.form.checkinSource.label": "바뀜집합 출처", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "배경 지도", "Admin.EditChallenge.form.defaultBasemap.description": "도전에 적용될 기본 배경 지도입니다. 각 참여자들이 사용자 설정에서 지정한 기본 배경 지도보다 우선시됩니다.", "Admin.EditChallenge.form.customBasemap.label": "사용자 설정 배경 지도", - "Admin.EditChallenge.form.customBasemap.description": "URL을 입력해서 원하는 배경 지도를 삽입할 수 있습니다. 예시: `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "URL을 입력해서 원하는 배경 지도를 삽입할 수 있습니다. 예시: `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "기본 배경 지도", "Profile.form.defaultBasemap.description": "지도에 표시할 기본 배경 지도를 선택하세요. 도전에서 설정된 기본 배경 지도만 이 옵션(사용자 설정 배경 지도)보다 우선 순위가 높습니다.", "Profile.form.customBasemap.label": "사용자 지정 배경 지도", - "Profile.form.customBasemap.description": "여기에 원하는 배경 지도를 넣으세요. 예시: `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "여기에 원하는 배경 지도를 넣으세요. 예시: `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "언어", "Profile.form.locale.description": "MapRoulette UI에 적용할 언어를 선택하세요.", "Profile.form.leaderboardOptOut.label": "리더보드에 올리지 않기", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "공개", "Dashboard.ProjectFilter.owner.label": "소유함", "Dashboard.ProjectFilter.pinned.label": "고정됨" -} \ No newline at end of file +} diff --git a/src/lang/nl.json b/src/lang/nl.json index 5d2388a9b..2f953ea5b 100644 --- a/src/lang/nl.json +++ b/src/lang/nl.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Flaptekst", "Admin.EditChallenge.form.blurb.description": "Een korte omschrijving van de uitdaging die kan worden weergegeven in delen met weinig ruimte, zoals de kaart. In dit veld kan Markdown worden gebruikt.", "Admin.EditChallenge.form.instruction.label": "Instructies", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Omschrijving van de wijziging", "Admin.EditChallenge.form.checkinComment.description": "Opmerkingen die zullen worden geassocieerd met wijzigingen door deelnemers in de editor ", "Admin.EditChallenge.form.checkinSource.label": "Bron van de wijziging", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Basiskaart voor de uitdaging", "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.customBasemap.label": "Alternatieve basiskaart", - "Admin.EditChallenge.form.customBasemap.description": "Geef een URL op voor een alternatieve basiskaart. B.v. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {fictief}", + "Admin.EditChallenge.form.customBasemap.description": "Geef een URL op voor een alternatieve basiskaart. B.v. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Default Basemap", "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "User locale to use for MapRoulette UI.", "Profile.form.leaderboardOptOut.label": "Onzichtbaar zijn op het scorebord", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visible", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Pinned" -} \ No newline at end of file +} diff --git a/src/lang/pt_BR.json b/src/lang/pt_BR.json index b890de355..45dcf607c 100644 --- a/src/lang/pt_BR.json +++ b/src/lang/pt_BR.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Blurb", "Admin.EditChallenge.form.blurb.description": "Uma breve descrição do seu desafio adequado para pequenos espaços, como um marcador de mapa. Este campo suporta o Markdown.", "Admin.EditChallenge.form.instruction.label": "Instruções", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Descrição do changeset", "Admin.EditChallenge.form.checkinComment.description": "Comentário a ser associado a alterações feitas por usuários no editor", "Admin.EditChallenge.form.checkinSource.label": "Fonte do conjunto de alterações", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Mapa Base do Desafio", "Admin.EditChallenge.form.defaultBasemap.description": "O mapa base padrão a ser usado para o desafio, substituindo qualquer configuração de usuário que defina um mapa base padrão", "Admin.EditChallenge.form.customBasemap.label": "Basemap personalizado", - "Admin.EditChallenge.form.customBasemap.description": "Insira um URL do mapa base personalizado aqui. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Insira um URL do mapa base personalizado aqui. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Mapa Base Padrão", "Profile.form.defaultBasemap.description": "Selecione o mapa base padrão para exibir no mapa. Apenas um mapa base de desafio padrão substituirá a opção selecionada aqui.", "Profile.form.customBasemap.label": "Basemap personalizado", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "Localidade do usuário para usar na interface do usuário do MapRoulette.", "Profile.form.leaderboardOptOut.label": "Desativar o placar", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Visível", "Dashboard.ProjectFilter.owner.label": "proprietário", "Dashboard.ProjectFilter.pinned.label": "Preso" -} \ No newline at end of file +} diff --git a/src/lang/ru_RU.json b/src/lang/ru_RU.json index 10899bea8..cf33a6623 100644 --- a/src/lang/ru_RU.json +++ b/src/lang/ru_RU.json @@ -4,7 +4,7 @@ "BurndownChart.tooltip": "Задачи к выполнению", "CalendarHeatmap.heading": "Ежедневная статистика: Выполнение задач", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Опции", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Название челленджа", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Название Вызова", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Готово", "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Прогресс выполнения", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Видимый", @@ -16,14 +16,14 @@ "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Включить колонки со статусом", "ChallengeCard.totalTasks": "Всего задач", "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Начать челлендж", - "Admin.Challenge.controls.edit.label": "Редактировать челлендж", - "Admin.Challenge.controls.move.label": "Переместить челлендж", + "Admin.Challenge.controls.start.label": "Начать Вызов", + "Admin.Challenge.controls.edit.label": "Редактировать Вызов", + "Admin.Challenge.controls.move.label": "Переместить Вызов", "Admin.Challenge.controls.move.none": "Нет разрешенных проектов", - "Admin.Challenge.controls.clone.label": "Клонировать челлендж", - "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Удалить челлендж", - "Admin.ChallengeList.noChallenges": "Нет челленджей", + "Admin.Challenge.controls.clone.label": "Клонировать Вызов", + "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Копировать URL", + "Admin.Challenge.controls.delete.label": "Удалить Вызов", + "Admin.ChallengeList.noChallenges": "Нет Вызовов", "ChallengeProgressBorder.available": "Доступно", "CompletionRadar.heading": "Выполненные задачи: {taskCount, number}", "Admin.EditProject.unavailable": "Проект недоступен", @@ -36,7 +36,7 @@ "Admin.EditProject.form.displayName.label": "Отображаемое название", "Admin.EditProject.form.displayName.description": "Видимое название проекта", "Admin.EditProject.form.enabled.label": "Видимый", - "Admin.EditProject.form.enabled.description": "Если вы сделаете ваш проект видимым, то все челленджи проекта тоже станут видимыми и доступными, открытыми к изучению и обнаруженными в поиске другими пользователями. Фактически, отметка о видимости вашего проекта публикует любые челленджи этого проекта, которые также видимы. Вы все еще можете работать над своими собственными челленджами и делиться постоянными ссылками на челленджи, и это будет работать. Так, пока вы делаете ваш проект видимым, он становится тестовой площадкой для челленджей.", + "Admin.EditProject.form.enabled.description": "Если вы сделаете ваш проект видимым, то все Вызовы проекта тоже станут видимыми и доступными, открытыми к изучению и обнаруженными в поиске другими пользователями. Фактически, отметка о видимости вашего проекта публикует любые Вызовы этого проекта, которые также видимы. Вы все еще можете работать над своими собственными Вызовами и делиться постоянными ссылками на Вызовы, и это будет работать. Так, пока вы делаете ваш проект видимым, он становится тестовой площадкой для Вызовов.", "Admin.EditProject.form.featured.label": "Featured", "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", "Admin.EditProject.form.isVirtual.label": "Виртуальный", @@ -46,20 +46,20 @@ "Admin.InspectTask.header": "Inspect Tasks", "Admin.EditChallenge.edit.header": "Редактировать", "Admin.EditChallenge.clone.header": "Клонировать", - "Admin.EditChallenge.new.header": "Новый челлендж", + "Admin.EditChallenge.new.header": "Новый Вызов", "Admin.EditChallenge.lineNumber": "Line {line, number}:", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", "Admin.EditChallenge.form.step1.label": "Основные", "Admin.EditChallenge.form.visible.label": "Видимый", - "Admin.EditChallenge.form.visible.description": "Разрешить вашему челленджу быть видимым и доступным для других пользователей (в зависимости от видимости проекта). Если вы действительно не уверены в создании новых челленджей, мы рекомендуем сначала оставить для этого параметра значение Нет, особенно если родительский проект был сделан видимым. Если для видимости вашего челленджа выбрано значение «Да», то оно будет отображаться на домашней странице, в поиске челленджей и в метриках, но только если родительский проект также виден.", + "Admin.EditChallenge.form.visible.description": "Разрешить вашему Вызову быть видимым и доступным для других пользователей (в зависимости от видимости проекта). Если вы действительно не уверены в создании новых Вызовов, мы рекомендуем сначала оставить для этого параметра значение Нет, особенно если родительский проект был сделан видимым. Если для видимости вашего Вызова выбрано значение «Да», то оно будет отображаться на домашней странице, в поиске Вызовов и в метриках, но только если родительский проект также виден.", "Admin.EditChallenge.form.name.label": "Название", "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", "Admin.EditChallenge.form.description.label": "Описание", - "Admin.EditChallenge.form.description.description": "Основное, более длинное описание вашего челленджа, которое показывается пользователям когда они нажимают на челлендж чтобы побольше о нем узнать. Это поле поддерживает Markdown", + "Admin.EditChallenge.form.description.description": "Основное, более длинное описание вашего Вызова, которое показывается пользователям когда они нажимают на Вызов чтобы побольше о нем узнать. Это поле поддерживает Markdown", "Admin.EditChallenge.form.blurb.label": "Реклама", - "Admin.EditChallenge.form.blurb.description": "Очень краткое описание вашего челленджа, подходящее для небольших пространств, таких как всплывающее окно на карте. Это поле поддерживает Markdown.", + "Admin.EditChallenge.form.blurb.description": "Очень краткое описание вашего Вызова, подходящее для небольших пространств, таких как всплывающее окно на карте. Это поле поддерживает Markdown.", "Admin.EditChallenge.form.instruction.label": "Инструкции", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `\\{\\{address\\}\\}` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required. {dummy}", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", "Admin.EditChallenge.form.checkinComment.label": "Описание набора изменений", "Admin.EditChallenge.form.checkinComment.description": "Комментарии, связанные с изменениями пользователей в редакторе", "Admin.EditChallenge.form.checkinSource.label": "Источник набора изменений", @@ -68,16 +68,16 @@ "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Пропустить хэштег", "Admin.EditChallenge.form.includeCheckinHashtag.description": "Добавление хештэга в комментариях к правкам очень полезно для анализа пакета правок.", "Admin.EditChallenge.form.difficulty.label": "Сложность", - "Admin.EditChallenge.form.difficulty.description": "Выберите между Легким, Нормальным и Экспертным чтобы дать понять мапперам, какой уровень навыков требуется для решения задач в вашем челлендже. Легкие челленджи подходят для мапперов-новичков с небольшим опытом.", + "Admin.EditChallenge.form.difficulty.description": "Выберите между Легким, Нормальным и Экспертным чтобы дать понять мапперам, какой уровень навыков требуется для решения задач в вашем Вызове. Легкие Вызовы подходят для мапперов-новичков с небольшим опытом.", "Admin.EditChallenge.form.category.label": "Категория", - "Admin.EditChallenge.form.category.description": "Выбор подходящей категории высокого уровня для вашего челленджа может помочь пользователям быстро обнаружить челленджи, которые соответствуют их интересам. Выберите категорию «Другое», если ничего не подходит.", + "Admin.EditChallenge.form.category.description": "Выбор подходящей категории высокого уровня для вашего Вызова может помочь пользователям быстро обнаружить Вызовы, которые соответствуют их интересам. Выберите категорию «Другое», если ничего не подходит.", "Admin.EditChallenge.form.additionalKeywords.label": "Ключевые слова", - "Admin.EditChallenge.form.additionalKeywords.description": "При желании вы можете указать дополнительные ключевые слова, которые могут помочь вам в обнаружении вашего челленджа. Пользователи могут искать по ключевому слову из параметра «Другое» раскрывающегося фильтра «Категория» или в поле «Поиск», добавляя знак хеша (например, #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", + "Admin.EditChallenge.form.additionalKeywords.description": "При желании вы можете указать дополнительные ключевые слова, которые могут помочь вам в обнаружении вашего Вызова. Пользователи могут искать по ключевому слову из параметра «Другое» раскрывающегося фильтра «Категория» или в поле «Поиск», добавляя знак хеша (например, #tourism).", + "Admin.EditChallenge.form.preferredTags.label": "Предпочитаемые Теги", "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.", "Admin.EditChallenge.form.featured.label": "Рекомендованные", - "Admin.EditChallenge.form.featured.description": "Рекомендованные челленджи показываются сверху в поиске челленджей. Только супер-пользователи могут пометить челлендж рекомендованным.", - "Admin.EditChallenge.form.step2.label": "GeoJSON Source", + "Admin.EditChallenge.form.featured.description": "Рекомендованные Вызовы показываются сверху в поиске Вызовов. Только супер-пользователи могут пометить Вызов рекомендованным.", + "Admin.EditChallenge.form.step2.label": "Источник GeoJSON", "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", "Admin.EditChallenge.form.source.label": "Источник GeoJSON", "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", @@ -93,14 +93,14 @@ "Admin.EditChallenge.form.ignoreSourceErrors.label": "Игнорировать ошибки", "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", "Admin.EditChallenge.form.step3.label": "Приоритеты", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task's priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task's feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you've chosen to include in your GeoJSON). Tasks that don't pass any rules will be assigned the default priority.", + "Admin.EditChallenge.form.step3.description": "Приоритет заданий может быть определен как Высокий, Средний и Низкий. Все высокоприоритетные задания прделагаются пользователям первыми при работе с Вызовами, далее Средние по приоритету и наконец задания с низким приоритетом. Приоритет каждому заданию назначается автоматически на основе правил, уточненных вами ниже", "Admin.EditChallenge.form.defaultPriority.label": "Приоритет по умолчанию", - "Admin.EditChallenge.form.defaultPriority.description": "Приоритетный уровень по умолчанию для задач в этом челлендже", + "Admin.EditChallenge.form.defaultPriority.description": "Приоритетный уровень по умолчанию для задач в этом Вызове", "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", "Admin.EditChallenge.form.step4.label": "Дополнительно", - "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", + "Admin.EditChallenge.form.step4.description": "Дополнительная информация, которая может быть добавлена по желанию для улучшения картографирования согласно требованиям вызова", "Admin.EditChallenge.form.updateTasks.label": "Удалить устаревшие задачи", "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", "Admin.EditChallenge.form.defaultZoom.label": "Масштаб по умолчанию", @@ -109,10 +109,10 @@ "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", "Admin.EditChallenge.form.maxZoom.label": "Максимальный уровень масштабирования", "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Основа для челленджа", + "Admin.EditChallenge.form.defaultBasemap.label": "Основа для Вызова", "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "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.", "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", @@ -122,22 +122,22 @@ "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", "Admin.EditChallenge.form.customTaskStyles.button": "Configure", "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Сделано", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Челленджи", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.header": "Вызовы", + "Admin.ManageChallenges.help.info": "Вызовы состоят из множества заданий", "Admin.ManageChallenges.search.placeholder": "Название", "Admin.ManageChallenges.allProjectChallenge": "Все", "Admin.Challenge.fields.creationDate.label": "Создано:", "Admin.Challenge.fields.lastModifiedDate.label": "Изменено:", "Admin.Challenge.fields.status.label": "Статус:", "Admin.Challenge.fields.enabled.label": "Видимый:", - "Admin.Challenge.controls.startChallenge.label": "Начать челлендж", + "Admin.Challenge.controls.startChallenge.label": "Начать Вызов", "Admin.Challenge.activity.label": "Недавняя активность", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Удалить", "Admin.EditTask.edit.header": "Редактировать задачу", "Admin.EditTask.new.header": "Новая задача", "Admin.EditTask.form.formTitle": "Подробность задачи", @@ -165,9 +165,9 @@ "Admin.Project.fields.enabled.tooltip": "Включено", "Admin.Project.fields.disabled.tooltip": "Выключено", "Admin.ProjectCard.controls.editProject.tooltip": "Редактировать проект", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.controls.editProject.label": "Изменить Проект", + "Admin.ProjectCard.controls.pinProject.label": "Прикрепить Проект", + "Admin.ProjectCard.controls.unpinProject.label": "Открепить Проект", "Admin.Project.controls.addChallenge.label": "Добавить челлендж", "Admin.Project.controls.manageChallengeList.label": "Управлять списком челленджей", "Admin.Project.headers.challengePreview": "Challenge Matches", @@ -183,8 +183,8 @@ "Admin.Project.controls.visible.label": "Visible:", "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", + "ProjectPickerModal.chooseProject": "Выбрать Проект", + "ProjectPickerModal.noProjects": "Не найдено проектов", "Admin.ProjectsDashboard.newProject": "Добавить проект", "Admin.ProjectsDashboard.help.info": "Проекты служат средством объединения связанных челленджей. Все челленджи должны принадлежать проекту.", "Admin.ProjectsDashboard.search.placeholder": "Название проекта или челленджа", @@ -209,9 +209,9 @@ "Admin.TaskDeletingProgress.deletingTasks.header": "Удаление задач", "Admin.TaskDeletingProgress.tasksDeleting.label": "удаленные задачи", "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", - "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", + "Admin.TaskPropertyStyleRules.deleteRule": "Удалить Правило", + "Admin.TaskPropertyStyleRules.addRule": "Добавить другое Правило", + "Admin.TaskPropertyStyleRules.addNewStyle.label": "Добавить", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", @@ -238,7 +238,7 @@ "Admin.VirtualProject.controls.done.label": "Готово", "Admin.VirtualProject.controls.addChallenge.label": "Добавить челлендж", "Admin.VirtualProject.ChallengeList.noChallenges": "Нет челленджей", - "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", + "Admin.VirtualProject.ChallengeList.search.placeholder": "Поиск", "Admin.VirtualProject.currentChallenges.label": "Challenges in", "Admin.VirtualProject.findChallenges.label": "Найти челленджи", "Admin.VirtualProject.controls.add.label": "Добавить", @@ -260,7 +260,7 @@ "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", "Widgets.ChallengeOverviewWidget.fields.status.label": "Статус:", "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Видимый:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Ключевые слова:", "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", "Widgets.ChallengeTasksWidget.label": "Задачи", "Widgets.ChallengeTasksWidget.title": "Задачи", @@ -283,10 +283,10 @@ "Admin.ProjectManagers.controls.removeManager.confirmation": "Вы уверены, что хотите удалить этого менеджера из проекта?", "Admin.ProjectManagers.controls.selectRole.choose.label": "Выбрать роль", "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "логин в OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Название команды", + "Admin.ProjectManagers.options.teams.label": "Команда", + "Admin.ProjectManagers.options.users.label": "Пользователь", + "Admin.ProjectManagers.team.indicator": "Команда", "Widgets.ProjectOverviewWidget.label": "Обзор", "Widgets.ProjectOverviewWidget.title": "Обзор", "Widgets.RecentActivityWidget.label": "Недавняя активность", @@ -303,9 +303,9 @@ "Challenge.fields.lastTaskRefresh.label": "Задачи от", "Challenge.fields.viewLeaderboard.label": "Показать рейтинг", "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", + "Project.fields.viewLeaderboard.label": "Показать Рейтинг", + "Project.indicator.label": "Проект", + "ChallengeDetails.controls.goBack.label": "Вернуться", "ChallengeDetails.controls.start.label": "Начать", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", @@ -327,7 +327,7 @@ "ChallengeFilterSubnav.filter.difficulty.label": "Сложность", "ChallengeFilterSubnav.filter.keyword.label": "Work on", "ChallengeFilterSubnav.filter.location.label": "Локация", - "ChallengeFilterSubnav.filter.search.label": "Search by name", + "ChallengeFilterSubnav.filter.search.label": "Искать по названию", "Challenge.controls.clearFilters.label": "Сбросить фильтры", "ChallengeFilterSubnav.controls.sortBy.label": "Сортировать по", "ChallengeFilterSubnav.filter.keywords.otherLabel": "Другое:", @@ -343,26 +343,26 @@ "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "Challenge.controls.loadMore.label": "Больше результатов", - "ChallengePane.controls.startChallenge.label": "Start Challenge", + "ChallengePane.controls.startChallenge.label": "Начать Вызов", "Task.fauxStatus.available": "Доступный", "ChallengeProgress.tooltip.label": "Задачи", "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", "ChallengeProgress.tasks.totalCount": "из {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.priority.toggle": "Показать по Приоритету Заданий", "ChallengeProgress.priority.label": "{priority} Priority Tasks", "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", "CommentList.controls.viewTask.label": "Показать задачу", - "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", - "ConfigureColumnsModal.availableColumns.header": "Available Columns", + "CommentList.noComments.label": "Нет комментариев", + "ConfigureColumnsModal.header": "Выбрать колонки для показа", + "ConfigureColumnsModal.availableColumns.header": "Доступные колонки", "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", - "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", - "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.add": "Добавить", + "ConfigureColumnsModal.controls.remove": "Удалить", + "ConfigureColumnsModal.controls.done.label": "Сделано", + "ConfirmAction.title": "Вы уверены?", + "ConfirmAction.prompt": "Действие необратимо", "ConfirmAction.cancel": "Отмена", "ConfirmAction.proceed": "Proceed", "CongratulateModal.header": "Поздравляем!", @@ -546,20 +546,20 @@ "LayerToggle.controls.showTaskFeatures.label": "Особенности задачи", "LayerToggle.controls.showOSMData.label": "OSM данные", "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.more.label": "Больше", "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", "LayerToggle.loading": "(загрузка ...)", "PropertyList.title": "Properties", "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", - "EnhancedMap.SearchControl.noResults": "No Results", + "EnhancedMap.SearchControl.searchLabel": "Поиск", + "EnhancedMap.SearchControl.noResults": "Ничего не найдено", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", - "ErrorModal.title": "Oops!", + "ErrorModal.title": "Упс!", "FeaturedChallenges.header": "Challenge Highlights", "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.projectIndicator.label": "Проект", + "FeaturedChallenges.browse": "Исследовать", "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", "FeatureStyleLegend.comparators.contains.label": "contains", "FeatureStyleLegend.comparators.missing.label": "missing", @@ -588,8 +588,8 @@ "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Добавить ключевые слова", "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", - "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", - "KeywordAutosuggestInput.controls.search.placeholder": "Search", + "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Выбрать Теги", + "KeywordAutosuggestInput.controls.search.placeholder": "Поиск", "General.controls.moreResults.label": "Больше результатов", "MobileNotSupported.header": "Пожалуйста, зайдите со своего компьютера", "MobileNotSupported.message": "Извините, MapRoulette пока не поддерживается на мобильных устройствах.", @@ -608,25 +608,25 @@ "PageNotFound.message": "Упс! Страница, которую вы ищете, недоступна.", "PageNotFound.homePage": "Домой", "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.currentMonth.selectOption": "Текущий месяц", "PastDurationSelector.allTime.selectOption": "Всё время ", "PastDurationSelector.customRange.selectOption": "Custom", - "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.startDate": "Дата начала", + "PastDurationSelector.customRange.endDate": "Дата окончания", + "PastDurationSelector.customRange.controls.search.label": "Поиск", "PointsTicker.label": "Мои очки", "PopularChallenges.header": "Популярные челленджи", - "PopularChallenges.none": "No Challenges", - "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", - "ProjectDetails.controls.save.label": "Save", + "PopularChallenges.none": "Нет Вызовов", + "ProjectDetails.controls.goBack.label": "Вернуться", + "ProjectDetails.controls.unsave.label": "Не сохранять", + "ProjectDetails.controls.save.label": "Сохранить", "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", + "ProjectDetails.management.controls.start.label": "Начать", "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", "ProjectDetails.fields.featured.label": "Featured", - "ProjectDetails.fields.created.label": "Created", - "ProjectDetails.fields.modified.label": "Modified", - "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", + "ProjectDetails.fields.created.label": "Создано", + "ProjectDetails.fields.modified.label": "Изменено", + "ProjectDetails.fields.viewLeaderboard.label": "Показать Рейтинг", "ProjectDetails.fields.viewReviews.label": "Review", "QuickWidget.failedToLoad": "Widget Failed", "Admin.TaskReview.controls.updateReviewStatusTask.label": "Обновить статус проверки", @@ -644,41 +644,41 @@ "Admin.TaskReview.controls.startReview": "Начать проверку", "Admin.TaskReview.controls.skipReview": "Skip Review", "Admin.TaskReview.controls.resubmit": "Запросить проверку снова", - "ReviewTaskPane.indicators.locked.label": "Task locked", - "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Задание заблокировано", + "ReviewTaskPane.controls.unlock.label": "Разблокировать", "RolePicker.chooseRole.label": "Choose Role", "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", - "SavedChallenges.widget.noChallenges": "No Challenges", - "SavedChallenges.widget.startChallenge": "Start Challenge", + "SavedChallenges.widget.noChallenges": "Нет Вызовов", + "SavedChallenges.widget.startChallenge": "Начать Вызов", "UserProfile.savedTasks.header": "Отслеживаемые задачи", "Task.unsave.control.tooltip": "Остановить отслеживание", - "SavedTasks.widget.noTasks": "No Tasks", - "SavedTasks.widget.viewTask": "View Task", + "SavedTasks.widget.noTasks": "Нет Заданий", + "SavedTasks.widget.viewTask": "Показать Задание", "ScreenTooNarrow.header": "Пожалуйста, раскройте полностью окно вашего браузера", "ScreenTooNarrow.message": "Эта страница не совместима с небольшими экранами. Пожалуйста, раскройте полностью окно браузера или переключитесь на более крупное устройство или экран.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Проекты", + "ChallengeFilterSubnav.query.searchType.challenge": "Вызовы", "ShareLink.controls.copy.label": "Копировать", "SignIn.control.label": "Войти", "SignIn.control.longLabel": "Войти, чтобы начать", "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.current.label": "Текущий", "TagDiffVisualization.proposed.label": "Proposed", "TagDiffVisualization.noChanges": "No Tag Changes", "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "TagDiffVisualization.controls.tagList.tooltip": "Показать как список тегов", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", - "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", + "TagDiffVisualization.controls.editTags.tooltip": "Изменить теги", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", + "TagDiffVisualization.controls.addTag.label": "Добавить Тег", + "TagDiffVisualization.controls.deleteTag.tooltip": "Удалить тег", + "TagDiffVisualization.controls.saveEdits.label": "Сделано", + "TagDiffVisualization.controls.cancelEdits.label": "Отменить", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", - "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", + "TagDiffVisualization.controls.tagName.placeholder": "Название Тега", "Admin.TaskAnalysisTable.columnHeaders.actions": "Действия", "TasksTable.invert.abel": "invert", "TasksTable.inverted.label": "inverted", @@ -695,17 +695,17 @@ "Admin.fields.reviewedAt.label": "На проверке", "Admin.fields.reviewDuration.label": "Review Time", "Admin.TaskAnalysisTable.columnHeaders.comments": "Комментарии", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Теги", "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", "Admin.TaskAnalysisTable.controls.reviewTask.label": "Проверить", "Admin.TaskAnalysisTable.controls.editTask.label": "Редактировать", "Admin.TaskAnalysisTable.controls.startTask.label": "Начать", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Выбрать задания", "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.manageTasks.controls.changeStatusTo.label": "Изменить статус на", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", + "Admin.manageTasks.controls.chooseStatus.label": "Выбрать ...", "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", "Admin.manageTasks.controls.hideReviewColumns.label": "Спрятать колонки проверки", @@ -719,10 +719,10 @@ "ReviewMap.metrics.title": "Карта проверок", "TaskClusterMap.controls.clusterTasks.label": "Cluster", "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.nearMe.label": "Рядом со мной", + "TaskClusterMap.message.or.label": "или", "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.moveMapToRefresh.label": "Нажать для показа заданий", "Task.controls.completionComment.placeholder": "Ваш комментарий", "Task.comments.comment.controls.submit.label": "Подтвердить", "Task.controls.completionComment.write.label": "Write", @@ -747,13 +747,13 @@ "TaskConfirmationModal.nextNearby.label": "Выберите ваше следующее ближайшее задание (необязательно)", "TaskConfirmationModal.addTags.placeholder": "Добавить MR-теги", "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskConfirmationModal.done.label": "Сделано", + "TaskConfirmationModal.useChallenge.label": "Использовать текущий Вызов", "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.status.label": "Статус:", + "TaskConfirmationModal.priority.label": "Приоритет:", + "TaskConfirmationModal.challenge.label": "Вызов:", + "TaskConfirmationModal.mapper.label": "Маппер:", "TaskPropertyFilter.label": "Filter By Property", "TaskPriorityFilter.label": "Filter by Priority", "TaskStatusFilter.label": "Filter by Status", @@ -762,9 +762,9 @@ "TaskHistory.controls.viewAttic.label": "View Attic", "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.confirm.label": "Да", + "CooperativeWorkControls.controls.reject.label": "Нет", + "CooperativeWorkControls.controls.moreOptions.label": "Другое", "Task.markedAs.label": "Задачи, помеченные как", "Task.requestReview.label": "запросить проверку?", "Task.awaitingReview.label": "Задача ожидает проверки.", @@ -787,8 +787,8 @@ "Task.controls.fixed.tooltip": "Я исправил это!", "Task.controls.next.label": "Следующая задача", "Task.controls.next.tooltip": "Следующая задача", - "Task.controls.next.loadBy.label": "Load Next:", - "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.next.loadBy.label": "Загрузить Следующее:", + "Task.controls.nextNearby.label": "Выбрать следующее ближайшее задание", "Task.controls.revised.label": "Revision Complete", "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", @@ -808,28 +808,28 @@ "ActiveTask.subheading.progress": "Прогресс челленджа", "ActiveTask.subheading.social": "Поделиться", "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.locked.label": "Задание заблокировано", "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.controls.unlock.label": "Разблокировать", "Task.pane.controls.tryLock.label": "Try locking", "Task.pane.controls.preview.label": "Preview Task", "Task.pane.controls.browseChallenge.label": "Browse Challenge", "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.pane.lockFailedDialog.title": "Невозможно заблокировать Задание", "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.saveChanges.label": "Сохранить изменения", "MobileTask.subheading.instructions": "Инструкции", "Task.management.heading": "Настройки управления", "Task.management.controls.inspect.label": "Inspect", "Task.management.controls.modify.label": "Изменить", "Widgets.TaskNearbyMap.currentTaskTooltip": "Текущая задача", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "Нет доступных ближайших заданий.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Приоритет:", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Статус:", "Challenge.controls.taskLoadBy.label": "Load tasks by:", "Task.controls.track.label": "Отслеживать эту задачу", "Task.controls.untrack.label": "Остановить отслеживание этой задачи", - "TaskPropertyQueryBuilder.controls.search": "Search", + "TaskPropertyQueryBuilder.controls.search": "Поиск", "TaskPropertyQueryBuilder.controls.clear": "Clear", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", "TaskPropertyQueryBuilder.options.none.label": "None", @@ -856,37 +856,37 @@ "Task.taskTags.modify.label": "Изменить MR-теги", "Task.taskTags.addTags.placeholder": "Добавить MR-теги", "Taxonomy.indicators.newest.label": "Newest", - "Taxonomy.indicators.popular.label": "Popular", + "Taxonomy.indicators.popular.label": "Популярные", "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", "Taxonomy.indicators.cooperative.label": "Cooperative", "AddTeamMember.controls.chooseRole.label": "Choose Role", "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", + "Team.name.label": "Название", "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", - "Team.controls.cancel.label": "Cancel", - "Team.member.controls.acceptInvite.label": "Join Team", + "Team.description.label": "Описание", + "Team.description.description": "Краткое описание команды", + "Team.controls.save.label": "Сохранить", + "Team.controls.cancel.label": "Отменить", + "Team.member.controls.acceptInvite.label": "Присоединиться к Команде", "Team.member.controls.declineInvite.label": "Decline Invite", - "Team.member.controls.delete.label": "Remove User", - "Team.member.controls.leave.label": "Leave Team", + "Team.member.controls.delete.label": "Удалить Пользователя", + "Team.member.controls.leave.label": "Покинуть Команду", "Team.members.indicator.you.label": "(you)", - "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", + "Team.noTeams": "Вы не состоите ни в одной команде", + "Team.controls.view.label": "Показать Команду", + "Team.controls.edit.label": "Изменить Команду", + "Team.controls.delete.label": "Удалить Команду", + "Team.controls.acceptInvite.label": "Присоединиться к Команде", "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", + "Team.controls.leave.label": "Покинуть Команду", + "Team.activeMembers.header": "Активные Участники", "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", + "Team.addMembers.header": "Пригласить нового участника", "UserProfile.topChallenges.header": "Ваш топ челленджей", "TopUserChallenges.widget.label": "Ваш топ челленджей", - "TopUserChallenges.widget.noChallenges": "No Challenges", + "TopUserChallenges.widget.noChallenges": "Нет Вызовов", "UserEditorSelector.currentEditor.label": "Текущий редактор:", "ActiveTask.indicators.virtualChallenge.tooltip": "Виртуальный челлендж", "WidgetPicker.menuLabel": "Добавить виджет", @@ -908,21 +908,21 @@ "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", - "Widgets.SnapshotProgressWidget.done.label": "Done", - "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", + "Widgets.SnapshotProgressWidget.done.label": "Сделано", + "Widgets.SnapshotProgressWidget.exportCSV.label": "Экспорт CSV", "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", "Widgets.TagDiffWidget.label": "Cooperativees", "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Показать все Теги", "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Статус:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Приоритет:", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Выбрано", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", @@ -937,7 +937,7 @@ "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.cancelSelection": "Отменить выделение", "Widgets.TaskHistoryWidget.label": "История задач", "Widgets.TaskHistoryWidget.title": "История", "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", @@ -959,12 +959,12 @@ "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Статус задачи", "Widgets.TaskStatusWidget.title": "Статус задачи", - "Widgets.TeamsWidget.label": "Teams", - "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.label": "Команды", + "Widgets.TeamsWidget.myTeamsTitle": "Мои Команды", + "Widgets.TeamsWidget.editTeamTitle": "Изменить Команду", + "Widgets.TeamsWidget.createTeamTitle": "Создать новую Команду", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.controls.myTeams.label": "Мои Команды", "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", "WidgetWorkspace.controls.editConfiguration.label": "Изменить макет", "WidgetWorkspace.controls.saveConfiguration.label": "Сохранить изменения", @@ -984,8 +984,8 @@ "WidgetWorkspace.importModal.controls.upload.label": "Нажмите для загрузки файла", "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", "Dashboard.header": "Личный кабинет", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.welcomeBack": "Добро пожаловать обратно, {username}!", + "Dashboard.header.completionPrompt": "Вы закончили", "Dashboard.header.completedTasks": "{completedTasks, number} tasks", "Dashboard.header.pointsPrompt": ", earned", "Dashboard.header.userScore": "{points, number} points", @@ -993,18 +993,18 @@ "Dashboard.header.globalRank": "ranked #{rank, number}", "Dashboard.header.globally": "globally.", "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.getStarted": "Накопите баллы, выполняя Задания Вызовов!", "Dashboard.header.jumpBackIn": "Jump back in!", "Dashboard.header.resume": "Resume your last challenge", "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.find": "Или найти", + "Dashboard.header.somethingNew": "что-то новое", + "Dashboard.header.controls.findChallenge.label": "Найти новые Вызовы", "Home.Featured.browse": "Explore", "Home.Featured.header": "Featured", "Inbox.header": "Уведомления", "Inbox.controls.refreshNotifications.label": "Обновить", - "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.groupByTask.label": "Группировка по Заданиям", "Inbox.controls.manageSubscriptions.label": "Управление подписками", "Inbox.controls.markSelectedRead.label": "Отметить как прочитанное", "Inbox.controls.deleteSelected.label": "Удалить", @@ -1060,7 +1060,7 @@ "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", "Profile.page.title": "User Settings", - "Profile.settings.header": "General", + "Profile.settings.header": "Общее", "Profile.noUser": "Пользователь не найден или у вас недостаточно прав его видеть.", "Profile.userSince": "Пользователь с:", "Profile.form.defaultEditor.label": "Редактор по умолчанию", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Основа по умолчанию", "Profile.form.defaultBasemap.description": "Выбрать основу для отображения по умолчанию. Установленная по умолчанию основа челленджа не будет меняться на выбранную вами.", "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Locale", "Profile.form.locale.description": "User locale to use for MapRoulette UI.", "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", @@ -1104,9 +1104,9 @@ "ReviewStatus.metrics.falsePositive": "НЕ ТРЕБУЕТ ПРАВОК", "ReviewStatus.metrics.alreadyFixed": "УЖЕ ИСПРАВЛЕНО", "ReviewStatus.metrics.tooHard": "СЛИШКОМ СЛОЖНО", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.priority.toggle": "Показать Задания по Приоритету", "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.byTaskStatus.toggle": "Показать Задания по Статусу", "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", "ReviewStatus.metrics.averageTime.label": "Avg time per review:", "Review.TaskAnalysisTable.noTasks": "Не найдено задач", @@ -1125,12 +1125,12 @@ "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", "Review.TaskAnalysisTable.columnHeaders.actions": "Действия", "Review.TaskAnalysisTable.columnHeaders.comments": "Комментарии", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.mapperControls.label": "Действия", + "Review.TaskAnalysisTable.reviewerControls.label": "Действия", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Действия", "Review.Task.fields.id.label": "Внутренний идентификатор", "Review.fields.status.label": "Статус", - "Review.fields.priority.label": "Priority", + "Review.fields.priority.label": "Приоритет", "Review.fields.reviewStatus.label": "Статус проверки", "Review.fields.requestedBy.label": "Маппер", "Review.fields.reviewedBy.label": "Проверяющий", @@ -1143,16 +1143,16 @@ "Review.TaskAnalysisTable.controls.fixTask.label": "Внести правки", "Review.fields.challenge.label": "Челлендж", "Review.fields.project.label": "Проект", - "Review.fields.tags.label": "Tags", + "Review.fields.tags.label": "Теги", "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", + "Review.tableFilter.viewAllTasks": "Показать все задания", + "Review.tablefilter.chooseFilter": "Выбрать проект или вызов", "Review.tableFilter.reviewByProject": "Review by project", "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Review.tableFilter.reviewByAllChallenges": "Все Вызовы", + "Review.tableFilter.reviewByAllProjects": "Все Проекты", + "Pages.SignIn.modal.title": "Добро пожаловать обратно!", + "Pages.SignIn.modal.prompt": "Пожалуйста, войдите чтобы продолжить", "Activity.action.updated": "Обновлено", "Activity.action.created": "Создано", "Activity.action.deleted": "Удалено", @@ -1168,7 +1168,7 @@ "Activity.item.survey": "Survey", "Activity.item.user": "Пользователь", "Activity.item.group": "Группа", - "Activity.item.virtualChallenge": "Virtual Challenge", + "Activity.item.virtualChallenge": "Виртуальный Вызов", "Activity.item.bundle": "Bundle", "Activity.item.grant": "Grant", "Challenge.basemap.none": "None", @@ -1311,8 +1311,8 @@ "Task.property.searchType.contains": "contains", "Task.property.searchType.exists": "exists", "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", + "Task.property.operationType.and": "и", + "Task.property.operationType.or": "или", "Task.reviewStatus.needed": "Запрошенная проверка", "Task.reviewStatus.approved": "Одобрено", "Task.reviewStatus.rejected": "Нуждается в пересмотре", @@ -1331,11 +1331,11 @@ "Task.status.disabled": "Disabled", "Task.status.alreadyFixed": "Уже исправлено", "Task.status.tooHard": "Слишком сложно", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", + "Team.Status.member": "Участник", + "Team.Status.invited": "Приглашенный", "Locale.en-US.label": "en-US (U.S. English)", "Locale.es.label": "es (Испанский)", - "Locale.de.label": "de (Deutsch)", + "Locale.de.label": "нем (Немецкий)", "Locale.fr.label": "fr (Французский)", "Locale.af.label": "af (Африкаанс)", "Locale.ja.label": "ja (Японский)", @@ -1344,10 +1344,10 @@ "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", "Locale.fa-IR.label": "fa-IR (Persian - Iran)", "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.ru-RU.label": "рус-РУС (Русский-Россия)", "Dashboard.ChallengeFilter.visible.label": "Видимый", "Dashboard.ChallengeFilter.pinned.label": "Закрепленный", "Dashboard.ProjectFilter.visible.label": "Видимый", "Dashboard.ProjectFilter.owner.label": "Owned", "Dashboard.ProjectFilter.pinned.label": "Закрепленный" -} \ No newline at end of file +} diff --git a/src/lang/uk.json b/src/lang/uk.json index ef56f0a69..f355e13c9 100644 --- a/src/lang/uk.json +++ b/src/lang/uk.json @@ -59,7 +59,7 @@ "Admin.EditChallenge.form.blurb.label": "Скорочений опис", "Admin.EditChallenge.form.blurb.description": "Стислий опис виклику, придатний для розміщення там, де бракує достатньо місця, це можуть бути вигулькуючі вікна маркерів й таке інше. Це поле підтримує форматування Markdown.", "Admin.EditChallenge.form.instruction.label": "Інструкції", - "Admin.EditChallenge.form.instruction.description": "Інструкції розповідають маперу, що потрібно зробити для розв’язання Завдання у вашому Виклику. Це те що бачить мапер у вікні кожного завдання. Вони є основним джерелом інформації для мапера щодо розв’язання проблеми, тож подумайте ретельно про їх вміст. Ви можете додати посилання на сторінки Вікі OSM або ж будь-які інші гіперпосилання за потреби, скориставшись форматуванням Markdown. Ви також можете посилатись на властивості об’єктів з GeoJSON користуючись наступним синтаксисом: `\\{\\{address\\}\\}`, де ця частина буде замінена на значення властивості `address`, що дозволяє базову адаптацію інструкцій під кожне окреме завдання. Це поле є обов’язковим. {dummy}", + "Admin.EditChallenge.form.instruction.description": "Інструкції розповідають маперу, що потрібно зробити для розв’язання Завдання у вашому Виклику. Це те що бачить мапер у вікні кожного завдання. Вони є основним джерелом інформації для мапера щодо розв’язання проблеми, тож подумайте ретельно про їх вміст. Ви можете додати посилання на сторінки Вікі OSM або ж будь-які інші гіперпосилання за потреби, скориставшись форматуванням Markdown. Ви також можете посилатись на властивості об’єктів з GeoJSON користуючись наступним синтаксисом: `'{{address}}'`, де ця частина буде замінена на значення властивості `address`, що дозволяє базову адаптацію інструкцій під кожне окреме завдання. Це поле є обов’язковим.", "Admin.EditChallenge.form.checkinComment.label": "Опис набору змін", "Admin.EditChallenge.form.checkinComment.description": "Коментар, який буде доданий до пов’язаного набору змін в редакторі під час надсилання даних на сервер", "Admin.EditChallenge.form.checkinSource.label": "Джерело даних", @@ -112,7 +112,7 @@ "Admin.EditChallenge.form.defaultBasemap.label": "Фонова мапа Виклику", "Admin.EditChallenge.form.defaultBasemap.description": "Типовий фон, що використовується для Виклику, має перевагу над налаштуваннями користувача щодо використання типового фону.", "Admin.EditChallenge.form.customBasemap.label": "Власний фон", - "Admin.EditChallenge.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Admin.EditChallenge.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Admin.EditChallenge.form.exportableProperties.label": "Властивості для експорту в CSV", "Admin.EditChallenge.form.exportableProperties.description": "Властивості розділені комою з цього переліку будуть додані у вигляді стовпців під час 'Експорту в CSV' та заповнені першою відповідною властивістю елемента для кожного завдання.", "Admin.EditChallenge.form.osmIdProperty.label": "Параметр для OSM Id", @@ -1068,7 +1068,7 @@ "Profile.form.defaultBasemap.label": "Типова фонова мапа", "Profile.form.defaultBasemap.description": "Оберіть типову фонову мапу для показу. Це значення може не братись до уваги, якщо у виклику встановлене інший типовий фон.", "Profile.form.customBasemap.label": "Власний фон", - "Profile.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + "Profile.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", "Profile.form.locale.label": "Мова", "Profile.form.locale.description": "Мова інтерфейсу MapRoulette.", "Profile.form.leaderboardOptOut.label": "Не показувати на Дошці досягнень", @@ -1350,4 +1350,4 @@ "Dashboard.ProjectFilter.visible.label": "Видимий", "Dashboard.ProjectFilter.owner.label": "Власний", "Dashboard.ProjectFilter.pinned.label": "Пришпилений" -} \ No newline at end of file +} diff --git a/src/pages/Profile/Messages.js b/src/pages/Profile/Messages.js index 4a7e36f69..31d67cfa4 100644 --- a/src/pages/Profile/Messages.js +++ b/src/pages/Profile/Messages.js @@ -49,12 +49,9 @@ export default defineMessages({ defaultMessage: "Custom Basemap", }, - // Note: dummy variable included to workaround react-intl - // [bug 1158](https://github.com/yahoo/react-intl/issues/1158) - // Just pass in an empty string for its value customBasemapDescription: { id: "Profile.form.customBasemap.description", - defaultMessage: "Insert a custom base map here. E.g. `https://\\{s\\}.tile.openstreetmap.org/\\{z\\}/\\{x\\}/\\{y\\}.png` {dummy}", + defaultMessage: "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", }, localeLabel: { diff --git a/src/pages/Profile/UserSettings/UserSettingsSchema.js b/src/pages/Profile/UserSettings/UserSettingsSchema.js index b47820b68..acaadbb82 100644 --- a/src/pages/Profile/UserSettings/UserSettingsSchema.js +++ b/src/pages/Profile/UserSettings/UserSettingsSchema.js @@ -151,7 +151,7 @@ export const uiSchema = (intl, user, editor) => { }, customBasemap: { "ui:emptyValue": "", - "ui:help": , + "ui:help": , }, locale: { "ui:widget": "select", diff --git a/src/services/Error/Messages.js b/src/services/Error/Messages.js index 9dd518f12..97507d8c9 100644 --- a/src/services/Error/Messages.js +++ b/src/services/Error/Messages.js @@ -222,7 +222,7 @@ export default defineMessages({ }, josmMissingOSMIds: { id: 'Errors.josm.missingFeatureIds', - defaultMessage: "This task's features do not include the OSM identifiers " + + defaultMessage: "This task’s features do not include the OSM identifiers " + "required to open them standalone in JOSM. Please choose " + "another editing option." }, diff --git a/src/services/KeyboardShortcuts/Messages.js b/src/services/KeyboardShortcuts/Messages.js index 02f5d47bf..6a235803d 100644 --- a/src/services/KeyboardShortcuts/Messages.js +++ b/src/services/KeyboardShortcuts/Messages.js @@ -81,7 +81,7 @@ export default defineMessages({ tooHard: { id: "KeyMapping.taskCompletion.tooHard", - defaultMessage: "Too difficult / Couldn't see", + defaultMessage: "Too difficult / Couldn’t see", }, alreadyFixed: { diff --git a/src/services/Task/TaskProperty/Messages.js b/src/services/Task/TaskProperty/Messages.js index 46c91d35f..5c09f35b6 100644 --- a/src/services/Task/TaskProperty/Messages.js +++ b/src/services/Task/TaskProperty/Messages.js @@ -11,7 +11,7 @@ export default defineMessages({ notEqual: { id: "Task.property.searchType.notEqual", - defaultMessage: "doesn't equal" + defaultMessage: "doesn’t equal" }, contains: { diff --git a/src/services/User/Locale/Locale.js b/src/services/User/Locale/Locale.js index b6734a2ec..01150d565 100644 --- a/src/services/User/Locale/Locale.js +++ b/src/services/User/Locale/Locale.js @@ -1,4 +1,3 @@ -import { addLocaleData } from 'react-intl' import _map from 'lodash/map' import _isString from 'lodash/isString' import _fromPairs from 'lodash/fromPairs' @@ -27,84 +26,19 @@ export const Locale = Object.freeze({ // Dynamic imports to load locale data and translation files const LocaleImports = { - [Locale.enUS]: () => { - return import('react-intl/locale-data/en').then(en => { - addLocaleData([...en.default]) - return import('../../../lang/en-US.json') - }) - }, - [Locale.es]: () => { - return import('react-intl/locale-data/es').then(es => { - addLocaleData([...es.default]) - return import('../../../lang/es.json') - }) - }, - [Locale.fr]: () => { - return import('react-intl/locale-data/fr').then(fr => { - addLocaleData([...fr.default]) - return import('../../../lang/fr.json') - }) - }, - [Locale.de]: () => { - return import('react-intl/locale-data/de').then(de => { - addLocaleData([...de.default]) - return import('../../../lang/de.json') - }) - }, - [Locale.af]: () => { - return import('react-intl/locale-data/af').then(af => { - addLocaleData([...af.default]) - return import('../../../lang/af.json') - }) - }, - [Locale.ja]: () => { - return import('react-intl/locale-data/ja').then(ja => { - addLocaleData([...ja.default]) - return import('../../../lang/ja.json') - }) - }, - [Locale.ko]: () => { - return import('react-intl/locale-data/ko').then(ko => { - addLocaleData([...ko.default]) - return import('../../../lang/ko.json') - }) - }, - [Locale.nl]: () => { - return import('react-intl/locale-data/nl').then(nl => { - addLocaleData([...nl.default]) - return import('../../../lang/nl.json') - }) - }, - [Locale["pt-BR"]]: () => { - return import('react-intl/locale-data/pt').then(pt => { - addLocaleData([...pt.default]) - return import('../../../lang/pt_BR.json') - }) - }, - [Locale["cs-CZ"]]: () => { - return import('react-intl/locale-data/cs').then(cs => { - addLocaleData([...cs.default]) - return import('../../../lang/cs_CZ.json') - }) - }, - [Locale["fa-IR"]]: () => { - return import('react-intl/locale-data/fa').then(fa => { - addLocaleData([...fa.default]) - return import('../../../lang/fa_IR.json') - }) - }, - [Locale["ru-RU"]]: () => { - return import('react-intl/locale-data/ru').then(ru => { - addLocaleData([...ru.default]) - return import('../../../lang/ru_RU.json') - }) - }, - [Locale.uk]: () => { - return import('react-intl/locale-data/uk').then(uk => { - addLocaleData([...uk.default]) - return import('../../../lang/uk.json') - }) - }, + [Locale.enUS]: () => import('../../../lang/en-US.json'), + [Locale.es]: () => import('../../../lang/es.json'), + [Locale.fr]: () => import('../../../lang/fr.json'), + [Locale.de]: () => import('../../../lang/de.json'), + [Locale.af]: () => import('../../../lang/af.json'), + [Locale.ja]: () => import('../../../lang/ja.json'), + [Locale.ko]: () => import('../../../lang/ko.json'), + [Locale.nl]: () => import('../../../lang/nl.json'), + [Locale.uk]: () => import('../../../lang/uk.json'), + [Locale["pt-BR"]]: () => import('../../../lang/pt_BR.json'), + [Locale["cs-CZ"]]: () => import('../../../lang/cs_CZ.json'), + [Locale["fa-IR"]]: () => import('../../../lang/fa_IR.json'), + [Locale["ru-RU"]]: () => import('../../../lang/ru_RU.json'), } /** diff --git a/yarn.lock b/yarn.lock index b5e21386e..17bf5f8d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -112,7 +112,29 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.10.1", "@babel/generator@^7.9.0": +"@babel/core@^7.9.0": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz#bd6786046668a925ac2bd2fd95b579b92a23b36a" + integrity sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ== + dependencies: + "@babel/code-frame" "^7.10.1" + "@babel/generator" "^7.10.2" + "@babel/helper-module-transforms" "^7.10.1" + "@babel/helpers" "^7.10.1" + "@babel/parser" "^7.10.2" + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.2" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.10.1", "@babel/generator@^7.10.2", "@babel/generator@^7.9.0": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== @@ -588,6 +610,15 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helpers@^7.10.1", "@babel/helpers@^7.9.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" + integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== + dependencies: + "@babel/template" "^7.10.1" + "@babel/traverse" "^7.10.1" + "@babel/types" "^7.10.1" + "@babel/helpers@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" @@ -604,15 +635,6 @@ "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" -"@babel/helpers@^7.9.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz#a6827b7cb975c9d9cef5fd61d919f60d8844a973" - integrity sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw== - dependencies: - "@babel/template" "^7.10.1" - "@babel/traverse" "^7.10.1" - "@babel/types" "^7.10.1" - "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -643,7 +665,7 @@ version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" -"@babel/parser@^7.10.1", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": +"@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== @@ -1845,7 +1867,7 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" -"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0", "@babel/types@^7.9.0": +"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0", "@babel/types@^7.9.0", "@babel/types@^7.9.5": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== @@ -1909,6 +1931,41 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@formatjs/intl-displaynames@^2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-2.2.6.tgz#de1b456b6bae99cce884b28784a05663ebf0c6f0" + integrity sha512-rhUf6f/A1ztx81mR0xC9qPMrcbzGORxCwSaawicDnBTrrqZPaUYcTjIa54AvF1ODRoMMdG60s5X/5GSP7vcvmA== + dependencies: + "@formatjs/intl-utils" "^3.3.1" + +"@formatjs/intl-listformat@^2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-2.2.6.tgz#4817ae8a6983694ce4bd3673eb200edef342bb50" + integrity sha512-drQKHa3aOJkp6BnMBfjbSNVPJLlLs1QU93KYtvDhtBHXuvY8mEZv1xdboC0gRET582jh7TGFwwf9c74IfL7v4A== + dependencies: + "@formatjs/intl-utils" "^3.3.1" + +"@formatjs/intl-numberformat@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-4.2.6.tgz#a1ae188919ce54fc2eda8ff3e2b83c1bbaa0704d" + integrity sha512-LcV9pJ5XiiNwt3kbhsWIbeLd3zQZejs3iE3q98HiuV3yx9fAJR0I7n3XF67KCvIW64+hpo5V831EAbGvwhUUmQ== + dependencies: + "@formatjs/intl-utils" "^3.3.1" + +"@formatjs/intl-relativetimeformat@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-5.2.6.tgz#3d67b75a900e7b5416615beeb2d0eeff33a1e01a" + integrity sha512-UPCY7IoyeqieUxdbfhINVjbCGXCzRr4xZpoiNsr1da4Fwm4uV6l53OXsx1zDRXoiNmMtDuKCKkRzlSfBL89L1g== + dependencies: + "@formatjs/intl-utils" "^3.3.1" + +"@formatjs/intl-utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-3.3.1.tgz#7ceadbb7e251318729d9bf693731e1a5dcdfa15a" + integrity sha512-7AAicg2wqCJQ+gFEw5Nxp+ttavajBrPAD1HDmzA4jzvUCrF5a2NCJm/c5qON3VBubWWF2cu8HglEouj2h/l7KQ== + dependencies: + emojis-list "^3.0.0" + "@hapi/address@2.x.x": version "2.0.0" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" @@ -2115,9 +2172,10 @@ dependencies: "@mapbox/sphericalmercator" "~1.1.0" -"@mapbox/geojsonhint@^2.0.1": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@mapbox/geojsonhint/-/geojsonhint-2.2.0.tgz#75ca94706e9a56e6debf4e1c78fabdc67978b883" +"@mapbox/geojsonhint@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@mapbox/geojsonhint/-/geojsonhint-3.0.0.tgz#42448232ce4236cb89c1b69c36b0cadeac99e02e" + integrity sha512-zHcyh1rDHYnEBd6NvOWoeHLuvazlDkIjvz9MJx4cKwcKTlfrqgxVnTv1QLnVJnsSU5neJnhQJcgscR/Zl4uYgw== dependencies: concat-stream "^1.6.1" jsonlint-lines "1.7.1" @@ -2142,49 +2200,50 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nivo/annotations@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.61.0.tgz#f09fc99f018e0d0c39f01ed9447e1a2cc0c5e6df" - integrity sha512-i2JKYeMEPC+zwgN/p+hVRWUJ4aee+kE8BfMzCLt1/a+rsfT+v2v5kj12zx072teoaQt53lOi1GdV2lEYA6HJpg== +"@nivo/annotations@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.62.0.tgz#438d65a3aaa583d37debf5d3fa3879f54687c846" + integrity sha512-cvwUMeEkqVZ9yEgiWf3Nj3bHY36JHK7fHdXbcYS6KYZ05m5mbVWFMxHE45fPKRLaWoMqaK+rhPpioMHGYC/4mA== dependencies: - "@nivo/colors" "0.61.0" - "@nivo/core" "0.61.0" + "@nivo/colors" "0.62.0" + "@nivo/core" "0.62.0" lodash "^4.17.11" react-motion "^0.5.2" -"@nivo/axes@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.61.0.tgz#f22852b56f02d99867eb27fa3be349a75f749cbb" - integrity sha512-U0rHIYNnwt03dFFBz0aosfd5nFIRVD1Wff5DwVeM7PouBZM3AsLVWeLlUWLWOmg+BHftqhbOGTOoZN2SjU7bwA== +"@nivo/axes@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.62.0.tgz#aa54b8b180f26c93a0420897bffcf37721113874" + integrity sha512-9MBYGtKTVks5wvR/Xsj7h0/N6M2FHdwad/CmRP91agTBwyhMyYE9ifEwcP0urshZ6Jt9D1e5GxtZYwrPwFWv/A== dependencies: - "@nivo/core" "0.61.0" + "@nivo/core" "0.62.0" + "@nivo/scales" "0.62.0" d3-format "^1.3.2" d3-time "^1.0.11" d3-time-format "^2.1.3" lodash "^4.17.11" react-motion "^0.5.2" -"@nivo/bar@^0.61.1": - version "0.61.1" - resolved "https://registry.yarnpkg.com/@nivo/bar/-/bar-0.61.1.tgz#c29579b4018954a1c7a93d2d365c7878de4396f6" - integrity sha512-MYdjeFt6HqEyIBFwbVHKPjpw8+DPirAZwJDZi7dPXT0F7WcwJOnRITlRHhmQEGq5u71h26UN+M0z/ZQkB54mvw== - dependencies: - "@nivo/annotations" "0.61.0" - "@nivo/axes" "0.61.0" - "@nivo/colors" "0.61.0" - "@nivo/core" "0.61.0" - "@nivo/legends" "0.61.1" - "@nivo/tooltip" "0.61.0" +"@nivo/bar@^0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/bar/-/bar-0.62.0.tgz#dfa982ce04be4267e25a5a6a0da2a4ea7a942389" + integrity sha512-bRnQ2NMOM1Q60Tk++VEckTpTxjbxu1w87npq3S+u86mP8l1VqMoerj0f41qpfAQpZcFm+1Fj521xaQCnAW0E2g== + dependencies: + "@nivo/annotations" "0.62.0" + "@nivo/axes" "0.62.0" + "@nivo/colors" "0.62.0" + "@nivo/core" "0.62.0" + "@nivo/legends" "0.62.0" + "@nivo/tooltip" "0.62.0" d3-scale "^3.0.0" d3-shape "^1.2.2" lodash "^4.17.11" react-motion "^0.5.2" recompose "^0.30.0" -"@nivo/colors@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.61.0.tgz#5af2a6d8b1d22c786950cc9fb07c216a80a541ff" - integrity sha512-yeb5YsQDoN7D5DbBIhHTnVn0bX+4ObNVGyJAepSn64zNPiskO3/o1FnQw70aIkN4O7BDXb/vVPrftq6wSwQtvQ== +"@nivo/colors@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.62.0.tgz#e67f1d4b7fa9ae18472509331bcdd98fd619e594" + integrity sha512-yBbdy0eD9oG4j7SXWx1FIa6l30/6H0pMINB3Qth3Pz0cFtXNf7mHjbIziSdt+nW8syT6GvxCtU+Vw98M52bA2A== dependencies: d3-color "^1.2.3" d3-scale "^3.0.0" @@ -2193,12 +2252,12 @@ lodash.isplainobject "^4.0.6" react-motion "^0.5.2" -"@nivo/core@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.61.0.tgz#66581a0e2dc4f8f802bd0f1515f1f2269b0595e0" - integrity sha512-7DGsTW12vfUvMIr9jl28KZaJMJqMMhEJi1lW1R2TPMTg+qSG01v6tqMtcEwUp4bdAdr3n57ytLWSgqKWXkwjvw== +"@nivo/core@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.62.0.tgz#8237ffbab1f3a2a7dc877efba25158c705130582" + integrity sha512-0MdLAy4NgwL/QRJQN9oVFL8aF6H0qd0iHG3Ewy3asvgh/Dmz4boXKsTX5+V9puTeJHJtnlBdSgWqimqeeiXD8w== dependencies: - "@nivo/tooltip" "0.61.0" + "@nivo/tooltip" "0.62.0" d3-color "^1.2.3" d3-format "^1.3.2" d3-hierarchy "^1.1.8" @@ -2212,71 +2271,71 @@ react-motion "^0.5.2" recompose "^0.30.0" -"@nivo/legends@0.61.1": - version "0.61.1" - resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.61.1.tgz#54ac123b25449e7663067b3e019c7d3a9429a6f9" - integrity sha512-bKVXffFwTKGySZRUf6sdVzWUb5jjGffuvRczs0giQCu8OUgeJIi0IOOyYhHtww+rTVGIKAi0xPGQTQnF4kpufA== +"@nivo/legends@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.62.0.tgz#9e7bcb73cf2ed9fa459cd8cc8a49a75187cf51d1" + integrity sha512-0Vda6OyftmeL0j1wKqDe64qXQ1t+4h/GVxZK4wUXfFHkxHmLOnX+KFPwAWtHaYwmBb8RuzBlZfLipkKk2M3Dwg== dependencies: - "@nivo/core" "0.61.0" + "@nivo/core" "0.62.0" lodash "^4.17.11" recompose "^0.30.0" -"@nivo/line@^0.61.1": - version "0.61.1" - resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.61.1.tgz#7e857c4abababef3e019211deff9feb347cec788" - integrity sha512-PZFGgcj+IlDtZG6kTdBrGJ5cJvs1w5kaAI86IaH5AXJ0MQqVIZYWgbXdf5Vg6Hv2ouLmwNwONA/ORACKVkG+YA== - dependencies: - "@nivo/annotations" "0.61.0" - "@nivo/axes" "0.61.0" - "@nivo/colors" "0.61.0" - "@nivo/core" "0.61.0" - "@nivo/legends" "0.61.1" - "@nivo/scales" "0.61.0" - "@nivo/tooltip" "0.61.0" - "@nivo/voronoi" "0.61.0" +"@nivo/line@^0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.62.0.tgz#b85bfcb32824e0affbf4279affd3dfbfe08255ba" + integrity sha512-P48gt8NjhRb5W8QjafgO/DMKVD+21X4Jf13wwL6k8lzwaKOaWS37OPPPpvDREQFZhHYWG6KcnIGEo99/yOzdWw== + dependencies: + "@nivo/annotations" "0.62.0" + "@nivo/axes" "0.62.0" + "@nivo/colors" "0.62.0" + "@nivo/core" "0.62.0" + "@nivo/legends" "0.62.0" + "@nivo/scales" "0.62.0" + "@nivo/tooltip" "0.62.0" + "@nivo/voronoi" "0.62.0" d3-shape "^1.3.5" lodash "^4.17.11" react-motion "^0.5.2" -"@nivo/radar@^0.61.1": - version "0.61.1" - resolved "https://registry.yarnpkg.com/@nivo/radar/-/radar-0.61.1.tgz#63cd5b923655f50c363706ceddb2e11ed54d7001" - integrity sha512-DmrpVsrY9TOH6b+4fivt8Wzp0w8GvQixG8D7bjpcmUDBEQtJJgydY2uky7NXimnZUEbWaVnygs/gmI+Kp4nEjQ== +"@nivo/radar@^0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/radar/-/radar-0.62.0.tgz#d0505730305e5143fe161d59081518253f186297" + integrity sha512-KYx6LqItuWfKTP+qIPxPnqvVZYWbrCRD11KNEx7J3lJr9r1O/S1lWbTA7X5DYkCT/LH7WiCdtiPI/EZ0IrZsyg== dependencies: - "@nivo/colors" "0.61.0" - "@nivo/core" "0.61.0" - "@nivo/legends" "0.61.1" - "@nivo/tooltip" "0.61.0" + "@nivo/colors" "0.62.0" + "@nivo/core" "0.62.0" + "@nivo/legends" "0.62.0" + "@nivo/tooltip" "0.62.0" d3-format "^1.3.2" d3-scale "^3.0.0" d3-shape "^1.3.5" lodash "^4.17.11" react-motion "^0.5.2" -"@nivo/scales@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.61.0.tgz#48bcc94941271f1f23c353f1da1ee4da1af981ef" - integrity sha512-7MoxxecMDvpK9L0Py/drEQxG/4YAzo9KBvLzo3/KjInc1VEscpDkpVSSN5tmg1qbQE3WCrziec4JuH9q1V/Q7g== +"@nivo/scales@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.62.0.tgz#a424144e2f8184f2ec493273efd4ce5eb03f5895" + integrity sha512-x3L7/yCPLNmj/mtnOl9E/kL/3KMXKyS3IyzqB2F5PAiUcsUpxKmHwcJ9ATdPKcoUaYpf/wa9z+jL92/AInz3Pw== dependencies: d3-scale "^3.0.0" d3-time-format "^2.1.3" lodash "^4.17.11" -"@nivo/tooltip@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.61.0.tgz#bf8b06a18f41fc9072e3f2d9591ebbb9b45c2a54" - integrity sha512-CqEJ4v1jSikZ3fmuSJVb1UYF8fuCo/c7JFB+LsNH9X01IERSufO3tSNBTzJ3JugCminQpbo6/R7oBhNwZFqSxw== +"@nivo/tooltip@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.62.0.tgz#dc04f696f27a331d2cc2435b9217f4beb8c40b32" + integrity sha512-MoEq+WLDynH+DBRihb432RLtxEkvC3mKWjMuNlMwTQy+sk7h6NfIPw1QCeLrjiA/0w5qNSmWtbIv4dEJNExfwg== dependencies: - "@nivo/core" "0.61.0" + "@nivo/core" "0.62.0" react-measure "^2.2.4" react-motion "^0.5.2" -"@nivo/voronoi@0.61.0": - version "0.61.0" - resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.61.0.tgz#977da00f7805d57f4d315116785503c611570ef5" - integrity sha512-VVB7BW8GX8Gq9kTf/L52HrCD//4PAT6RTeDwb4N8BpSNfyfmBXacU9U9RMK7HAJjxICzEuxam75/oTCjX6iVBg== +"@nivo/voronoi@0.62.0": + version "0.62.0" + resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.62.0.tgz#b6b141bca204c9115fcb103b3362eff34425c147" + integrity sha512-+Q+zTjp4LsjmUNMA3tFe13UdjANsE1NLTKajrwEBvQEx87GWYUJP2G+tNBrb2WfkBUmH0XTkkH7upLy4Gx//HA== dependencies: - "@nivo/core" "0.61.0" + "@nivo/core" "0.62.0" d3-delaunay "^5.1.1" d3-scale "^3.0.0" recompose "^0.30.0" @@ -2306,10 +2365,10 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@rjsf/core@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-2.0.2.tgz#b6fdbcd730711ee0f985c7940f5b4f61ac4da77c" - integrity sha512-2QpWwhc9epc37G8K0jsFfjgjooPSq7zjqvtoixuHhYBTc3ixYcmSWmzNbt/MtTvMvt1hZHXZTVQeXYcGjqXgIQ== +"@rjsf/core@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-2.1.0.tgz#00130c89959850cc90224fd14c82feaecc2b9dc8" + integrity sha512-2A65RZ3I/RVVNfJUTYUkFs4snX02GHzql6o/KcLBBoG8G8+gr9ZeIi3+JEbe2mOEN02rIPnyJtBkl6C7QajyAw== dependencies: "@babel/runtime-corejs2" "^7.8.7" "@types/json-schema" "^7.0.4" @@ -2414,13 +2473,14 @@ "@svgr/plugin-svgo" "^4.3.1" loader-utils "^1.2.3" -"@turf/bbox-polygon@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz#6aeba4ed51d85d296e0f7c38b88c339f01eee024" +"@turf/bbox-polygon@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-6.0.1.tgz#ae0fbb14558831fb34538aae089a23d3336c6379" + integrity sha512-f6BK6GOzUNjmJeOYHklk/5LNcQMQbo51gvAM10dTM5IqzKP01KM5bgV88uOKfSZB0HRQVpaRV1tgXk2bg5cPRg== dependencies: - "@turf/helpers" "^5.1.5" + "@turf/helpers" "6.x" -"@turf/bbox@*": +"@turf/bbox@*", "@turf/bbox@6.x", "@turf/bbox@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-6.0.1.tgz#b966075771475940ee1c16be2a12cf389e6e923a" integrity sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw== @@ -2428,13 +2488,6 @@ "@turf/helpers" "6.x" "@turf/meta" "6.x" -"@turf/bbox@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-5.1.5.tgz#3051df514ad4c50f4a4f9b8a2d15fd8b6840eda3" - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/bearing@6.x": version "6.0.1" resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" @@ -2443,29 +2496,32 @@ "@turf/helpers" "6.x" "@turf/invariant" "6.x" -"@turf/boolean-disjoint@^5.1.5": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz#3fbd87084b269133f5fd15725deb3c6675fb8a9d" +"@turf/boolean-disjoint@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-6.0.2.tgz#5d6d0f4b4b8d5fe03004d74d978044c7529b294f" + integrity sha512-xgdqPOXhvCwetoybkYZwBLKro1XxqZgS+xk6Ygb2Jt6btR5P/t0lJ5n85fN0YQuJlR8hEVvCGTYZ0IRTyIEvsQ== dependencies: - "@turf/boolean-point-in-polygon" "^5.1.5" - "@turf/helpers" "^5.1.5" - "@turf/line-intersect" "^5.1.5" - "@turf/meta" "^5.1.5" - "@turf/polygon-to-line" "^5.1.5" + "@turf/boolean-point-in-polygon" "6.x" + "@turf/helpers" "6.x" + "@turf/line-intersect" "6.x" + "@turf/meta" "6.x" + "@turf/polygon-to-line" "6.x" -"@turf/boolean-point-in-polygon@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz#f01cc194d1e030a548bfda981cba43cfd62941b7" +"@turf/boolean-point-in-polygon@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.0.1.tgz#5836677afd77d2ee391af0056a0c29b660edfa32" + integrity sha512-FKLOZ124vkJhjzNSDcqpwp2NvfnsbYoUOt5iAE7uskt4svix5hcjIEgX9sELFTJpbLGsD1mUbKdfns8tZxcMNg== dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" -"@turf/center@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/center/-/center-5.1.5.tgz#44ab2cd954f63c0d37757f7158a99c3ef5114b80" +"@turf/center@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/center/-/center-6.0.1.tgz#40a17d0a170df5bba09ad93e133b904d8eb14601" + integrity sha512-bh/SLBwRC2QYcbVOxMFBtiARuMzMzfh4YuVtguYAjyBEIA4HXnnEZT+yZlzfcG3oikG7XgV8vg9eegcmwQe+MQ== dependencies: - "@turf/bbox" "^5.1.5" - "@turf/helpers" "^5.1.5" + "@turf/bbox" "6.x" + "@turf/helpers" "6.x" "@turf/centroid@^6.0.2": version "6.0.2" @@ -2489,26 +2545,16 @@ "@turf/helpers" "6.x" "@turf/invariant" "6.x" -"@turf/helpers@*", "@turf/helpers@6.x": +"@turf/helpers@6.x": version "6.1.4" resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.4.tgz#d6fd7ebe6782dd9c87dca5559bda5c48ae4c3836" -"@turf/helpers@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-5.1.5.tgz#153405227ab933d004a5bb9641a9ed999fcbe0cf" - -"@turf/invariant@6.x": +"@turf/invariant@6.x", "@turf/invariant@^6.1.2": version "6.1.2" resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.1.2.tgz#6013ed6219f9ac2edada9b31e1dfa5918eb0a2f7" dependencies: "@turf/helpers" "6.x" -"@turf/invariant@^5.1.5": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.2.0.tgz#f0150ff7290b38577b73d088b7932c1ee0aa90a7" - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/line-intersect@6.x": version "6.0.2" resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-6.0.2.tgz#b45b7a4e7e08c39a0e4e91099580ed377ef7335f" @@ -2520,16 +2566,6 @@ "@turf/meta" "6.x" geojson-rbush "3.x" -"@turf/line-intersect@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-5.1.5.tgz#0e29071ae403295e491723bc49f5cfac8d11ddf3" - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/line-segment" "^5.1.5" - "@turf/meta" "^5.1.5" - geojson-rbush "2.1.0" - "@turf/line-segment@6.x": version "6.0.2" resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-6.0.2.tgz#e280bcde70d28b694028ec1623dc406c928e59b6" @@ -2539,26 +2575,12 @@ "@turf/invariant" "6.x" "@turf/meta" "6.x" -"@turf/line-segment@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-5.1.5.tgz#3207aaee546ab24c3d8dc3cc63f91c770b8013e5" - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" - "@turf/meta" "^5.1.5" - -"@turf/meta@*", "@turf/meta@6.x": +"@turf/meta@6.x": version "6.0.2" resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.0.2.tgz#eb92951126d24a613ac1b7b99d733fcc20fd30cf" dependencies: "@turf/helpers" "6.x" -"@turf/meta@^5.1.5": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.2.0.tgz#3b1ad485ee0c3b0b1775132a32c384d53e4ba53d" - dependencies: - "@turf/helpers" "^5.1.5" - "@turf/nearest-point-on-line@^6.0.2": version "6.0.2" resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-6.0.2.tgz#4b2c1177595d9a1743af76905a9013ced03bc0dc" @@ -2572,12 +2594,13 @@ "@turf/line-intersect" "6.x" "@turf/meta" "6.x" -"@turf/polygon-to-line@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz#23bb448d84dc4c651999ac611a36d91c5925036a" +"@turf/polygon-to-line@6.x": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-6.0.3.tgz#a7c5416f61651d5d25ff51ee006522725cb1adf1" + integrity sha512-cJUy7VYLAhgnTBOtYFjNzh5bSlAS/qM8gUHXRGrIxI22RUJk4FXs/X2MEJ4Ki2flCiSeOjRIUEawEslNe7w7RA== dependencies: - "@turf/helpers" "^5.1.5" - "@turf/invariant" "^5.1.5" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" "@types/babel__core@^7.1.0": version "7.1.2" @@ -2589,6 +2612,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.7": + version "7.1.8" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.8.tgz#057f725aca3641f49fc11c7a87a9de5ec588a5d7" + integrity sha512-KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.0.2" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" @@ -2621,6 +2655,13 @@ version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" +"@types/fs-extra@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.1.tgz#1e49f22d09aa46e19b51c0b013cb63d0d923a068" + integrity sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w== + dependencies: + "@types/node" "*" + "@types/geojson@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf" @@ -2633,6 +2674,19 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/invariant@^2.2.31": + version "2.2.33" + resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.33.tgz#ec5eec29c63bf5e4ca164e9feb3ef7337cdcbadb" + integrity sha512-/jUNmS8d4bCKdqslfxW6dg/9Gksfzxz67IYfqApHn+HvHlMVXwYv2zpTDnS/yaK9BB0i0GlBTaYci0EFE62Hmw== + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -2663,19 +2717,49 @@ version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + "@types/node@*": version "12.12.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253" +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" +"@types/react@*": + version "16.9.36" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.36.tgz#ade589ff51e2a903e34ee4669e05dbfa0c1ce849" + integrity sha512-mGgUb/Rk/vGx4NCvquRuSH0GHBQKb1OqpGS9cT9lFxlTLHZgkksgI60TuIxubmn7JuCb+sENHhQciqa0npm0AQ== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +"@types/schema-utils@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-2.4.0.tgz#9983012045d541dcee053e685a27c9c87c840fcd" + integrity sha512-454hrj5gz/FXcUE20ygfEiN4DxZ1sprUo0V1gqIqkNZ/CzoEzAZEll2uxMsuyz6BYjiQan4Aa65xbTemfzW9hQ== + dependencies: + schema-utils "*" + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" @@ -2683,6 +2767,7 @@ "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== "@types/yargs-parser@*": version "13.1.0" @@ -2899,6 +2984,7 @@ "JSV@>= 4.0.x": version "4.0.2" resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= abab@^2.0.0: version "2.0.0" @@ -3059,6 +3145,7 @@ ansi-regex@^2.0.0: ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.0.0, ansi-regex@^4.1.0: version "4.1.0" @@ -3090,13 +3177,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= anymatch@^2.0.0: version "2.0.0" @@ -3141,17 +3222,11 @@ arity-n@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" @@ -3222,10 +3297,6 @@ array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -3313,7 +3384,7 @@ astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" -async-each@^1.0.0, async-each@^1.0.1: +async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -3336,6 +3407,11 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -3384,28 +3460,7 @@ axobject-query@^2.0.2: dependencies: ast-types-flow "0.0.7" -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -3413,30 +3468,6 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.24.1, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-eslint@10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -3455,145 +3486,6 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - babel-helper-bindify-decorators "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" @@ -3617,18 +3509,6 @@ babel-loader@8.1.0: pify "^4.0.1" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -3670,13 +3550,20 @@ babel-plugin-named-asset-import@^0.3.6: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz#c9750a1b38d85112c9e166bf3ef7c5dbc605f4be" integrity sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA== -babel-plugin-react-intl@^2.3.1, babel-plugin-react-intl@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-2.4.0.tgz#292fca8030603a9e0476973290836aa0c7da17e2" +babel-plugin-react-intl@^7.0.0: + version "7.5.20" + resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-7.5.20.tgz#852b99b54114b59d833b080d4bb0546368af8173" + integrity sha512-EErRfgizYKJzXxQ0x5O8QUBhsHm3xPIoboJi1Ls7BRFS8xkVDTQEBvffzdDU9SZ5Tt/kjAM55zGLlPYHZDlgpg== dependencies: - babel-runtime "^6.2.0" - intl-messageformat-parser "^1.2.0" - mkdirp "^0.5.1" + "@babel/core" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/types" "^7.9.5" + "@types/babel__core" "^7.1.7" + "@types/fs-extra" "^8.1.0" + "@types/schema-utils" "^2.4.0" + fs-extra "^9.0.0" + intl-messageformat-parser "^5.1.3" + schema-utils "^2.6.6" "babel-plugin-styled-components@>= 1": version "1.10.7" @@ -3688,51 +3575,7 @@ babel-plugin-react-intl@^2.3.1, babel-plugin-react-intl@^2.4.0: babel-plugin-syntax-jsx "^6.18.0" lodash "^4.17.11" -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-do-expressions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-function-bind@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" - -babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -3740,358 +3583,17 @@ babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - babel-helper-explode-class "^6.24.1" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-do-expressions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" - dependencies: - babel-plugin-syntax-do-expressions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-function-bind@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" - dependencies: - babel-plugin-syntax-function-bind "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.26.0: +babel-plugin-transform-object-rest-spread@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - babel-plugin-transform-react-remove-prop-types@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - babel-preset-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" @@ -4120,104 +3622,13 @@ babel-preset-react-app@^9.1.2: babel-plugin-macros "2.8.0" babel-plugin-transform-react-remove-prop-types "0.4.24" -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-preset-stage-0@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" - dependencies: - babel-plugin-transform-do-expressions "^6.22.0" - babel-plugin-transform-function-bind "^6.22.0" - babel-preset-stage-1 "^6.24.1" - -babel-preset-stage-1@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - -babel-preset-stage-2@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.24.1" - babel-plugin-transform-decorators "^6.24.1" - babel-preset-stage-3 "^6.24.1" - -babel-preset-stage-3@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-generator-functions "^6.24.1" - babel-plugin-transform-async-to-generator "^6.24.1" - babel-plugin-transform-exponentiation-operator "^6.24.1" - babel-plugin-transform-object-rest-spread "^6.22.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1: +babel-runtime@^6.26.0, babel-runtime@^6.6.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -4320,14 +3731,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -4439,13 +3842,6 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.2.tgz#574c665950915c2ac73a4594b8537a9eba26203f" @@ -4490,6 +3886,7 @@ bser@^2.0.0: buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" @@ -4644,13 +4041,14 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" camelcase@5.0.0: version "5.0.0" @@ -4668,10 +4066,6 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - camelize@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" @@ -4689,7 +4083,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000971, caniuse-lite@^1.0.30000974: version "1.0.30000974" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000974.tgz#b7afe14ee004e97ce6dc73e3f878290a12928ad8" -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: +caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: version "1.0.30000998" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000998.tgz#7227a8046841e7d01e156ae7227a504d065f6744" @@ -4751,6 +4145,7 @@ chalk@^3.0.0: chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= dependencies: ansi-styles "~1.0.0" has-color "~0.1.0" @@ -4792,21 +4187,6 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - chokidar@^2.0.2: version "2.1.6" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" @@ -5040,20 +4420,6 @@ color@^3.0.0, color@^3.1.2: color-convert "^1.9.1" color-string "^1.5.2" -combine-react-intl-messages@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combine-react-intl-messages/-/combine-react-intl-messages-1.0.6.tgz#5d125a9e18ff8f16a957b9eb73e739c56126ecd0" - dependencies: - babel-cli "^6.26.0" - babel-plugin-react-intl "^2.4.0" - babel-preset-env "^1.6.1" - babel-preset-react "^6.24.1" - babel-preset-stage-0 "^6.24.1" - extract-react-intl-messages "^0.8.0" - glob "^7.1.2" - minimist "^1.2.0" - react-intl "^2.4.0" - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -5202,7 +4568,7 @@ convert-source-map@^0.3.3: version "0.3.5" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.4.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" dependencies: @@ -5611,6 +4977,11 @@ cssstyle@^1.0.0, cssstyle@^1.1.1: dependencies: cssom "0.3.x" +csstype@^2.2.0: + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -5735,7 +5106,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -5753,9 +5124,10 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -decamelize-keys@^1.0.0: +decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -5867,15 +5239,10 @@ detab@^2.0.0: dependencies: repeat-string "^1.5.4" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" +detect-indent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== detect-libc@^1.0.2: version "1.0.3" @@ -6077,7 +5444,7 @@ electron-to-chromium@^1.3.150: version "1.3.166" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.166.tgz#99d267514f4b92339788172400bc527545deb75b" -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.47: +electron-to-chromium@^1.3.247: version "1.3.274" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.274.tgz#0fb4624c63eeaabe5aa079da5c2a966f5c916de3" @@ -6621,12 +5988,6 @@ exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -6639,12 +6000,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - expect@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -6717,12 +6072,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -6736,31 +6085,26 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-react-intl-messages@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/extract-react-intl-messages/-/extract-react-intl-messages-0.8.2.tgz#abb71550c9386183bb38494469ae0def141f70a8" - dependencies: - extract-react-intl "^0.5.2" - flat "^4.0.0" - js-yaml "^3.10.0" - load-json-file "^4.0.0" - lodash.merge "^4.6.1" - meow "^4.0.0" - mkdirp "^0.5.1" - sort-keys "^2.0.0" - write-json-file "^2.3.0" - -extract-react-intl@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/extract-react-intl/-/extract-react-intl-0.5.2.tgz#a5b5ef0301b65bf1b3782b482428fc2d2d859f50" +extract-react-intl-messages@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/extract-react-intl-messages/-/extract-react-intl-messages-4.1.1.tgz#cd01d99053bb053ecc8410ccdccb9ac56daae91c" + integrity sha512-dPogci5X7HVtV7VbUxajH/1YgfNRaW2VtEiVidZ/31Tq8314uzOtzVMNo0IrAPD2E+H1wHoPiu/j565TZsyIZg== dependencies: - babel-core "^6.24.1" - babel-plugin-react-intl "^2.3.1" - glob "^7.1.1" - lodash.merge "^4.6.1" - lodash.mergewith "^4.6.1" - pify "^3.0.0" - read-babelrc-up "^0.3.0" + "@babel/core" "^7.9.0" + babel-plugin-react-intl "^7.0.0" + flat "^5.0.0" + glob "^7.1.6" + js-yaml "^3.13.1" + load-json-file "^6.2.0" + lodash.merge "^4.6.2" + lodash.mergewith "^4.6.2" + lodash.pick "^4.4.0" + meow "^6.1.0" + mkdirp "^1.0.3" + pify "^5.0.0" + read-babelrc-up "^1.1.0" + sort-keys "^4.0.0" + write-json-file "^4.3.0" extsprintf@1.3.0: version "1.3.0" @@ -6919,25 +6263,11 @@ file-selector@^0.1.11: dependencies: tslib "^1.9.0" -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - filesize@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -7026,11 +6356,12 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" +flat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.0.tgz#dab7d71d60413becb0ac2de9bf4304495e3af6af" + integrity sha512-6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA== dependencies: - is-buffer "~2.0.3" + is-buffer "~2.0.4" flatted@^2.0.0: version "2.0.0" @@ -7061,7 +6392,7 @@ for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.3, for-own@^0.1.4: +for-own@^0.1.3: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: @@ -7142,6 +6473,16 @@ fs-extra@^8.0.0, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -7155,10 +6496,6 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -7177,7 +6514,7 @@ fsevents@2.1.2, fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== -fsevents@^1.0.0, fsevents@^1.2.7: +fsevents@^1.2.7: version "1.2.9" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" dependencies: @@ -7242,14 +6579,6 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -geojson-rbush@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-2.1.0.tgz#3bd73be391fc10b0ae693d9b8acea2aae0b83a8d" - dependencies: - "@turf/helpers" "*" - "@turf/meta" "*" - rbush "*" - geojson-rbush@3.x: version "3.1.2" resolved "https://registry.yarnpkg.com/geojson-rbush/-/geojson-rbush-3.1.2.tgz#577d6ec70ba986d4e60b741f1df5147faeb82c97" @@ -7302,19 +6631,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -7398,10 +6714,6 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - globby@8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" @@ -7456,7 +6768,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" -graceful-fs@^4.1.15, graceful-fs@^4.1.4: +graceful-fs@^4.1.15: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -7524,6 +6836,11 @@ har-validator@~5.1.0: ajv "^6.5.5" har-schema "^2.0.0" +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + harmony-reflect@^1.4.6: version "1.6.1" resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" @@ -7537,10 +6854,12 @@ has-ansi@^2.0.0: has-color@~0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" @@ -7673,7 +6992,7 @@ hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" -hoist-non-react-statics@^3.0.0: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -7686,13 +7005,6 @@ hoist-non-react-statics@^3.3.0: dependencies: react-is "^16.7.0" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hosted-git-info@^2.1.4: version "2.8.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" @@ -7941,10 +7253,6 @@ indent-string@^2.1.0: dependencies: repeating "^2.0.0" -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -8048,35 +7356,32 @@ interpret@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" -intl-format-cache@^2.0.5: - version "2.2.9" - resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4" - -intl-messageformat-parser@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075" - -intl-messageformat-parser@^1.2.0: - version "1.6.8" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.6.8.tgz#2edfe914227b9faea34fb5b2742bc1c53afef926" +intl-format-cache@^4.2.38: + version "4.2.38" + resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-4.2.38.tgz#36de38f45d6881d6566e7a1c45f971ad39ab1c56" + integrity sha512-2jezJUaVUcNfgdllfjnZIkIrweLpMwouT4rTSyUk2Ig/6+O7PjZQPIIwkywSjnwVpTAXBj5VEkig+4z+c4trjg== -intl-messageformat@^2.0.0, intl-messageformat@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz#345bcd46de630b7683330c2e52177ff5eab484fc" +intl-messageformat-parser@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-5.1.3.tgz#bd57fffebdf832a425edd330107bbf832cdbbbb8" + integrity sha512-bWuXkK4wzOKNHdqDHCw4+8+nKENtDs3E60hpUnh/6MXvZ0dfOtHA2LSIBLTkkE2h5Ir3V4XByW/8Bj1MBI5Ucw== dependencies: - intl-messageformat-parser "1.4.0" + "@formatjs/intl-numberformat" "^4.2.6" -intl-relativeformat@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz#6aca95d019ec8d30b6c5653b6629f9983ea5b6c5" +intl-messageformat@^8.3.23: + version "8.3.23" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-8.3.23.tgz#139c79db5e58dd5bd28c963eae1d05ad23fe940b" + integrity sha512-km3/LXz/fggXSbY/Ew6IKsL47v3gBrDDd0QYtesTaxK1zeRLrBwJksXmk4R4dJua9P8zGLT+wBsao4UvViKkVA== dependencies: - intl-messageformat "^2.0.0" + intl-format-cache "^4.2.38" + intl-messageformat-parser "^5.1.3" -intl-unofficial-duration-unit-format@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/intl-unofficial-duration-unit-format/-/intl-unofficial-duration-unit-format-1.1.0.tgz#2856ba6661f51b5f854ae081cd461237ccda1b79" +intl-unofficial-duration-unit-format@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/intl-unofficial-duration-unit-format/-/intl-unofficial-duration-unit-format-3.0.0.tgz#b1fd3e9d7756e816c65cab46040ef45f21f27f90" + integrity sha512-BFelPGPIboTjbe56JfLFQ5Jfi/lYsk1Dj6Jf1TesIBHqUGxJaYnRa3IYt8L1ak7xQdH0/8sYjgs53Id+VP4lsw== -invariant@^2.1.1, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -8167,9 +7472,10 @@ is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" -is-buffer@^2.0.0, is-buffer@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" +is-buffer@^2.0.0, is-buffer@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-callable@^1.1.4: version "1.1.4" @@ -8242,16 +7548,6 @@ is-docker@^2.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -8262,10 +7558,6 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -8285,6 +7577,7 @@ is-fullwidth-code-point@^1.0.0: is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -8295,12 +7588,6 @@ is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -8321,22 +7608,12 @@ is-number-object@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -8373,20 +7650,17 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" dependencies: isobject "^3.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -8445,7 +7719,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -8483,6 +7757,7 @@ isarray@0.0.1: isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" @@ -8985,7 +8260,7 @@ js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.10.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" dependencies: @@ -9059,10 +8334,6 @@ jsdom@^14.1.0: ws "^6.1.2" xml-name-validator "^3.0.0" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -9117,10 +8388,6 @@ json3@^3.3.2: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -9146,6 +8413,15 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" @@ -9153,6 +8429,7 @@ jsonify@~0.0.0: jsonlint-lines@1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/jsonlint-lines/-/jsonlint-lines-1.7.1.tgz#507de680d3fb8c4be1641cc57d6f679f29f178ff" + integrity sha1-UH3mgNP7jEvhZBzFfW9nnynxeP8= dependencies: JSV ">= 4.0.x" nomnom ">= 1.5.x" @@ -9223,6 +8500,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + kleur@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -9338,6 +8620,16 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" +load-json-file@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + loader-fs-cache@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" @@ -9426,13 +8718,20 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.merge@^4.6.1: +lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.mergewith@^4.6.1: +lodash.mergewith@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= lodash.sortby@^4.7.0: version "4.7.0" @@ -9520,12 +8819,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -9564,9 +8857,10 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== map-visit@^1.0.0: version "1.0.0" @@ -9611,10 +8905,6 @@ matchmediaquery@^0.2.1: dependencies: css-mediaquery "^0.1.2" -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -9705,19 +8995,22 @@ meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" +meow@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" merge-deep@^3.0.2: version "3.0.2" @@ -9753,24 +9046,6 @@ microevent.ts@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -9832,6 +9107,11 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + mini-css-extract-plugin@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" @@ -9856,12 +9136,14 @@ minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: dependencies: brace-expansion "^1.1.7" -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" +minimist-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" + kind-of "^6.0.3" minimist@0.0.8: version "0.0.8" @@ -9963,6 +9245,11 @@ mkdirp@^0.5.3: dependencies: minimist "^1.2.5" +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" @@ -10225,6 +9512,7 @@ node-sass@^4.11.0: "nomnom@>= 1.5.x": version "1.8.1" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= dependencies: chalk "~0.4.0" underscore "~1.6.0" @@ -10242,7 +9530,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" dependencies: @@ -10251,7 +9539,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -10452,13 +9740,6 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -10598,7 +9879,7 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -10609,14 +9890,6 @@ osenv@0, osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -10751,15 +10024,6 @@ parse-entities@^1.0.2, parse-entities@^1.1.2: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -10834,7 +10098,7 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -10939,6 +10203,11 @@ pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -11711,10 +10980,6 @@ prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - pretty-bytes@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.2.0.tgz#96c92c6e95a0b35059253fb33c03e260d40f5a1f" @@ -11752,6 +11017,7 @@ private@^0.1.6, private@^0.1.8: process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" @@ -11925,18 +11191,15 @@ querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== quickselect@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" -quickselect@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" - raf-schd@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" @@ -11958,14 +11221,6 @@ randexp@0.4.6: discontinuous-range "1.0.0" ret "~0.1.10" -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -11992,12 +11247,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rbush@*: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.0.tgz#6ba5ee1e7d8218f7ac219f5e5b145a8a7113ff72" - dependencies: - quickselect "^2.0.0" - rbush@^2.0.0, rbush@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" @@ -12168,21 +11417,30 @@ react-grid-layout@^0.16.6: react-draggable "3.x" react-resizable "1.x" -react-intl-formatted-duration@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/react-intl-formatted-duration/-/react-intl-formatted-duration-3.1.0.tgz#82c6cdabd58686d1ea2dff2958e6b24a5e1de364" - dependencies: - intl-unofficial-duration-unit-format "1.1.0" - -react-intl@^2.4.0, react-intl@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.9.0.tgz#c97c5d17d4718f1575fdbd5a769f96018a3b1843" - dependencies: - hoist-non-react-statics "^3.3.0" - intl-format-cache "^2.0.5" - intl-messageformat "^2.1.0" - intl-relativeformat "^2.1.0" - invariant "^2.1.1" +react-intl-formatted-duration@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/react-intl-formatted-duration/-/react-intl-formatted-duration-4.0.0.tgz#b63b5dea3b379efa575ed11302e17e7905c134ba" + integrity sha512-d515Fk5T594grm8WbyPer6WKdTgKajaTFT944+4QFDnsNU7cs/ZiDLinGUwaSzn7bu/IFvBCvY0xNGpClKC4uw== + dependencies: + intl-unofficial-duration-unit-format "3.0.0" + +react-intl@^4.6.9: + version "4.6.9" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-4.6.9.tgz#1a8bd689f9610b5bef41d24b9cd4e3997767e2a9" + integrity sha512-2LNXxCVWFm1dz9C+gsOkbS1mIVeANUXA9Qc7vFOOZVEOHOtpSMfPI2FXHINBOSi4Vk4UTlmfgSzfTik6EMtb+Q== + dependencies: + "@formatjs/intl-displaynames" "^2.2.6" + "@formatjs/intl-listformat" "^2.2.6" + "@formatjs/intl-numberformat" "^4.2.6" + "@formatjs/intl-relativetimeformat" "^5.2.6" + "@formatjs/intl-utils" "^3.3.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/invariant" "^2.2.31" + hoist-non-react-statics "^3.3.2" + intl-format-cache "^4.2.38" + intl-messageformat "^8.3.23" + intl-messageformat-parser "^5.1.3" + shallow-equal "^1.2.1" react-is@^16.10.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.6, react-is@^16.9.0: version "16.11.0" @@ -12437,12 +11695,13 @@ react@^16.8.0: prop-types "^15.6.2" scheduler "^0.13.6" -read-babelrc-up@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/read-babelrc-up/-/read-babelrc-up-0.3.1.tgz#4903b773ce68c00ca9f2aec4cace3ef72f851eb7" +read-babelrc-up@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-babelrc-up/-/read-babelrc-up-1.1.0.tgz#10fd5baaf6ca03eaba6748fa65ddae25bca61e70" + integrity sha512-fcl0JeI85Ss3//kfC3z2rsG2VxSiHl1bJgpjQWrne2YuQEewZpAgAjb17A6q/Q3ozWeZsUSroiIBVsnjmOU8vw== dependencies: - find-up "^3.0.0" - json5 "^2.1.0" + find-up "^4.1.0" + json5 "^2.1.2" read-cache@^1.0.0: version "1.0.0" @@ -12464,13 +11723,6 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" @@ -12478,6 +11730,15 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -12502,7 +11763,17 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -12514,6 +11785,19 @@ read-pkg@^3.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" @@ -12522,7 +11806,7 @@ readable-stream@^3.0.6, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.0.0, readdirp@^2.2.1: +readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" dependencies: @@ -12574,12 +11858,13 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" + indent-string "^4.0.0" + strip-indent "^3.0.0" reduce-css-calc@^2.1.6: version "2.1.7" @@ -12644,14 +11929,10 @@ regenerate-unicode-properties@^8.2.0: dependencies: regenerate "^1.4.0" -regenerate@^1.2.1, regenerate@^1.4.0: +regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -12666,14 +11947,6 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - regenerator-transform@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" @@ -12688,12 +11961,6 @@ regenerator-transform@^0.14.2: "@babel/runtime" "^7.8.4" private "^0.1.8" -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -12722,14 +11989,6 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" @@ -12753,10 +12012,6 @@ regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" @@ -12766,12 +12021,6 @@ regjsgen@^0.5.1: resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - regjsparser@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" @@ -12874,7 +12123,7 @@ repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" -repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -12887,6 +12136,7 @@ repeating@^2.0.0: replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= request-promise-core@1.1.2: version "1.1.2" @@ -13134,6 +12384,7 @@ rxjs@^6.5.3: safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.0" @@ -13212,6 +12463,15 @@ scheduler@^0.17.0: loose-envify "^1.1.0" object-assign "^4.1.1" +schema-utils@*, schema-utils@^2.6.5, schema-utils@^2.6.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -13228,15 +12488,6 @@ schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6 ajv "^6.10.2" ajv-keywords "^3.4.1" -schema-utils@^2.6.5: - version "2.7.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" @@ -13376,6 +12627,11 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +shallow-equal@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" @@ -13540,11 +12796,12 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" +sort-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.0.0.tgz#56dc5e256637bfe3fec8db0dc57c08b1a2be22d6" + integrity sha512-hlJLzrn/VN49uyNkZ8+9b+0q9DjmmYcYOnbMQtpkLrYpPwRApDPZfmqbUfJnAA3sb/nRib+nDot7Zi/1ER1fuA== dependencies: - is-plain-obj "^1.0.0" + is-plain-obj "^2.0.0" source-list-map@^2.0.0: version "2.0.1" @@ -13560,12 +12817,6 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - source-map-support@^0.5.6: version "0.5.12" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" @@ -13594,7 +12845,7 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -13882,6 +13133,7 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" @@ -13918,6 +13170,7 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" @@ -13930,6 +13183,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= strip-bom@^2.0.0: version "2.0.0" @@ -13941,6 +13195,11 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-comments@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" @@ -13958,9 +13217,12 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" strip-json-comments@^3.0.1: version "3.0.1" @@ -14298,10 +13560,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -14371,9 +13629,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== trim-right@^1.0.1: version "1.0.1" @@ -14449,10 +13708,20 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + type-fest@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" @@ -14473,9 +13742,17 @@ typed-styles@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: version "0.7.21" @@ -14492,6 +13769,7 @@ uglify-js@^3.1.4: underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= unherit@^1.0.4: version "1.1.2" @@ -14593,8 +13871,9 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" unist-util-stringify-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz#de2a2bc8d3febfa606652673a91455b6a36fb9f3" + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== dependencies: "@types/unist" "^2.0.2" @@ -14614,6 +13893,11 @@ universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -14682,13 +13966,10 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: version "1.0.0" @@ -14733,12 +14014,6 @@ v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -14807,15 +14082,17 @@ vfile-message@^1.0.0: unist-util-stringify-position "^1.1.1" vfile-message@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.1.tgz#951881861c22fc1eb39f873c0b93e336a64e8f6d" + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: - "@types/unist" "^2.0.2" + "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" vfile-reporter@^5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-5.1.2.tgz#80f1db5cbe8f9c12f2f30cce3e2cd18353a48519" + integrity sha512-b15sTuss1wOPWVlyWOvu+n6wGJ/eTYngz3uqMLimQvxZ+Q5oFQGYZZP1o3dR9sk58G5+wej0UPCZSwQBX/mzrQ== dependencies: repeat-string "^1.5.0" string-width "^2.0.0" @@ -14825,12 +14102,14 @@ vfile-reporter@^5.1.1: vfile-statistics "^1.1.0" vfile-sort@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.1.tgz#74e714f9175618cdae96bcaedf1a3dc711d87567" + version "2.2.2" + resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" + integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== vfile-statistics@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.3.tgz#e9c87071997fbcb4243764d2c3805e0bb0820c60" + version "1.1.4" + resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" + integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== vfile@^2.0.0: version "2.3.0" @@ -14842,8 +14121,9 @@ vfile@^2.0.0: vfile-message "^1.0.0" vfile@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.1.tgz#fc3d43a1c71916034216bf65926d5ee3c64ed60c" + version "4.1.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.1.tgz#282d28cebb609183ac51703001bc18b3e3f17de9" + integrity sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -15291,24 +14571,27 @@ write-file-atomic@2.4.1: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: - graceful-fs "^4.1.11" imurmurhash "^0.1.4" + is-typedarray "^1.0.0" signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" -write-json-file@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" +write-json-file@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" + integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" + detect-indent "^6.0.0" + graceful-fs "^4.1.15" + is-plain-obj "^2.0.0" + make-dir "^3.0.0" + sort-keys "^4.0.0" + write-file-atomic "^3.0.0" write@1.0.3: version "1.0.3" @@ -15421,6 +14704,14 @@ yargs-parser@^16.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" From 01f1c63507997fda8c4f1bbf1c4e36b7e03c5fa0 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 16 Jun 2020 16:30:04 -0700 Subject: [PATCH 18/29] Upgrade various package dependencies * uuid * redux and related * remark and related * react-grid-layout * react-dropzone * react and react-dom * react-router and react-router-dom * react-responsive * react-copy-to-clipboard * react-beautiful-dnd * react-dom-confetti * react-share * leaflet, react-leaflet, and related * downshift * @apollo/client * fuse.js * handlebars * mapillary * normalizr * react-datepicker * react-syntax-highlighter * react-test-renderer * node-sass * enzyme, enzyme-adapter-react-16 * query-string * Remove react-animate-height * Remove redux-persist and localforage * Remove react-transition-group --- package.json | 63 +- src/components/AdminPane/AdminPane.js | 35 +- .../MetricsOverview/CompletionMetrics.js | 40 - .../AdminPane/MetricsOverview/Messages.js | 11 - .../MetricsOverview/MetricsOverview.js | 65 - .../MetricsOverview/MetricsOverview.scss | 53 - .../RJSFFormFieldAdapter.js | 10 +- src/components/CardChallenge/CardChallenge.js | 113 +- src/components/CardProject/CardProject.js | 63 +- .../SourcedTileLayer/SourcedTileLayer.js | 2 +- .../WithSearchResults/WithSearchResults.js | 9 +- .../MarkdownContent/MarkdownContent.js | 2 +- .../MarkdownContent/MarkdownTemplate.js | 1 + .../TagDiffVisualization/TagDiffModal.js | 4 +- .../TagDiffVisualization.js | 4 +- .../ChallengeShareControls.js | 21 +- src/components/ViewTask/ViewTask.js | 4 +- src/pages/Inbox/Inbox.js | 2 +- src/services/Task/BoundedTask.js | 2 +- src/services/Task/ClusteredTask.js | 2 +- src/services/Task/Task.js | 2 +- src/services/Task/TaskClusters.js | 2 +- src/services/Task/TaskReview/TaskReview.js | 2 +- src/services/Widget/Widget.js | 2 +- yarn.lock | 1817 +++++++++-------- 25 files changed, 1169 insertions(+), 1162 deletions(-) delete mode 100644 src/components/AdminPane/MetricsOverview/CompletionMetrics.js delete mode 100644 src/components/AdminPane/MetricsOverview/Messages.js delete mode 100644 src/components/AdminPane/MetricsOverview/MetricsOverview.js delete mode 100644 src/components/AdminPane/MetricsOverview/MetricsOverview.scss diff --git a/package.json b/package.json index a6e2e61a8..2ee5ca051 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "3.6.4", "private": true, "dependencies": { - "@apollo/client": "3.0.0-rc.4", + "@apollo/client": "3.0.0-rc.6", "@mapbox/geo-viewport": "^0.4.0", "@mapbox/geojsonhint": "^3.0.0", "@nivo/bar": "^0.62.0", @@ -26,63 +26,60 @@ "bulma-timeline": "^1.1.2", "classnames": "^2.2.5", "date-fns": "^1.29.0", - "downshift": "^2.0.3", + "downshift": "^5.4.3", "file-saver": "^2.0.2", - "fuse.js": "^3.1.0", + "fuse.js": "^6.2.0", "graphql": "^15.1.0", - "handlebars": "^4.2.0", - "leaflet": "^1.5.1", - "leaflet-lasso": "^2.0.4", + "handlebars": "^4.7.6", + "leaflet": "^1.6.0", + "leaflet-lasso": "^2.1.0", "leaflet-vectoricon": "https://github.com/nrotstan/Leaflet.VectorIcon.git#with-viewbox", "leaflet.markercluster": "^1.4.1", - "localforage": "^1.5.2", - "mapillary-js": "^2.18.0", + "mapillary-js": "^2.20.0", "node-sass": "^4.11.0", "normalize.css": "^7.0.0", - "normalizr": "^3.2.3", + "normalizr": "^3.6.0", "parse-link-header": "^1.0.1", "piwik-react-router": "^0.12.1", "prop-types": "^15.6.0", - "query-string": "^5.1.0", - "react": "^16.8.0", - "react-animate-height": "^2.0.7", - "react-beautiful-dnd": "^12.2.0", + "query-string": "^6.13.1", + "react": "^16.13.1", + "react-beautiful-dnd": "^13.0.0", "react-burger-menu": "^2.4.4", "react-calendar-heatmap": "^1.6.3", "react-clickout": "^3.0.8", "react-copy-to-clipboard": "^5.0.1", - "react-datepicker": "^2.3.0", + "react-datepicker": "^3.0.0", "react-delayed": "^0.2.0", - "react-dom": "^16.8.0", - "react-dom-confetti": "^0.0.10", - "react-dropzone": "^10.1.5", + "react-dom": "^16.13.1", + "react-dom-confetti": "^0.1.3", + "react-dropzone": "^11.0.1", "react-elastic-carousel": "^0.6.4", - "react-grid-layout": "^0.16.6", + "react-grid-layout": "^0.18.3", "react-intl": "^4.6.9", "react-intl-formatted-duration": "^4.0.0", - "react-leaflet": "^2.4.0", - "react-leaflet-bing": "^4.1.0", - "react-leaflet-markercluster": "^2.0.0-rc3", + "react-leaflet": "^2.7.0", + "react-leaflet-bing-v2": "^5.0.1", + "react-leaflet-markercluster": "^2.0.0", "react-onclickoutside": "^6.6.3", - "react-redux": "^5.0.5", - "react-responsive": "^4.1.0", - "react-router-dom": "^4.2.2", + "react-redux": "^7.2.0", + "react-responsive": "^8.1.0", + "react-router": "^5.2.0", + "react-router-dom": "^5.2.0", "react-scripts": "3.4.1", - "react-share": "^1.16.0", - "react-syntax-highlighter": "^10.3.0", + "react-share": "^4.2.0", + "react-syntax-highlighter": "^12.2.1", "react-table": "^6.7.6", "react-tagsinput": "^3.19.0", - "react-transition-group": "^2.2.1", - "redux": "^3.7.0", - "redux-persist": "^5.10.0", + "redux": "^4.0.5", "redux-thunk": "^2.2.0", - "remark": "^7.0.1", - "remark-external-links": "^3.0.0", - "remark-react": "^6.0.0", + "remark": "^12.0.0", + "remark-external-links": "^6.1.0", + "remark-react": "^7.0.1", "route-matcher": "^0.1.0", "stale-lru-cache": "^5.1.1", "styled-components": "^5.1.0", - "uuid": "^3.3.2", + "uuid": "^8.1.0", "uuid-time": "^1.0.0", "vkbeautify": "^0.99.3", "xmltojson": "^1.3.5" diff --git a/src/components/AdminPane/AdminPane.js b/src/components/AdminPane/AdminPane.js index 74a2be75b..1bcc9cc28 100644 --- a/src/components/AdminPane/AdminPane.js +++ b/src/components/AdminPane/AdminPane.js @@ -6,7 +6,6 @@ import AsManager from '../../interactions/User/AsManager' import SignIn from '../../pages/SignIn/SignIn' import WithStatus from '../HOCs/WithStatus/WithStatus' import WithCurrentUser from '../HOCs/WithCurrentUser/WithCurrentUser' -import WithChallenges from '../HOCs/WithChallenges/WithChallenges' import ScreenTooNarrow from '../ScreenTooNarrow/ScreenTooNarrow' import EditChallenge from './Manage/ManageChallenges/EditChallenge/EditChallenge' @@ -17,13 +16,10 @@ import InspectTask from './Manage/InspectTask/InspectTask' import ProjectsDashboard from './Manage/ProjectsDashboard/ProjectsDashboard' import ProjectDashboard from './Manage/ProjectDashboard/ProjectDashboard' import ChallengeDashboard from './Manage/ChallengeDashboard/ChallengeDashboard' -import MetricsOverview from './MetricsOverview/MetricsOverview' import BusySpinner from '../BusySpinner/BusySpinner' import './Manage/Widgets/widget_registry.js' import './AdminPane.scss' -// Setup child components with needed HOCs. -const MetricsSummary = WithChallenges(MetricsOverview) /** * AdminPane is the top-level component for administration functions. It has a @@ -64,25 +60,32 @@ export class AdminPane extends Component {
    - } /> + + + - - - - - -
    diff --git a/src/components/AdminPane/MetricsOverview/CompletionMetrics.js b/src/components/AdminPane/MetricsOverview/CompletionMetrics.js deleted file mode 100644 index fdae57a79..000000000 --- a/src/components/AdminPane/MetricsOverview/CompletionMetrics.js +++ /dev/null @@ -1,40 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import { injectIntl } from 'react-intl' -import { TaskStatus, keysByStatus } - from '../../../services/Task/TaskStatus/TaskStatus' -import LabeledProgressBar from '../../Bulma/LabeledProgressBar' -import _values from 'lodash/values' -import _sum from 'lodash/sum' -import _pick from 'lodash/pick' -import messages from './Messages' - -export class CompletionMetrics extends Component { - render() { - const evaluatedStatusMetrics = _pick(this.props.taskMetrics, [ - keysByStatus[TaskStatus.falsePositive], - keysByStatus[TaskStatus.tooHard], - keysByStatus[TaskStatus.skipped], - keysByStatus[TaskStatus.alreadyFixed], - keysByStatus[TaskStatus.fixed], - ]) - - const totalEvaluated = _sum(_values(evaluatedStatusMetrics)) - - return ( -
    - -
    - ) - } -} - -CompletionMetrics.propTypes = { - taskMetrics: PropTypes.object.isRequired, -} - -export default injectIntl(CompletionMetrics) diff --git a/src/components/AdminPane/MetricsOverview/Messages.js b/src/components/AdminPane/MetricsOverview/Messages.js deleted file mode 100644 index db96a6b42..000000000 --- a/src/components/AdminPane/MetricsOverview/Messages.js +++ /dev/null @@ -1,11 +0,0 @@ -import { defineMessages } from 'react-intl' - -/** - * Internationalized messages for use with MetricsOverview - */ -export default defineMessages({ - evaluatedLabel: { - id: "Metrics.tasks.evaluatedByUser.label", - defaultMessage: "Tasks Evaluated by Users", - }, -}) diff --git a/src/components/AdminPane/MetricsOverview/MetricsOverview.js b/src/components/AdminPane/MetricsOverview/MetricsOverview.js deleted file mode 100644 index 8d922633f..000000000 --- a/src/components/AdminPane/MetricsOverview/MetricsOverview.js +++ /dev/null @@ -1,65 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import _map from 'lodash/map' -import _compact from 'lodash/compact' -import _round from 'lodash/round' -import WithComputedMetrics from '../HOCs/WithComputedMetrics/WithComputedMetrics' -import CompletionMetrics from './CompletionMetrics' -import CompletionRadar from '../Manage/CompletionRadar/CompletionRadar' -import './MetricsOverview.scss' - - -/** - * MetricsOverview displays a number of high-level aggregated metrics and - * visualizations describing the challenges it is provided. - * - * @author [Neil Rotstan](https://github.com/nrotstan) - */ -export class MetricsOverview extends Component { - render() { - const headlineStats = _compact(_map(this.props.taskMetrics.averages, (value, label) => { - if (label === 'total') { - return null - } - - return ( -
    -
    {_round(value, 1)}%
    -
    {label}
    -
    - ) - })) - - headlineStats.unshift(( -
    -
    {this.props.taskMetrics.total}
    -
    Tasks
    -
    - )) - - headlineStats.unshift(( -
    -
    {this.props.totalChallenges}
    -
    Challenges
    -
    - )) - - return ( -
    -
    {headlineStats}
    - -
    - - -
    -
    - ) - } -} - -MetricsOverview.propTypes = { - totalChallenges: PropTypes.number.isRequired, - taskMetrics: PropTypes.object.isRequired, -} - -export default WithComputedMetrics(MetricsOverview) diff --git a/src/components/AdminPane/MetricsOverview/MetricsOverview.scss b/src/components/AdminPane/MetricsOverview/MetricsOverview.scss deleted file mode 100644 index 5028aac3d..000000000 --- a/src/components/AdminPane/MetricsOverview/MetricsOverview.scss +++ /dev/null @@ -1,53 +0,0 @@ -@import '../../../variables.scss'; - -.admin { - .metrics-overview { - margin-bottom: 1.5rem; - - .stat { - margin: 15px; - - .name { - font-size: $size-7; - color: $grey; - text-align: center; - } - - .value { - font-size: $size-4; - color: $green; - text-align: center; - } - - .secondary-value { - font-size: $size-6; - color: $green; - text-align: center; - } - } - - .task-stats { - display: flex; - justify-content: space-between; - margin-top: 40px; - - .completion-stats { - min-width: 250px; - width: 300px; - - h5 { - color: $primary; - text-align: center; - } - - .completion-progress { - margin-top: 15px; - - &.evaluated-by-user { - margin-top: 30px; - } - } - } - } - } -} diff --git a/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js b/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js index 46a214db5..a7627b211 100644 --- a/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js +++ b/src/components/Bulma/RJSFFormFieldAdapter/RJSFFormFieldAdapter.js @@ -153,12 +153,12 @@ export class MarkdownEditField extends Component { value={this.props.formData} /> - {showMustacheNote && -
    - -
    - } + +
    + } content={this.props.formData || ""} properties={{}} completionResponses={{}} diff --git a/src/components/CardChallenge/CardChallenge.js b/src/components/CardChallenge/CardChallenge.js index 4dfaf3524..2816846ba 100644 --- a/src/components/CardChallenge/CardChallenge.js +++ b/src/components/CardChallenge/CardChallenge.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types' import { FormattedMessage, FormattedRelativeTime } from 'react-intl' import { selectUnit } from '@formatjs/intl-utils' import { Link } from 'react-router-dom' -import AnimateHeight from 'react-animate-height' import classNames from 'classnames' import parse from 'date-fns/parse' import _isUndefined from 'lodash/isUndefined' @@ -96,66 +95,64 @@ export class CardChallenge extends Component {
  • - - {this.props.isExpanded && -
    - {!this.props.challenge.isVirtual && -
      -
    1. - - : - -
    2. -
    3. - - : - -
    4. -
    5. - - - -
    6. -
    - } + {this.props.isExpanded && +
    + {!this.props.challenge.isVirtual && +
      +
    1. + + : + +
    2. +
    3. + + : + +
    4. +
    5. + + + +
    6. +
    + } -
    - -
    +
    + +
    - + -
      - {!_isUndefined(this.props.startControl) && -
    • - {this.props.isLoading ? - : - this.props.startControl - } -
    • - } - {(!_isUndefined(this.props.saveControl) || !_isUndefined(this.props.unsaveControl)) && -
    • - {this.props.saveControl} - {this.props.unsaveControl} -
    • - } - {!_isUndefined(this.props.manageControl) && -
    • {this.props.manageControl}
    • - } -
    -
    - } - +
      + {!_isUndefined(this.props.startControl) && +
    • + {this.props.isLoading ? + : + this.props.startControl + } +
    • + } + {(!_isUndefined(this.props.saveControl) || !_isUndefined(this.props.unsaveControl)) && +
    • + {this.props.saveControl} + {this.props.unsaveControl} +
    • + } + {!_isUndefined(this.props.manageControl) && +
    • {this.props.manageControl}
    • + } +
    +
    + } ) } diff --git a/src/components/CardProject/CardProject.js b/src/components/CardProject/CardProject.js index cf451f887..033847eec 100644 --- a/src/components/CardProject/CardProject.js +++ b/src/components/CardProject/CardProject.js @@ -2,7 +2,6 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { FormattedMessage } from 'react-intl' import { Link } from 'react-router-dom' -import AnimateHeight from 'react-animate-height' import classNames from 'classnames' import _isUndefined from 'lodash/isUndefined' import _noop from 'lodash/noop' @@ -42,40 +41,38 @@ export class CardProject extends Component {
    - - {this.props.isExpanded && -
    -
      -
    1. - - - -
    2. -
    + {this.props.isExpanded && +
    +
      +
    1. + + + +
    2. +
    -
    - -
    +
    + +
    -
      - {!_isUndefined(this.props.startControl) && -
    • - {this.props.isLoading ? - : - this.props.startControl - } -
    • - } - {!_isUndefined(this.props.manageControl) && -
    • {this.props.manageControl}
    • - } -
    -
    - } - +
      + {!_isUndefined(this.props.startControl) && +
    • + {this.props.isLoading ? + : + this.props.startControl + } +
    • + } + {!_isUndefined(this.props.manageControl) && +
    • {this.props.manageControl}
    • + } +
    +
    + } ) } diff --git a/src/components/EnhancedMap/SourcedTileLayer/SourcedTileLayer.js b/src/components/EnhancedMap/SourcedTileLayer/SourcedTileLayer.js index 30f194703..ad71a98da 100644 --- a/src/components/EnhancedMap/SourcedTileLayer/SourcedTileLayer.js +++ b/src/components/EnhancedMap/SourcedTileLayer/SourcedTileLayer.js @@ -2,7 +2,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { injectIntl, FormattedMessage } from 'react-intl' import { TileLayer } from 'react-leaflet' -import { BingLayer } from 'react-leaflet-bing' +import { BingLayer } from 'react-leaflet-bing-v2' import _isEmpty from 'lodash/isEmpty' import _get from 'lodash/get' import WithErrors from '../../HOCs/WithErrors/WithErrors' diff --git a/src/components/HOCs/WithSearchResults/WithSearchResults.js b/src/components/HOCs/WithSearchResults/WithSearchResults.js index a6f6f56f4..9f92f187e 100644 --- a/src/components/HOCs/WithSearchResults/WithSearchResults.js +++ b/src/components/HOCs/WithSearchResults/WithSearchResults.js @@ -73,11 +73,10 @@ export const WithSearchResults = function(WrappedComponent, searchName, if (items.length > 0 && queryParts.query.length > 0) { const fuzzySearch = new Fuse(items, fuzzySearchOptions) - searchResults = _map(fuzzySearch.search(queryParts.query), - (result) => { - result.item.score = result.score - return result.item - }) + searchResults = _map( + fuzzySearch.search(queryParts.query), + result => Object.assign({}, result.item, {score: result.score}) + ) searchActive = true } else { diff --git a/src/components/MarkdownContent/MarkdownContent.js b/src/components/MarkdownContent/MarkdownContent.js index ab2962d83..1cb1bb5a7 100644 --- a/src/components/MarkdownContent/MarkdownContent.js +++ b/src/components/MarkdownContent/MarkdownContent.js @@ -26,7 +26,7 @@ export default class MarkdownContent extends Component { let parsedMarkdown = remark().use(externalLinks, {target: '_blank', rel: ['nofollow']}) - .use(reactRenderer).processSync(normalizedMarkdown).contents + .use(reactRenderer).processSync(normalizedMarkdown).result if (this.props.allowShortCodes) { parsedMarkdown = expandShortCodesInJSX(parsedMarkdown) diff --git a/src/components/MarkdownContent/MarkdownTemplate.js b/src/components/MarkdownContent/MarkdownTemplate.js index 11430bdbf..997b75327 100644 --- a/src/components/MarkdownContent/MarkdownTemplate.js +++ b/src/components/MarkdownContent/MarkdownTemplate.js @@ -192,6 +192,7 @@ export default class MarkdownTemplate extends Component { return (
    + {this.props.header} {this.markdownContent(content)} {!_isEmpty(this.state.questions) &&
      diff --git a/src/components/TagDiffVisualization/TagDiffModal.js b/src/components/TagDiffVisualization/TagDiffModal.js index 745776975..f65232a73 100644 --- a/src/components/TagDiffVisualization/TagDiffModal.js +++ b/src/components/TagDiffVisualization/TagDiffModal.js @@ -15,7 +15,9 @@ const TagDiffModal = props => {
      - + {props.tagDiffs && props.tagDiffs.length > 0 && + + }
      diff --git a/src/components/TagDiffVisualization/TagDiffVisualization.js b/src/components/TagDiffVisualization/TagDiffVisualization.js index 0642ded77..49b6c1647 100644 --- a/src/components/TagDiffVisualization/TagDiffVisualization.js +++ b/src/components/TagDiffVisualization/TagDiffVisualization.js @@ -3,8 +3,8 @@ import PropTypes from 'prop-types' import { injectIntl, FormattedMessage } from 'react-intl' import classNames from 'classnames' import { Light as SyntaxHighlighter } from 'react-syntax-highlighter' -import xmlLang from 'react-syntax-highlighter/dist/languages/hljs/xml' -import highlightColors from 'react-syntax-highlighter/dist/styles/hljs/agate' +import xmlLang from 'react-syntax-highlighter/dist/esm/languages/hljs/xml' +import highlightColors from 'react-syntax-highlighter/dist/esm/styles/hljs/agate' import vkbeautify from 'vkbeautify' import _values from 'lodash/values' import _filter from 'lodash/filter' diff --git a/src/components/TaskPane/ChallengeShareControls/ChallengeShareControls.js b/src/components/TaskPane/ChallengeShareControls/ChallengeShareControls.js index 0dcd8dd64..7cbd68376 100644 --- a/src/components/TaskPane/ChallengeShareControls/ChallengeShareControls.js +++ b/src/components/TaskPane/ChallengeShareControls/ChallengeShareControls.js @@ -1,7 +1,14 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import classNames from 'classnames' -import { ShareButtons, generateShareIcon } from 'react-share' +import { + FacebookShareButton, + FacebookIcon, + TwitterShareButton, + TwitterIcon, + EmailShareButton, + EmailIcon, +} from 'react-share' import './ChallengeShareControls.scss' export default class ChallengeShareControls extends Component { @@ -10,16 +17,6 @@ export default class ChallengeShareControls extends Component { return null } - const { - FacebookShareButton, - TwitterShareButton, - EmailShareButton, - } = ShareButtons - - const FacebookIcon = generateShareIcon('facebook') - const TwitterIcon = generateShareIcon('twitter') - const EmailIcon = generateShareIcon('email') - const shareUrl = `${process.env.REACT_APP_URL}/browse/challenges/${this.props.challenge.id}` const title = process.env.REACT_APP_TITLE const hashtag = 'maproulette' @@ -43,7 +40,7 @@ export default class ChallengeShareControls extends Component {
    - + diff --git a/src/components/ViewTask/ViewTask.js b/src/components/ViewTask/ViewTask.js index 3404d1c6d..2ce7da98d 100644 --- a/src/components/ViewTask/ViewTask.js +++ b/src/components/ViewTask/ViewTask.js @@ -1,8 +1,8 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import { Light as SyntaxHighlighter } from 'react-syntax-highlighter' -import jsonLang from 'react-syntax-highlighter/dist/languages/hljs/json' -import highlightColors from 'react-syntax-highlighter/dist/styles/hljs/agate' +import jsonLang from 'react-syntax-highlighter/dist/esm/languages/hljs/json' +import highlightColors from 'react-syntax-highlighter/dist/esm/styles/hljs/agate' import BusySpinner from '../BusySpinner/BusySpinner' import _get from 'lodash/get' diff --git a/src/pages/Inbox/Inbox.js b/src/pages/Inbox/Inbox.js index 168c036c5..7fc5d5e3a 100644 --- a/src/pages/Inbox/Inbox.js +++ b/src/pages/Inbox/Inbox.js @@ -437,7 +437,7 @@ const threaded = function(sortedNotifications) { // Intended to be used as filterMethod on a column using filterAll const fuzzySearch = function(filter, rows) { const fuzzySetup = new Fuse(rows, {keys: [filter.id]}) - return fuzzySetup.search(filter.value) + return _map(fuzzySetup.search(filter.value), 'item') } export default WithCurrentUser(WithUserNotifications(injectIntl(Inbox))) diff --git a/src/services/Task/BoundedTask.js b/src/services/Task/BoundedTask.js index 7cb209141..7dd0d58d9 100644 --- a/src/services/Task/BoundedTask.js +++ b/src/services/Task/BoundedTask.js @@ -1,4 +1,4 @@ -import uuidv1 from 'uuid/v1' +import { v1 as uuidv1 } from 'uuid' import uuidTime from 'uuid-time' import { defaultRoutes as api } from '../Server/Server' import Endpoint from '../Server/Endpoint' diff --git a/src/services/Task/ClusteredTask.js b/src/services/Task/ClusteredTask.js index cbe1f2571..653e45dd2 100644 --- a/src/services/Task/ClusteredTask.js +++ b/src/services/Task/ClusteredTask.js @@ -1,4 +1,4 @@ -import uuidv1 from 'uuid/v1' +import { v1 as uuidv1 } from 'uuid' import uuidTime from 'uuid-time' import RequestStatus from '../Server/RequestStatus' import _each from 'lodash/each' diff --git a/src/services/Task/Task.js b/src/services/Task/Task.js index c0ba6a4f7..e8354e31e 100644 --- a/src/services/Task/Task.js +++ b/src/services/Task/Task.js @@ -1,5 +1,5 @@ import { schema } from 'normalizr' -import uuidv1 from 'uuid/v1' +import { v1 as uuidv1 } from 'uuid' import _get from 'lodash/get' import _pick from 'lodash/pick' import _cloneDeep from 'lodash/cloneDeep' diff --git a/src/services/Task/TaskClusters.js b/src/services/Task/TaskClusters.js index 598056021..42a660146 100644 --- a/src/services/Task/TaskClusters.js +++ b/src/services/Task/TaskClusters.js @@ -1,4 +1,4 @@ -import uuidv1 from 'uuid/v1' +import { v1 as uuidv1 } from 'uuid' import uuidTime from 'uuid-time' import RequestStatus from '../Server/RequestStatus' import _isArray from 'lodash/isArray' diff --git a/src/services/Task/TaskReview/TaskReview.js b/src/services/Task/TaskReview/TaskReview.js index 41e4ae91b..8a95bf9de 100644 --- a/src/services/Task/TaskReview/TaskReview.js +++ b/src/services/Task/TaskReview/TaskReview.js @@ -1,4 +1,4 @@ -import uuidv1 from 'uuid/v1' +import { v1 as uuidv1 } from 'uuid' import uuidTime from 'uuid-time' import _get from 'lodash/get' import _set from 'lodash/set' diff --git a/src/services/Widget/Widget.js b/src/services/Widget/Widget.js index d40a47f64..d2b058e7d 100644 --- a/src/services/Widget/Widget.js +++ b/src/services/Widget/Widget.js @@ -1,4 +1,4 @@ -import uuidv4 from 'uuid/v4' +import { v4 as uuidv4 } from 'uuid' import FileSaver from 'file-saver' import _isFinite from 'lodash/isFinite' import _isObject from 'lodash/isObject' diff --git a/yarn.lock b/yarn.lock index 17bf5f8d2..4ba017c2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apollo/client@3.0.0-rc.4": - version "3.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-rc.4.tgz#20f621c5213550c1f6c3ab0018959c41b07ea246" - integrity sha512-hIs+C+i+qVQCkYbXUA0f+df2hC+0I8u5P38B4Ax5gOKh2gT1ZuYoFgz2EWrVZJf4fW6OUxqXLrPRnlG/SLq0rg== +"@apollo/client@3.0.0-rc.6": + version "3.0.0-rc.6" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-rc.6.tgz#8bd8de57d7b025ac40d3141fbab383971907b617" + integrity sha512-nHEJ8K8SoaP8mJaPwuREdSc1FY25fIL7yAGyjb3cKTCnEV4cT6fZQg/+aJyKpX7fuqsyxZIKoAWS8Q3WdcGSJg== dependencies: "@types/zen-observable" "^0.8.0" "@wry/equality" "^0.1.9" @@ -24,13 +24,7 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.10.1": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== @@ -134,7 +128,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.10.1", "@babel/generator@^7.10.2", "@babel/generator@^7.9.0": +"@babel/generator@^7.10.1", "@babel/generator@^7.10.2", "@babel/generator@^7.4.4", "@babel/generator@^7.9.0": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" integrity sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA== @@ -144,7 +138,7 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": +"@babel/generator@^7.4.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" dependencies: @@ -173,13 +167,7 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-annotate-as-pure@^7.10.1": +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268" integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw== @@ -324,15 +312,7 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.10.1": +"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" integrity sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ== @@ -350,13 +330,7 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.10.1": +"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" integrity sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw== @@ -403,13 +377,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.10.1": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876" integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg== @@ -566,19 +534,13 @@ "@babel/template" "^7.10.1" "@babel/types" "^7.10.1" -"@babel/helper-split-export-declaration@^7.10.1": +"@babel/helper-split-export-declaration@^7.10.1", "@babel/helper-split-export-declaration@^7.4.4": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" integrity sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g== dependencies: "@babel/types" "^7.10.1" -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - dependencies: - "@babel/types" "^7.4.4" - "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" @@ -635,15 +597,7 @@ "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.10.1": +"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.1": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== @@ -661,11 +615,11 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.4.3": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" -"@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": +"@babel/parser@^7.10.1", "@babel/parser@^7.10.2", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5", "@babel/parser@^7.7.0", "@babel/parser@^7.9.0": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" integrity sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ== @@ -1705,13 +1659,6 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-typescript" "^7.9.0" -"@babel/runtime-corejs2@^7.6.3": - version "7.7.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.7.6.tgz#50b7cd4eab929b4cb66167c4972d35eaceaa124b" - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.2" - "@babel/runtime-corejs2@^7.8.7": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.10.2.tgz#532f20b839684615f97e9f700f630e995efed426" @@ -1760,22 +1707,14 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/runtime@^7.8.4": +"@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839" integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/template@^7.10.1", "@babel/template@^7.8.6": +"@babel/template@^7.1.0", "@babel/template@^7.10.1", "@babel/template@^7.8.6": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" integrity sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig== @@ -1784,6 +1723,14 @@ "@babel/parser" "^7.10.1" "@babel/types" "^7.10.1" +"@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" + "@babel/template@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" @@ -1801,7 +1748,7 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" dependencies: @@ -1815,7 +1762,7 @@ globals "^11.1.0" lodash "^4.17.11" -"@babel/traverse@^7.10.1", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": +"@babel/traverse@^7.10.1", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": version "7.10.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ== @@ -1859,15 +1806,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0", "@babel/types@^7.9.5": version "7.10.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" integrity sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng== @@ -1876,6 +1815,14 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + dependencies: + esutils "^2.0.2" + lodash "^4.17.11" + to-fast-properties "^2.0.0" + "@babel/types@^7.5.5", "@babel/types@^7.6.0": version "7.6.1" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" @@ -2473,6 +2420,18 @@ "@svgr/plugin-svgo" "^4.3.1" loader-utils "^1.2.3" +"@terraformer/common@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@terraformer/common/-/common-2.0.7.tgz#bec626f331b9f0cc3aefb16f9f88e2d3684107ff" + integrity sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A== + +"@terraformer/spatial@^2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@terraformer/spatial/-/spatial-2.0.7.tgz#412be1dedf55a9e9b5d6315bc2bad4213877c942" + integrity sha512-F7kBBbw1NmIAc3myFofS3sS6Uwgfq/fyM52dKsjsgPqAjD5Zd43lIaZRP3SCd69CFXPNy8ETId9d0mAuox7hiw== + dependencies: + "@terraformer/common" "^2.0.7" + "@turf/bbox-polygon@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-6.0.1.tgz#ae0fbb14558831fb34538aae089a23d3336c6379" @@ -2662,10 +2621,6 @@ dependencies: "@types/node" "*" -"@types/geojson@^1.0.0": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf" - "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -2723,8 +2678,9 @@ integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": - version "12.12.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253" + version "14.0.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" + integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2993,6 +2949,7 @@ abab@^2.0.0: abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -3060,6 +3017,7 @@ aggregate-error@^3.0.0: airbnb-prop-types@^2.15.0: version "2.15.0" resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef" + integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA== dependencies: array.prototype.find "^2.1.0" function.prototype.name "^1.1.1" @@ -3093,7 +3051,7 @@ ajv@^6.1.0, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: +ajv@^6.10.0, ajv@^6.10.2: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" dependencies: @@ -3102,7 +3060,7 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.12.2, ajv@^6.7.0: +ajv@^6.12.2, ajv@^6.5.5, ajv@^6.7.0: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -3119,6 +3077,7 @@ alphanum-sort@^1.0.0: amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-colors@^3.0.0: version "3.2.4" @@ -3141,6 +3100,7 @@ ansi-html@0.0.7: ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" @@ -3159,6 +3119,7 @@ ansi-regex@^5.0.0: ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -3201,6 +3162,7 @@ aproba@^1.0.3, aproba@^1.1.1: are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -3241,6 +3203,7 @@ array-equal@^1.0.0: array-filter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= array-filter@~0.0.0: version "0.0.1" @@ -3249,6 +3212,7 @@ array-filter@~0.0.0: array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-flatten@1.1.1: version "1.1.1" @@ -3302,19 +3266,20 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" array.prototype.find@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== dependencies: define-properties "^1.1.3" - es-abstract "^1.13.0" + es-abstract "^1.17.4" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" arrify@^1.0.1: version "1.0.1" @@ -3340,12 +3305,14 @@ asn1.js@^4.0.0: asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@1.4.1: version "1.4.1" @@ -3367,6 +3334,7 @@ assign-symbols@^1.0.0: ast-transform@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" + integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI= dependencies: escodegen "~1.2.0" esprima "~1.0.4" @@ -3379,6 +3347,7 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7: ast-types@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" + integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk= astral-regex@^1.0.0: version "1.0.0" @@ -3391,6 +3360,7 @@ async-each@^1.0.1: async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= async-limiter@~1.0.0: version "1.0.0" @@ -3406,6 +3376,7 @@ async@^2.6.2: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= at-least-node@^1.0.0: version "1.0.0" @@ -3416,11 +3387,10 @@ atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" -attr-accept@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-1.1.3.tgz#48230c79f93790ef2775fcec4f0db0f5db41ca52" - dependencies: - core-js "^2.5.0" +attr-accept@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.1.0.tgz#a231a854385d36ff7a99647bb77b33c8a5175aee" + integrity sha512-sLzVM3zCCmmDtDNhI0i96k6PUztkotSOXqE4kDGQt/6iDi5M+H0srjeF+QC6jN581l4X/Zq3Zu/tgcErEssavg== autoprefixer@^9.4.5: version "9.6.0" @@ -3449,10 +3419,12 @@ autoprefixer@^9.6.1: aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + version "1.10.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== axobject-query@^2.0.2: version "2.0.2" @@ -3578,6 +3550,7 @@ babel-plugin-react-intl@^7.0.0: babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -3622,7 +3595,7 @@ babel-preset-react-app@^9.1.2: babel-plugin-macros "2.8.0" babel-plugin-transform-react-remove-prop-types "0.4.24" -babel-runtime@^6.26.0, babel-runtime@^6.6.1: +babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -3640,6 +3613,7 @@ bail@^1.0.0: balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: version "1.3.0" @@ -3664,6 +3638,7 @@ batch@0.6.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" @@ -3683,6 +3658,7 @@ binary-extensions@^2.0.0: block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= dependencies: inherits "~2.0.0" @@ -3727,6 +3703,7 @@ boolbase@^1.0.0, boolbase@~1.0.0: brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -3802,6 +3779,7 @@ browserify-des@^1.0.0: browserify-optional@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" + integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk= dependencies: ast-transform "0.0.0" ast-types "^0.7.0" @@ -4037,6 +4015,7 @@ camelcase-css@^2.0.1: camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" map-obj "^1.0.0" @@ -4061,14 +4040,12 @@ camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelize@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= caniuse-api@^3.0.0: version "3.0.0" @@ -4111,6 +4088,7 @@ case-sensitive-paths-webpack-plugin@2.3.0: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^1.0.0: version "1.0.4" @@ -4176,9 +4154,10 @@ chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" -cheerio@^1.0.0-rc.2: +cheerio@^1.0.0-rc.3: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== dependencies: css-select "~1.2.0" dom-serializer "~0.1.1" @@ -4259,10 +4238,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circle-to-polygon@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/circle-to-polygon/-/circle-to-polygon-1.0.2.tgz#48e9079e6e96cf34d183ff314039de6a59f60a60" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -4307,14 +4282,6 @@ clipboard@^2.0.0: select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -4373,6 +4340,7 @@ coa@^2.0.2: code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: version "1.0.5" @@ -4401,6 +4369,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" @@ -4423,6 +4392,7 @@ color@^3.0.0, color@^3.1.2: combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" @@ -4430,10 +4400,14 @@ comma-separated-tokens@^1.0.0: version "1.0.7" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59" -commander@^2.11.0, commander@^2.19.0: +commander@^2.11.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" +commander@^2.19.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + commander@^2.20.0: version "2.20.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" @@ -4443,10 +4417,6 @@ commander@^4.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.0.tgz#545983a0603fe425bc672d66c9e3c89c42121a83" integrity sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw== -commander@~2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -4503,13 +4473,15 @@ compute-lcm@^1.1.0: validate.io-function "^1.0.2" validate.io-integer-array "^1.0.0" -compute-scroll-into-view@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz#7ff0a57f9aeda6314132d8994cce7aeca794fecf" +compute-scroll-into-view@^1.0.13: + version "1.0.14" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.14.tgz#80e3ebb25d6aa89f42e533956cb4b16a04cfe759" + integrity sha512-mKDjINe3tc6hGelUMNDzuhorIUZ7kS7BwyY0r2wQd2HOH2tRuJykiC06iSEX8y1TuhNzvz4GcJnK16mM2J1NMQ== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@^1.6.1: version "1.6.2" @@ -4538,6 +4510,7 @@ console-browserify@^1.1.0: console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0: version "1.0.0" @@ -4598,8 +4571,9 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" copy-to-clipboard@^3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467" + version "3.3.1" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: toggle-selection "^1.0.6" @@ -4637,10 +4611,6 @@ core-js@^2.4.0: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" -core-js@^2.5.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - core-js@^2.5.7, core-js@^2.6.5: version "2.6.11" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" @@ -4653,6 +4623,7 @@ core-js@^3.5.0: core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.0, cosmiconfig@^5.2.1: version "5.2.1" @@ -4721,6 +4692,7 @@ cross-spawn@7.0.1: cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= dependencies: lru-cache "^4.0.1" which "^1.2.9" @@ -4985,6 +4957,7 @@ csstype@^2.2.0: currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" @@ -5083,6 +5056,7 @@ damerau-levenshtein@^1.0.4: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" @@ -5132,7 +5106,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -5162,6 +5136,7 @@ default-gateway@^4.2.0: define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" @@ -5205,6 +5180,7 @@ delaunator@4: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegate@^3.1.2: version "3.2.0" @@ -5213,6 +5189,7 @@ delegate@^3.1.2: delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= depd@~1.1.2: version "1.1.2" @@ -5292,6 +5269,7 @@ dir-glob@^3.0.1: discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= dns-equal@^1.0.0: version "1.0.0" @@ -5329,9 +5307,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-confetti@~0.0.11: - version "0.0.15" - resolved "https://registry.yarnpkg.com/dom-confetti/-/dom-confetti-0.0.15.tgz#fd7dd6888da3dc6b54fd53326c8fa826ef25106b" +dom-confetti@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-confetti/-/dom-confetti-0.1.1.tgz#f53c355301286430e9f500567adac5041c827468" + integrity sha512-cyTs35FOqOlm+9rC8C5p0BFo0aHR2t6VWHdXmvgUEFHsF/P7tZeS5nw71oX6NifJrlxOmZ6VcmCH/hn99mqaAA== dom-converter@^0.2: version "0.2.0" @@ -5339,15 +5318,18 @@ dom-converter@^0.2: dependencies: utila "~0.4" -dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: - "@babel/runtime" "^7.1.2" + domelementtype "^2.0.1" + entities "^2.0.0" -dom-serializer@0, dom-serializer@~0.1.1: +dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== dependencies: domelementtype "^1.3.0" entities "^1.1.1" @@ -5363,6 +5345,12 @@ domain-browser@^1.1.1: domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== domexception@^1.0.1: version "1.0.1" @@ -5373,12 +5361,14 @@ domexception@^1.0.1: domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: dom-serializer "0" domelementtype "1" @@ -5405,12 +5395,15 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -downshift@^2.0.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-2.2.3.tgz#85187568455134e72025fbddd40bb9cf96c55eed" +downshift@^5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-5.4.3.tgz#7dda5e5d07aa06d440af4e691e318ec9b4e3e78f" + integrity sha512-5RdEBfIfhK4dqoXvLKGrFqY+kE9iBjZJrJoxoWXQzXMCybyr7pbqq4rvXqvzbZtmCuCB8ZN9iGz5V96rv+Q7fw== dependencies: - compute-scroll-into-view "^1.0.2" - prop-types "^15.6.0" + "@babel/runtime" "^7.9.6" + compute-scroll-into-view "^1.0.13" + prop-types "^15.7.2" + react-is "^16.13.1" duplexer@^0.1.1: version "0.1.1" @@ -5432,6 +5425,7 @@ earcut@^2.1.3: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -5522,64 +5516,75 @@ enhanced-resolve@^4.1.0: entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== enzyme-adapter-react-16@^1.1.1: - version "1.15.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.1.tgz#8ad55332be7091dc53a25d7d38b3485fc2ba50d5" + version "1.15.2" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" + integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== dependencies: - enzyme-adapter-utils "^1.12.1" - enzyme-shallow-equal "^1.0.0" + enzyme-adapter-utils "^1.13.0" + enzyme-shallow-equal "^1.0.1" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.0" + object.values "^1.1.1" prop-types "^15.7.2" - react-is "^16.10.2" + react-is "^16.12.0" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.1.tgz#e828e0d038e2b1efa4b9619ce896226f85c9dd88" +enzyme-adapter-utils@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" + integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== dependencies: airbnb-prop-types "^2.15.0" - function.prototype.name "^1.1.1" + function.prototype.name "^1.1.2" object.assign "^4.1.0" - object.fromentries "^2.0.1" + object.fromentries "^2.0.2" prop-types "^15.7.2" - semver "^5.7.0" + semver "^5.7.1" -enzyme-shallow-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.0.tgz#d8e4603495e6ea279038eef05a4bf4887b55dc69" +enzyme-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" + integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== dependencies: has "^1.0.3" - object-is "^1.0.1" + object-is "^1.0.2" enzyme@^3.2.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -5601,32 +5606,6 @@ error@^4.3.0: string-template "~0.2.0" xtend "~4.0.0" -es-abstract@^1.10.0, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: version "1.17.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" @@ -5644,15 +5623,35 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: string.prototype.trimleft "^2.1.1" string.prototype.trimright "^2.1.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" +es-abstract@^1.17.4, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + is-regex "^1.0.4" + object-keys "^1.0.12" -es-to-primitive@^1.2.1: +es-to-primitive@^1.2.0, es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== @@ -5711,6 +5710,7 @@ escodegen@^1.11.0, escodegen@^1.9.1: escodegen@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" + integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E= dependencies: esprima "~1.0.4" estraverse "~1.5.0" @@ -5904,6 +5904,7 @@ esprima@^4.0.0: esprima@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= esquery@^1.0.1: version "1.0.1" @@ -5924,14 +5925,21 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: estraverse@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= -esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + esutils@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= etag@~1.8.1: version "1.8.1" @@ -5946,6 +5954,7 @@ ev-store@^7.0.0: eve@~0.5.1: version "0.5.4" resolved "https://registry.yarnpkg.com/eve/-/eve-0.5.4.tgz#67d080b9725291d7e389e34c26860dd97f1debaa" + integrity sha1-Z9CAuXJSkdfjieNMJoYN2X8d66o= eventemitter3@^3.0.0: version "3.1.2" @@ -6063,6 +6072,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: version "3.0.3" @@ -6109,10 +6119,12 @@ extract-react-intl-messages@^4.1.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= falcor-http-datasource@^0.1.3: version "0.1.3" @@ -6148,6 +6160,7 @@ falcor@^0.1.17: fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-deep-equal@^3.1.1: version "3.1.3" @@ -6177,8 +6190,9 @@ fast-glob@^3.0.3: micromatch "^4.0.2" fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6: version "2.0.6" @@ -6257,9 +6271,10 @@ file-saver@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.2.tgz#06d6e728a9ea2df2cce2f8d9e84dfcdc338ec17a" -file-selector@^0.1.11: +file-selector@^0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.1.12.tgz#fe726547be219a787a9dcc640575a04a032b1fd0" + integrity sha512-Kx7RTzxyQipHuiqyZGf+Nz4vY9R1XGxuQl/hLoJwq+J4avk/9wxxgZyHKtbyIPJmbD4A66DWGYfyykWNpcYutQ== dependencies: tslib "^1.9.0" @@ -6332,6 +6347,7 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -6401,6 +6417,7 @@ for-own@^0.1.3: forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= fork-ts-checker-webpack-plugin@3.1.1: version "3.1.1" @@ -6419,6 +6436,7 @@ fork-ts-checker-webpack-plugin@3.1.1: form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -6508,6 +6526,7 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@2.1.2, fsevents@~2.1.2: version "2.1.2" @@ -6524,6 +6543,7 @@ fsevents@^1.2.7: fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -6533,31 +6553,35 @@ fstream@^1.0.0, fstream@^1.0.12: function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.0, function.prototype.name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392" +function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" - functions-have-names "^1.1.1" - is-callable "^1.1.4" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" -functions-have-names@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.0.tgz#83da7583e4ea0c9ac5ff530f73394b033e0bf77d" +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== -fuse.js@^3.1.0: - version "3.4.5" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.4.5.tgz#8954fb43f9729bd5dbcb8c08f251db552595a7a6" +fuse.js@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.2.0.tgz#a54d00541e1a371c7e22d79d14cca0b62340f592" + integrity sha512-i8Grj5u800Nmg240pJ0h2tU/So7srYPanb2gCwnw9rcCPynH8yiudlfTJGVsYoHkYYYBtiBog/EvotduzEmDJg== gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -6571,6 +6595,7 @@ gauge@~2.7.3: gaze@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== dependencies: globule "^1.0.0" @@ -6592,6 +6617,7 @@ geojson-rbush@3.x: get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-caller-file@^2.0.1: version "2.0.5" @@ -6609,6 +6635,7 @@ get-own-enumerable-property-symbols@^3.0.0: get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= get-stdin@^7.0.0: version "7.0.0" @@ -6628,6 +6655,7 @@ get-value@^2.0.3, get-value@^2.0.6: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" @@ -6648,9 +6676,10 @@ glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" +glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6, glob@~7.1.1: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -6670,18 +6699,6 @@ glob@^7.1.1, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -6706,6 +6723,7 @@ global@^4.3.0: globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^12.1.0: version "12.3.0" @@ -6751,8 +6769,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" globule@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" + version "1.3.2" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== dependencies: glob "~7.1.1" lodash "~4.17.10" @@ -6764,7 +6783,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" @@ -6772,6 +6791,11 @@ graceful-fs@^4.1.15: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" +graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + graceful-fs@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" @@ -6815,23 +6839,27 @@ handlebars@^4.1.2: optionalDependencies: uglify-js "^3.1.4" -handlebars@^4.2.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.1.tgz#8a01c382c180272260d07f2d1aa3ae745715c7ba" +handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== dependencies: + minimist "^1.2.5" neo-async "^2.6.0" - optimist "^0.6.1" source-map "^0.6.1" + wordwrap "^1.0.0" optionalDependencies: uglify-js "^3.1.4" har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: ajv "^6.5.5" har-schema "^2.0.0" @@ -6848,6 +6876,7 @@ harmony-reflect@^1.4.6: has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" @@ -6866,11 +6895,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - -has-symbols@^1.0.1: +has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== @@ -6878,6 +6903,7 @@ has-symbols@^1.0.1: has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" @@ -6906,7 +6932,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: @@ -6926,16 +6952,17 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hast-to-hyperscript@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-7.0.3.tgz#e36b2a32b237f83bbb80165351398226f12b7d6e" +hast-to-hyperscript@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-8.1.1.tgz#081e5a98d961ab46277a844f97dfe8dae05a8479" + integrity sha512-IsVTowDrvX4n+Nt+zP0VLQmh/ddVtnFSLUv1gb/706ovL2VgFdnE5ior2fDHSp1Bc0E5GidF2ax+PMjd+TW7gA== dependencies: comma-separated-tokens "^1.0.0" property-information "^5.3.0" space-separated-tokens "^1.0.0" - style-to-object "^0.2.1" - unist-util-is "^3.0.0" - web-namespaces "^1.1.2" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" hast-util-parse-selector@^2.2.0: version "2.2.2" @@ -6965,20 +6992,22 @@ hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" -highlight.js@~9.13.0: - version "9.13.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" +highlight.js@~9.15.0, highlight.js@~9.15.1: + version "9.15.10" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" + integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== -history@^4.7.2: - version "4.9.0" - resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" loose-envify "^1.2.0" - resolve-pathname "^2.2.0" + resolve-pathname "^3.0.0" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" - value-equal "^0.4.0" + value-equal "^1.0.1" hmac-drbg@^1.0.0: version "1.0.1" @@ -6988,11 +7017,11 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: +hoist-non-react-statics@^2.3.1: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -7006,8 +7035,9 @@ hoist-non-react-statics@^3.3.0: react-is "^16.7.0" hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hpack.js@^2.1.6: version "2.1.6" @@ -7030,9 +7060,10 @@ html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" -html-element-map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.0.1.tgz#3c4fcb4874ebddfe4283b51c8994e7713782b592" +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -7131,6 +7162,7 @@ http-proxy@^1.17.0: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -7190,10 +7222,6 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - immer@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" @@ -7244,12 +7272,14 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + version "2.0.1" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" @@ -7273,6 +7303,7 @@ infer-owner@^1.0.3, infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -7353,8 +7384,9 @@ internal-slot@^1.0.2: side-channel "^1.0.2" interpret@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== intl-format-cache@^4.2.38: version "4.2.38" @@ -7387,10 +7419,6 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -7407,11 +7435,11 @@ ipaddr.js@1.9.0, ipaddr.js@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" -is-absolute-url@^2.0.0, is-absolute-url@^2.1.0: +is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" -is-absolute-url@^3.0.3: +is-absolute-url@^3.0.0, is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== @@ -7446,6 +7474,7 @@ is-alphanumerical@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" @@ -7464,11 +7493,12 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== -is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -7477,9 +7507,10 @@ is-buffer@^2.0.0, is-buffer@~2.0.4: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== is-callable@^1.1.5: version "1.1.5" @@ -7516,13 +7547,19 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-decimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" +is-decimal@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -7563,14 +7600,14 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" @@ -7604,9 +7641,10 @@ is-hexadecimal@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -7665,11 +7703,12 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" +is-regex@^1.0.4, is-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== dependencies: - has "^1.0.1" + has-symbols "^1.0.1" is-regex@^1.0.5: version "1.0.5" @@ -7694,10 +7733,6 @@ is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - is-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" @@ -7706,6 +7741,7 @@ is-string@^1.0.5: is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= is-svg@^3.0.0: version "3.0.0" @@ -7714,18 +7750,21 @@ is-svg@^3.0.0: html-comment-regex "^1.1.0" is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.0" + has-symbols "^1.0.1" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-whitespace-character@^1.0.0: version "1.0.3" @@ -7762,6 +7801,7 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" @@ -7784,6 +7824,7 @@ isomorphic-fetch@^2.1.1: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: version "2.0.5" @@ -8244,8 +8285,9 @@ jest@24.9.0: jest-cli "^24.9.0" js-base64@^2.1.8: - version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" + version "2.5.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" + integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== js-levenshtein@^1.1.3: version "1.1.6" @@ -8270,6 +8312,7 @@ js-yaml@^3.13.1: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@^11.5.1: version "11.12.0" @@ -8337,6 +8380,7 @@ jsdom@^14.1.0: jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" @@ -8365,10 +8409,12 @@ json-schema-merge-allof@^0.6.0: json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" @@ -8383,6 +8429,7 @@ json-stable-stringify@^1.0.1: json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json3@^3.3.2: version "3.3.3" @@ -8448,6 +8495,7 @@ jsonpointer@^4.0.1: jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" extsprintf "1.3.0" @@ -8528,24 +8576,18 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" dependencies: invert-kv "^2.0.0" -leaflet-lasso@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/leaflet-lasso/-/leaflet-lasso-2.0.4.tgz#38f50c6b6a88c0095563e5621d3030f0cbaceef7" +leaflet-lasso@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leaflet-lasso/-/leaflet-lasso-2.1.0.tgz#a5de61355e6f8dd20c30f997ee725a1bed2f219c" + integrity sha512-QDWDkEhHxSGKPqLYuL7FvH/JzFVD3CNz8BiQWwWzchpu700253P8ULC4U8mPcAbHEqtixtsPdoOp7t7Jxo6B8Q== dependencies: - circle-to-polygon "^1.0.2" - terraformer "^1.0.9" + "@terraformer/spatial" "^2.0.7" "leaflet-vectoricon@https://github.com/nrotstan/Leaflet.VectorIcon.git#with-viewbox": version "0.2.0" @@ -8555,9 +8597,10 @@ leaflet.markercluster@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz#b53f2c4f2ca7306ddab1dbb6f1861d5e8aa6c5e5" -leaflet@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.5.1.tgz#9afb9d963d66c870066b1342e7a06f92840f46bf" +leaflet@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308" + integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ== left-pad@^1.3.0: version "1.3.0" @@ -8581,12 +8624,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lie@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" - dependencies: - immediate "~3.0.5" - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -8595,6 +8632,7 @@ lines-and-columns@^1.1.6: load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -8658,12 +8696,6 @@ loader-utils@^1.4.0: emojis-list "^3.0.0" json5 "^1.0.1" -localforage@^1.5.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.7.3.tgz#0082b3ca9734679e1bd534995bdd3b24cf10f204" - dependencies: - lie "3.1.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -8685,10 +8717,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash-es@^4.2.1: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -8696,10 +8724,12 @@ lodash._reinterpolate@^3.0.0: lodash.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" + integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= lodash.flattendeep@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= lodash.get@^4.4.2: version "4.4.2" @@ -8713,6 +8743,7 @@ lodash.isequal@^4.0.0, lodash.isequal@^4.5.0: lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= lodash.memoize@^4.1.2: version "4.1.2" @@ -8758,13 +8789,14 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.5, lodash@^4.2.1: +"lodash@>=3.5 <5", lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== log-symbols@^2.2.0: version "2.2.0" @@ -8791,6 +8823,7 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" @@ -8799,16 +8832,18 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lowlight@~1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.11.0.tgz#1304d83005126d4e8b1dc0f07981e9b689ec2efc" +lowlight@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.12.1.tgz#014acf8dd73a370e02ff1cc61debcde3bb1681eb" + integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w== dependencies: fault "^1.0.2" - highlight.js "~9.13.0" + highlight.js "~9.15.0" lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -8856,6 +8891,7 @@ map-cache@^0.2.2: map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^4.0.0: version "4.1.0" @@ -8868,15 +8904,17 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -mapillary-js@^2.18.0: - version "2.18.1" - resolved "https://registry.yarnpkg.com/mapillary-js/-/mapillary-js-2.18.1.tgz#82f9d7772e6d165d377153e93ee9a3ad1dcc3e5d" +mapillary-js@^2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/mapillary-js/-/mapillary-js-2.20.0.tgz#f70274c8615a65fb652e992f6c2c75b125908bb1" + integrity sha512-JVfFoezMTn/FFQrObgAqyk8QXb4eQCn9q+ejGYSq9f3tVGLnUFEbgi5k25p30FrwVJyziPdH6OUXXHhlGMrqfw== dependencies: earcut "^2.1.3" falcor "^0.1.17" falcor-http-datasource "^0.1.3" latlon-geohash "^1.1.0" martinez-polygon-clipping "^0.5.0" + pako "^1.0.10" pbf "^3.1.0" rbush "^2.0.2" rxjs "^6.3.3" @@ -8888,9 +8926,12 @@ markdown-escapes@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" -markdown-table@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" martinez-polygon-clipping@^0.5.0: version "0.5.0" @@ -8899,9 +8940,10 @@ martinez-polygon-clipping@^0.5.0: splaytree "^0.1.4" tinyqueue "^1.2.0" -matchmediaquery@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/matchmediaquery/-/matchmediaquery-0.2.1.tgz#223c7005793de03e47ce92b13285a72c44ada2cf" +matchmediaquery@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/matchmediaquery/-/matchmediaquery-0.3.1.tgz#8247edc47e499ebb7c58f62a9ff9ccf5b815c6d7" + integrity sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ== dependencies: css-mediaquery "^0.1.2" @@ -8913,33 +8955,34 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-util-compact@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz#98a25cc8a7865761a41477b3a87d1dcef0b1e79d" +mdast-util-compact@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490" + integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA== dependencies: - unist-util-visit "^1.1.0" + unist-util-visit "^2.0.0" -mdast-util-definitions@^1.2.0, mdast-util-definitions@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-1.2.4.tgz#2b54ad4eecaff9d9fcb6bf6f9f6b68b232d77ca7" +mdast-util-definitions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-2.0.1.tgz#2c931d8665a96670639f17f98e32c3afcfee25f3" + integrity sha512-Co+DQ6oZlUzvUR7JCpP249PcexxygiaKk9axJh+eRzHDZJk2julbIdKB4PXHVxdBuLzvJ1Izb+YDpj2deGMOuA== dependencies: - unist-util-visit "^1.0.0" + unist-util-visit "^2.0.0" -mdast-util-to-hast@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-6.0.2.tgz#24a8791b7c624118637d70f03a9d29116e4311cf" +mdast-util-to-hast@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-8.2.0.tgz#adf9f824defcd382e53dd7bace4282a45602ac67" + integrity sha512-WjH/KXtqU66XyTJQ7tg7sjvTw1OQcVV0hKdFh3BgHPwZ96fSBCQ/NitEHsN70Mmnggt+5eUUC7pCnK+2qGQnCA== dependencies: collapse-white-space "^1.0.0" detab "^2.0.0" - mdast-util-definitions "^1.2.0" - mdurl "^1.0.1" - trim "0.0.1" + mdast-util-definitions "^2.0.0" + mdurl "^1.0.0" trim-lines "^1.0.0" - unist-builder "^1.0.1" - unist-util-generated "^1.1.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" unist-util-position "^3.0.0" - unist-util-visit "^1.1.0" - xtend "^4.0.1" + unist-util-visit "^2.0.0" mdn-data@2.0.4: version "2.0.4" @@ -8949,9 +8992,10 @@ mdn-data@~1.1.0: version "1.1.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" -mdurl@^1.0.1: +mdurl@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= media-typer@0.3.0: version "0.3.0" @@ -8983,6 +9027,7 @@ memorystream@^0.3.1: meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -9083,7 +9128,19 @@ mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime-types@~2.1.17, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" dependencies: @@ -9112,6 +9169,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz#df60501c83151db69e28eac0ef08b4002efab040" + integrity sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA== + dependencies: + "@babel/runtime" "^7.5.5" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" @@ -9148,12 +9213,13 @@ minimist-options@^4.0.2: minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@1.2.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@^1.2.5: +minimist@^1.1.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -9232,13 +9298,13 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" -mkdirp@^0.5.3: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -9250,9 +9316,10 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -moo@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" +moo@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== move-concurrently@^1.0.1: version "1.0.1" @@ -9276,6 +9343,7 @@ ms@2.1.1: ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multicast-dns-service-types@^1.1.0: version "1.1.0" @@ -9293,10 +9361,15 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1, nan@^2.13.2: +nan@^2.12.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" +nan@^2.13.2: + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + nanoid@^2.1.0: version "2.1.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" @@ -9323,11 +9396,12 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" nearley@^2.7.10: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz#77c297d041941d268290ec84b739d0ee297e83a7" + version "2.19.4" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.4.tgz#7518cbdd7d0e8e08b5f82841b9edb0126239c8b1" + integrity sha512-oqj3m4oqwKsN77pETa9IPvxHHHLW68KrDc2KYoWMUOhDlrNUo7finubwffQMBRnwNCOXc4kRxCZO0Rvx4L6Zrw== dependencies: commander "^2.19.0" - moo "^0.4.3" + moo "^0.5.0" railroad-diagrams "^1.0.0" randexp "0.4.6" semver "^5.4.1" @@ -9388,6 +9462,7 @@ node-forge@0.9.0: node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== dependencies: fstream "^1.0.0" glob "^7.0.3" @@ -9488,8 +9563,9 @@ node-releases@^1.1.52, node-releases@^1.1.53: integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== node-sass@^4.11.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" + version "4.14.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -9505,7 +9581,7 @@ node-sass@^4.11.0: node-gyp "^3.8.0" npmlog "^4.0.0" request "^2.88.0" - sass-graph "^2.2.4" + sass-graph "2.2.5" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" @@ -9520,6 +9596,7 @@ node-sass@^4.11.0: "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" @@ -9533,6 +9610,7 @@ nopt@^4.0.1: normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" @@ -9575,9 +9653,10 @@ normalize.css@^8.0.1: resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== -normalizr@^3.2.3: - version "3.4.1" - resolved "https://registry.yarnpkg.com/normalizr/-/normalizr-3.4.1.tgz#cf4f8ac7a4a0dd7fe504b77cbe9dd533cb3e45b5" +normalizr@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/normalizr/-/normalizr-3.6.0.tgz#b8bbc4546ffe43c1c2200503041642915fcd3e1c" + integrity sha512-25cd8DiDu+pL46KIaxtVVvvEPjGacJgv0yUg950evr62dQ/ks2JO1kf7+Vi5/rMFjaSTSTls7aCnmRlUSljtiA== npm-bundled@^1.0.1: version "1.0.6" @@ -9632,6 +9711,7 @@ num2fraction@^1.2.2: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.0.7, nwsapi@^2.1.3: version "2.1.4" @@ -9640,6 +9720,7 @@ nwsapi@^2.0.7, nwsapi@^2.1.3: oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -9659,22 +9740,23 @@ object-hash@^2.0.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.1.tgz#cef18a0c940cc60aa27965ecf49b782cbf101d96" integrity sha512-HgcGMooY4JC2PBt9sdUdJ6PMzpin+YtY3r/7wg0uTifP+HJWW8rammseSEHuyt0UeShI183UGssCJqm1bJR7QA== -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - object-inspect@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" +object-is@^1.0.1, object-is@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-path@0.11.4: version "0.11.4" @@ -9689,19 +9771,20 @@ object-visit@^1.0.0: object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== dependencies: define-properties "^1.1.2" function-bind "^1.1.1" has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4, object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" +object.entries@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" + integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" + es-abstract "^1.17.5" has "^1.0.3" object.entries@^1.1.1: @@ -9714,15 +9797,6 @@ object.entries@^1.1.1: function-bind "^1.1.1" has "^1.0.3" -object.fromentries@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.1.tgz#050f077855c7af8ae6649f45c80b16ee2d31e704" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.15.0" - function-bind "^1.1.1" - has "^1.0.3" - object.fromentries@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" @@ -9746,16 +9820,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4, object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -object.values@^1.1.1: +object.values@^1.1.0, object.values@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== @@ -9782,6 +9847,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" @@ -9864,12 +9930,7 @@ os-browserify@^0.3.0: os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^3.0.0: version "3.1.0" @@ -9977,6 +10038,11 @@ p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" +pako@^1.0.10: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" @@ -10013,7 +10079,7 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-entities@^1.0.2, parse-entities@^1.1.2: +parse-entities@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" dependencies: @@ -10024,9 +10090,22 @@ parse-entities@^1.0.2, parse-entities@^1.1.2: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" @@ -10064,6 +10143,7 @@ parse5@5.1.0: parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== dependencies: "@types/node" "*" @@ -10086,6 +10166,7 @@ path-dirname@^1.0.0: path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" @@ -10101,6 +10182,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: version "1.0.2" @@ -10119,6 +10201,7 @@ path-key@^3.1.0: path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-to-regexp@0.1.7: version "0.1.7" @@ -10133,6 +10216,7 @@ path-to-regexp@^1.7.0: path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -10194,6 +10278,7 @@ pidtree@^0.3.0: pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" @@ -10211,12 +10296,14 @@ pify@^5.0.0: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pirates@^4.0.1: version "4.0.1" @@ -10927,10 +11014,15 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^ version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: +postcss-value-parser@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" +postcss-value-parser@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" @@ -11061,12 +11153,13 @@ prompts@^2.0.1: prop-types-exact@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" + integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== dependencies: has "^1.0.3" object.assign "^4.1.0" reflect.ownkeys "^0.2.0" -prop-types@15.x, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" dependencies: @@ -11098,10 +11191,7 @@ prr@~1.0.1: pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.28: version "1.1.33" @@ -11144,13 +11234,14 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" @@ -11163,6 +11254,7 @@ qs@6.7.0: qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== query-string@^4.1.0: version "4.3.4" @@ -11171,13 +11263,14 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -query-string@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" +query-string@^6.13.1: + version "6.13.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.1.tgz#d913ccfce3b4b3a713989fe6d39466d92e71ccad" + integrity sha512-RfoButmcK+yCta1+FuU8REvisx1oEzhMKwhLUNcepQTPGcNMp1sIqjnfCtfnvGSQZQEhaBHvccujtWoUV3TTbA== dependencies: decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" querystring-es3@^0.2.0: version "0.2.1" @@ -11204,7 +11297,7 @@ raf-schd@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.2.tgz#bd44c708188f2e84c810bf55fcea9231bcaed8a0" -raf@^3.1.0, raf@^3.4.0, raf@^3.4.1: +raf@^3.1.0, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" dependencies: @@ -11213,10 +11306,12 @@ raf@^3.1.0, raf@^3.4.0, raf@^3.4.1: railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= randexp@0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== dependencies: discontinuous-range "1.0.0" ret "~0.1.10" @@ -11262,13 +11357,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-animate-height@^2.0.7: - version "2.0.16" - resolved "https://registry.yarnpkg.com/react-animate-height/-/react-animate-height-2.0.16.tgz#f7f55cea8017b277ef352e2c590bb9a34286503d" - dependencies: - classnames "^2.2.5" - prop-types "^15.6.1" - react-app-polyfill@^1.0.4, react-app-polyfill@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" @@ -11281,11 +11369,12 @@ react-app-polyfill@^1.0.4, react-app-polyfill@^1.0.6: regenerator-runtime "^0.13.3" whatwg-fetch "^3.0.0" -react-beautiful-dnd@^12.2.0: - version "12.2.0" - resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-12.2.0.tgz#e5f6222f9e7934c6ed4ee09024547f9e353ae423" +react-beautiful-dnd@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" + integrity sha512-87It8sN0ineoC3nBW0SbQuTFXM6bUqM62uJGY4BtTf0yzPl8/3+bHMWkgIe0Z6m8e+gJgjWxefGRVfpE3VcdEg== dependencies: - "@babel/runtime-corejs2" "^7.6.3" + "@babel/runtime" "^7.8.4" css-box-model "^1.2.0" memoize-one "^5.1.1" raf-schd "^4.0.2" @@ -11294,8 +11383,9 @@ react-beautiful-dnd@^12.2.0: use-memo-one "^1.1.1" react-burger-menu@^2.4.4: - version "2.6.11" - resolved "https://registry.yarnpkg.com/react-burger-menu/-/react-burger-menu-2.6.11.tgz#e9ec8db2ea156ef9366423be971ae6859ea17570" + version "2.6.15" + resolved "https://registry.yarnpkg.com/react-burger-menu/-/react-burger-menu-2.6.15.tgz#a43f92ddad6247dc74efba202ea50381a64f139a" + integrity sha512-F4cq48CAZFG3G3eMC7cY83jNFky9V9on1J2JPrgXYRMhIikdGVvh22WciYXFipuS9SL6y0+lu13wbvLgRnjYbQ== dependencies: browserify-optional "^1.0.0" classnames "^2.2.6" @@ -11315,15 +11405,17 @@ react-clickout@^3.0.8: resolved "https://registry.yarnpkg.com/react-clickout/-/react-clickout-3.0.8.tgz#b7005b29625757af2602f6f183005e757101e1a6" react-copy-to-clipboard@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz#8eae107bb400be73132ed3b6a7b4fb156090208e" + version "5.0.2" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz#d82a437e081e68dfca3761fbd57dbf2abdda1316" + integrity sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg== dependencies: copy-to-clipboard "^3" prop-types "^15.5.8" -react-datepicker@^2.3.0: - version "2.9.6" - resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-2.9.6.tgz#26190c9f71692149d0d163398aa19e08626444b1" +react-datepicker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-3.0.0.tgz#a6fba3aa2738656fbadebce9a3c8e34ad6cde83b" + integrity sha512-Yrxan1tERAiWS0EzitpiaiXOIz0APTUtV75uWbaS+jSaKoGCR6wUN2FDwr1ACGlnEoGhR9QQ2Vq3odnWtgJsOA== dependencies: classnames "^2.2.6" date-fns "^2.0.1" @@ -11365,34 +11457,38 @@ react-dev-utils@^10.2.1: strip-ansi "6.0.0" text-table "0.2.0" -react-dom-confetti@^0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/react-dom-confetti/-/react-dom-confetti-0.0.10.tgz#6cde7af4af974ecf98ddf9da95c938144c68a4f0" +react-dom-confetti@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/react-dom-confetti/-/react-dom-confetti-0.1.3.tgz#151bdbd4e494c5402c24f005d99e116851ae51a6" + integrity sha512-F6jRLhg5CAfGi/oNM6fGlv+cHF7wR3xZ6GMZRKt1NgCzC3mVjQ2ctxVDEhe007Tm6b3r6AOQAzZzVyuDdblDxA== dependencies: - dom-confetti "~0.0.11" + dom-confetti "0.1.1" -react-dom@^16.8.0: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" +react-dom@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.6" + scheduler "^0.19.1" -react-draggable@3.x, react-draggable@^3.0.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.0.tgz#2ed7ea3f92e7d742d747f9e6324860606cd4d997" +react-draggable@^4.0.0, react-draggable@^4.0.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.3.tgz#0727f2cae5813e36b0e4962bf11b2f9ef2b406f3" + integrity sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w== dependencies: classnames "^2.2.5" prop-types "^15.6.0" -react-dropzone@^10.1.5: - version "10.1.10" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-10.1.10.tgz#f340290dfc26ac09ad68abc020ab6232c23d6cf3" +react-dropzone@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-11.0.1.tgz#c8b6a6ed02576e5365af2e2a3f3b31df31feb213" + integrity sha512-x/6wqRHaR8jsrNiu/boVMIPYuoxb83Vyfv77hO7/3ZRn8Pr+KH5onsCsB8MLBa3zdJl410C5FXPUINbu16XIzw== dependencies: - attr-accept "^1.1.3" - file-selector "^0.1.11" + attr-accept "^2.0.0" + file-selector "^0.1.12" prop-types "^15.7.2" react-elastic-carousel@^0.6.4: @@ -11407,15 +11503,16 @@ react-error-overlay@^6.0.7: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== -react-grid-layout@^0.16.6: - version "0.16.6" - resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.16.6.tgz#9b2407a2b946c2260ebaf66f13b556e1da4efeb2" +react-grid-layout@^0.18.3: + version "0.18.3" + resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.18.3.tgz#4f9540199f35211077eae0aa5bc83096a672c39c" + integrity sha512-lHkrk941Tk5nTwZPa9uj6ttHBT0VehSHwEhWbINBJKvM1GRaFNOefvjcuxSyuCI5JWjVUP+Qm3ARt2470AlxMA== dependencies: classnames "2.x" lodash.isequal "^4.0.0" - prop-types "15.x" - react-draggable "3.x" - react-resizable "1.x" + prop-types "^15.0.0" + react-draggable "^4.0.0" + react-resizable "^1.9.0" react-intl-formatted-duration@^4.0.0: version "4.0.0" @@ -11442,37 +11539,42 @@ react-intl@^4.6.9: intl-messageformat-parser "^5.1.3" shallow-equal "^1.2.1" -react-is@^16.10.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.6, react-is@^16.9.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa" - -react-is@^16.8.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" - integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^16.8.4: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" -react-leaflet-bing@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/react-leaflet-bing/-/react-leaflet-bing-4.1.0.tgz#11142b8b9b9dcafedad1b7512bbcc383143e2af9" +react-leaflet-bing-v2@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/react-leaflet-bing-v2/-/react-leaflet-bing-v2-5.0.1.tgz#8a447ee19a4bdb176ef10404a42c87e6f39f00b9" + integrity sha512-ubu9RjdoGOq+RVZpt2zwfRkTGkqeyii04cxk8LbGSm6S0N/kRP8uUok09k6jQq0blGXLdo6C2JXbQtkSkCDBSg== + dependencies: + react-leaflet "^2.5.0" -react-leaflet-markercluster@^2.0.0-rc3: - version "2.0.0-rc3" - resolved "https://registry.yarnpkg.com/react-leaflet-markercluster/-/react-leaflet-markercluster-2.0.0-rc3.tgz#8cadfa62eca88fe1fa7b404a81a5b171e6be60f6" +react-leaflet-markercluster@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-leaflet-markercluster/-/react-leaflet-markercluster-2.0.0.tgz#e0138b89a1b9c5cf752c9a8ec80231588ab46b38" + integrity sha512-X1OuaMf4LeAQap638+X46+AN7ZqJKZse84o964brKj4AVVifs4fKCxTTFH6+MoyIarbWvF8x6tJ4vxT2BtxLYg== + dependencies: + leaflet "^1.6.0" + leaflet.markercluster "^1.4.1" + react-leaflet "^2.6.3" -react-leaflet@^2.4.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.5.0.tgz#834cc9fdf9385e2b30e90e6d71533e2f961d93f7" +react-leaflet@^2.5.0, react-leaflet@^2.6.3, react-leaflet@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-2.7.0.tgz#0e0e452a4903029f0bb564771eab8cf9db8e4517" + integrity sha512-pMf5eRyWU8RH9HohM2i0NZymcWHraJA1m6iMFYu94/01PAaBJpOyxORZJmN6cV9dBzkVWaLjAAHTNmxbwIpcfw== dependencies: - "@babel/runtime" "^7.6.3" - fast-deep-equal "^2.0.1" - hoist-non-react-statics "^3.3.0" + "@babel/runtime" "^7.9.2" + fast-deep-equal "^3.1.1" + hoist-non-react-statics "^3.3.2" warning "^4.0.3" -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== @@ -11511,18 +11613,6 @@ react-popper@^1.3.4: typed-styles "^0.0.7" warning "^4.0.2" -react-redux@^5.0.5: - version "5.1.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.2.tgz#b19cf9e21d694422727bf798e934a916c4080f57" - dependencies: - "@babel/runtime" "^7.1.2" - hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" - loose-envify "^1.1.0" - prop-types "^15.6.1" - react-is "^16.6.0" - react-lifecycles-compat "^3.0.0" - react-redux@^7.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79" @@ -11534,43 +11624,63 @@ react-redux@^7.1.1: prop-types "^15.7.2" react-is "^16.9.0" -react-resizable@1.x: - version "1.8.0" - resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.8.0.tgz#a6dd8c90826f1e54244141b770318e0320663a43" +react-redux@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz#f970f62192b3981642fec46fd0db18a074fe879d" + integrity sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA== + dependencies: + "@babel/runtime" "^7.5.5" + hoist-non-react-statics "^3.3.0" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.9.0" + +react-resizable@^1.9.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.10.1.tgz#f0c2cf1d83b3470b87676ce6d6b02bbe3f4d8cd4" + integrity sha512-Jd/bKOKx6+19NwC4/aMLRu/J9/krfxlDnElP41Oc+oLiUWs/zwV1S9yBfBZRnqAwQb6vQ/HRSk3bsSWGSgVbpw== dependencies: prop-types "15.x" - react-draggable "^3.0.3" + react-draggable "^4.0.3" -react-responsive@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/react-responsive/-/react-responsive-4.1.0.tgz#01d129a35729c8f0373e79871cc8d5ecf6e22765" +react-responsive@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/react-responsive/-/react-responsive-8.1.0.tgz#afcc2293c46a37b1e7926ff7fef66bcb147e7cba" + integrity sha512-U8Nv2/ZWACIw/fAE9XNPbc2Xo33X5q1bcCASc2SufvJ9ifB+o/rokfogfznSVcvS22hN1rafGi0uZD6GiVFEHw== dependencies: hyphenate-style-name "^1.0.0" - matchmediaquery "^0.2.1" + matchmediaquery "^0.3.0" prop-types "^15.6.1" + shallow-equal "^1.1.0" -react-router-dom@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6" +react-router-dom@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== dependencies: - history "^4.7.2" - invariant "^2.2.4" + "@babel/runtime" "^7.1.2" + history "^4.9.0" loose-envify "^1.3.1" - prop-types "^15.6.1" - react-router "^4.3.1" - warning "^4.0.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" -react-router@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e" +react-router@5.2.0, react-router@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== dependencies: - history "^4.7.2" - hoist-non-react-statics "^2.5.0" - invariant "^2.2.4" + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" path-to-regexp "^1.7.0" - prop-types "^15.6.1" - warning "^4.0.1" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" react-scripts@3.4.1: version "3.4.1" @@ -11632,14 +11742,13 @@ react-scripts@3.4.1: optionalDependencies: fsevents "2.1.2" -react-share@^1.16.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/react-share/-/react-share-1.19.1.tgz#96926a4d474284e05ad851ee2ed191d0ed56e241" +react-share@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/react-share/-/react-share-4.2.0.tgz#0b6458a15cf0d887513942f6787d62432e5d2d80" + integrity sha512-bMEuhkMFTRVyPjwHyjlZyaQn4dm5udymWiEMPFIZVk8KJqlhb9Hox49u/5EA7M0oYYfSk1sh0MCaC8PsGKTj5A== dependencies: - babel-runtime "^6.6.1" classnames "^2.2.5" jsonp "^0.2.1" - prop-types "^15.5.8" react-swipeable@^5.5.1: version "5.5.1" @@ -11648,13 +11757,14 @@ react-swipeable@^5.5.1: dependencies: prop-types "^15.6.2" -react-syntax-highlighter@^10.3.0: - version "10.3.5" - resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-10.3.5.tgz#3b3e2d1eba92fb7988c3b50d22d2c74ae0263fdd" +react-syntax-highlighter@^12.2.1: + version "12.2.1" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e" + integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA== dependencies: "@babel/runtime" "^7.3.1" - highlight.js "~9.13.0" - lowlight "~1.11.0" + highlight.js "~9.15.1" + lowlight "1.12.1" prismjs "^1.8.4" refractor "^2.4.1" @@ -11669,31 +11779,23 @@ react-tagsinput@^3.19.0: resolved "https://registry.yarnpkg.com/react-tagsinput/-/react-tagsinput-3.19.0.tgz#6e3b45595f2d295d4657bf194491988f948caabf" react-test-renderer@^16.0.0-0, react-test-renderer@^16.2.0: - version "16.11.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.11.0.tgz#72574566496462c808ac449b0287a4c0a1a7d8f8" + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" react-is "^16.8.6" - scheduler "^0.17.0" + scheduler "^0.19.1" -react-transition-group@^2.2.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react@^16.8.0: - version "16.8.6" - resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" +react@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.13.6" read-babelrc-up@^1.1.0: version "1.1.0" @@ -11712,6 +11814,7 @@ read-cache@^1.0.0: read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" read-pkg "^1.0.0" @@ -11742,6 +11845,7 @@ read-pkg-up@^7.0.1: read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -11773,7 +11877,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -11785,7 +11889,7 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -11798,7 +11902,7 @@ readable-stream@^2.2.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1: +readable-stream@^3.0.6: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" dependencies: @@ -11806,6 +11910,15 @@ readable-stream@^3.0.6, readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -11830,6 +11943,7 @@ realpath-native@^1.1.0: rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" @@ -11854,6 +11968,7 @@ recursive-readdir@2.2.2: redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" @@ -11875,27 +11990,16 @@ reduce-css-calc@^2.1.6: postcss-value-parser "^3.3.0" redux-mock-store@^1.4.0: - version "1.5.3" - resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.3.tgz#1f10528949b7ce8056c2532624f7cafa98576c6d" + version "1.5.4" + resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.4.tgz#90d02495fd918ddbaa96b83aef626287c9ab5872" + integrity sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA== dependencies: lodash.isplainobject "^4.0.6" -redux-persist@^5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-5.10.0.tgz#5d8d802c5571e55924efc1c3a9b23575283be62b" - redux-thunk@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" - -redux@^3.7.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" - dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.3" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== redux@^4.0.4: version "4.0.4" @@ -11904,9 +12008,18 @@ redux@^4.0.4: loose-envify "^1.4.0" symbol-observable "^1.2.0" +redux@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + reflect.ownkeys@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" + integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= refractor@^2.4.1: version "2.10.0" @@ -12039,48 +12152,53 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -remark-external-links@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-3.1.1.tgz#a8d2aead51639daffae5e2255469fce4a86c09bb" +remark-external-links@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-6.1.0.tgz#1a545b3cf896eae00ec1732d90f595f75a329abe" + integrity sha512-dJr+vhe3wuh1+E9jltQ+efRMqtMDOOnfFkhtoArOmhnBcPQX6THttXMkc/H0kdnAvkXTk7f2QdOYm5qo/sGqdw== dependencies: - is-absolute-url "^2.1.0" - mdast-util-definitions "^1.2.3" - space-separated-tokens "^1.1.2" - unist-util-visit "^1.4.0" + extend "^3.0.0" + is-absolute-url "^3.0.0" + mdast-util-definitions "^2.0.0" + space-separated-tokens "^1.0.0" + unist-util-visit "^2.0.0" -remark-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-3.0.1.tgz#1b9f841a44d8f4fbf2246850265459a4eb354c80" +remark-parse@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.2.tgz#5999bc0b9c2e3edc038800a64ff103d0890b318b" + integrity sha512-eMI6kMRjsAGpMXXBAywJwiwAse+KNpmt+BK55Oofy4KvBZEqUDj6mWbGLJZrujoPIPPxDXzn3T9baRlpsm2jnQ== dependencies: + ccount "^1.0.0" collapse-white-space "^1.0.2" - has "^1.0.1" is-alphabetical "^1.0.0" is-decimal "^1.0.0" is-whitespace-character "^1.0.0" is-word-character "^1.0.0" markdown-escapes "^1.0.0" - parse-entities "^1.0.2" + parse-entities "^2.0.0" repeat-string "^1.5.4" state-toggle "^1.0.0" trim "0.0.1" trim-trailing-lines "^1.0.0" unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" xtend "^4.0.1" -remark-react@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/remark-react/-/remark-react-6.0.0.tgz#2bc46ce2ba74a8561d8984bf7885b5eb1ebc8273" +remark-react@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/remark-react/-/remark-react-7.0.1.tgz#499c8b9384e0958834e57a49fe11e7af230936a4" + integrity sha512-JJ99WjMmYx2Yc/Nvg0PFH7qb4nw+POkSc8MQV0we95/cFfbUe7WLY7R+k7akAV5ZOOvv8YIkRmxuUFU+4XGPvA== dependencies: "@mapbox/hast-util-table-cell-style" "^0.1.3" - hast-to-hyperscript "^7.0.0" + hast-to-hyperscript "^8.0.0" hast-util-sanitize "^2.0.0" - mdast-util-to-hast "^6.0.0" + mdast-util-to-hast "^8.0.0" -remark-stringify@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-3.0.1.tgz#79242bebe0a752081b5809516fa0c06edec069cf" +remark-stringify@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.0.tgz#1e555f4402e445c364fb23d12fc5f5e0337ec8b7" + integrity sha512-FSPZv1ds76oAZjurhhuV5qXSUSoz6QRPuwYK38S41sLHwg4oB7ejnmZshj7qwjgYLf93kdz6BOX9j5aidNE7rA== dependencies: ccount "^1.0.0" is-alphanumeric "^1.0.0" @@ -12088,22 +12206,23 @@ remark-stringify@^3.0.0: is-whitespace-character "^1.0.0" longest-streak "^2.0.1" markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" + markdown-table "^2.0.0" + mdast-util-compact "^2.0.0" + parse-entities "^2.0.0" repeat-string "^1.5.4" state-toggle "^1.0.0" - stringify-entities "^1.0.1" + stringify-entities "^3.0.0" unherit "^1.0.4" xtend "^4.0.1" -remark@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-7.0.1.tgz#a5de4dacfabf0f60a49826ef24c479807f904bfb" +remark@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.0.tgz#d1c145c07341c9232f93b2f8539d56da15a2548c" + integrity sha512-oX4lMIS0csgk8AEbzY0h2jdR0ngiCHOpwwpxjmRa5TqAkeknY+tkhjRJGZqnCmvyuWh55/0SW5WY3R3nn3PH9A== dependencies: - remark-parse "^3.0.0" - remark-stringify "^3.0.0" - unified "^6.0.0" + remark-parse "^8.0.0" + remark-stringify "^8.0.0" + unified "^9.0.0" remove-trailing-separator@^1.0.1: version "1.1.0" @@ -12123,13 +12242,14 @@ repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" -repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" @@ -12153,8 +12273,9 @@ request-promise-native@^1.0.5: tough-cookie "^2.3.3" request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -12163,7 +12284,7 @@ request@^2.87.0, request@^2.88.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -12173,17 +12294,19 @@ request@^2.87.0, request@^2.88.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-main-filename@^2.0.0: version "2.0.0" @@ -12212,9 +12335,10 @@ resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" -resolve-pathname@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve-protobuf-schema@^2.1.0: version "2.1.0" @@ -12245,6 +12369,7 @@ resolve-url@^0.2.1: resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@1.15.0: version "1.15.0" @@ -12253,25 +12378,25 @@ resolve@1.15.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.15.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.1.7, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.11.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" dependencies: path-parse "^1.0.6" -resolve@^1.10.0, resolve@^1.12.0: +resolve@^1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" dependencies: path-parse "^1.0.6" -resolve@^1.15.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -12283,6 +12408,7 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.12.0: version "0.12.0" @@ -12339,6 +12465,7 @@ route-matcher@^0.1.0: rst-selector-parser@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= dependencies: lodash.flattendeep "^4.4.0" nearley "^2.7.10" @@ -12386,9 +12513,10 @@ safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" +safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" @@ -12419,14 +12547,15 @@ sanitize.css@^10.0.0: resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== dependencies: glob "^7.0.0" lodash "^4.0.0" scss-tokenizer "^0.2.3" - yargs "^7.0.0" + yargs "^13.3.2" sass-loader@8.0.2: version "8.0.2" @@ -12449,16 +12578,10 @@ saxes@^3.1.9: dependencies: xmlchars "^1.3.1" -scheduler@^0.13.6: - version "0.13.6" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scheduler@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -12491,6 +12614,7 @@ schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6 scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= dependencies: js-base64 "^2.1.8" source-map "^0.4.2" @@ -12510,7 +12634,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -12523,7 +12647,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.4.1, semver@^5.5.1: +semver@^5.5.1: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" @@ -12534,6 +12658,7 @@ semver@^6.0.0, semver@^6.1.1: semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= send@0.17.1: version "0.17.1" @@ -12583,6 +12708,7 @@ serve-static@1.14.1: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -12627,7 +12753,7 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shallow-equal@^1.2.1: +shallow-equal@^1.1.0, shallow-equal@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== @@ -12673,8 +12799,9 @@ shell-quote@^1.6.1: jsonify "~0.0.0" shelljs@^0.8.2: - version "0.8.3" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097" + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -12699,7 +12826,12 @@ side-channel@^1.0.2: es-abstract "^1.17.0-next.1" object-inspect "^1.7.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -12763,12 +12895,14 @@ snapdragon@^0.8.1: snapsvg-cjs@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/snapsvg-cjs/-/snapsvg-cjs-0.0.6.tgz#3b2f56af2573d3d364c3ed5bf8885745f4d2dde1" + integrity sha1-Oy9WryVz09Nkw+1b+IhXRfTS3eE= dependencies: snapsvg "0.5.1" snapsvg@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.5.1.tgz#0caf52c79189a290746fc446cc5e863f6bdddfe3" + integrity sha1-DK9Sx5GJopB0b8RGzF6GP2vd3+M= dependencies: eve "~0.5.1" @@ -12842,6 +12976,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc source-map@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" @@ -12852,27 +12987,31 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: source-map@~0.1.30: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= dependencies: amdefine ">=0.0.4" -space-separated-tokens@^1.0.0, space-separated-tokens@^1.1.2: +space-separated-tokens@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.4.tgz#27910835ae00d0adfcdbd0ad7e611fb9544351fa" spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -12880,6 +13019,7 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.5" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== spdy-transport@^3.0.0: version "3.0.0" @@ -12907,6 +13047,11 @@ splaytree@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/splaytree/-/splaytree-0.1.4.tgz#fc35475248edcc29d4938c9b67e43c6b7e55a659" +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -12920,6 +13065,7 @@ sprintf-js@~1.0.2: sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -12977,6 +13123,7 @@ static-extend@^0.1.1: stdout-stream@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== dependencies: readable-stream "^2.0.1" @@ -13016,6 +13163,11 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -13034,9 +13186,10 @@ string-template@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -13086,20 +13239,22 @@ string.prototype.padend@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" -string.prototype.trim@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" +string.prototype.trim@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" string.prototype.trimleft@^2.1.1: version "2.1.1" @@ -13109,13 +13264,6 @@ string.prototype.trimleft@^2.1.1: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - string.prototype.trimright@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" @@ -13124,12 +13272,27 @@ string.prototype.trimright@^2.1.1: define-properties "^1.1.3" function-bind "^1.1.1" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" dependencies: safe-buffer "~5.1.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -13137,13 +13300,15 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-entities@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" +stringify-entities@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0" + integrity sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ== dependencies: character-entities-html4 "^1.0.0" character-entities-legacy "^1.0.0" is-alphanumerical "^1.0.0" + is-decimal "^1.0.2" is-hexadecimal "^1.0.0" stringify-object@^3.3.0: @@ -13164,6 +13329,7 @@ strip-ansi@6.0.0, strip-ansi@^6.0.0: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" @@ -13188,6 +13354,7 @@ strip-ansi@~0.1.0: strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" @@ -13214,6 +13381,7 @@ strip-eof@^1.0.0: strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" @@ -13240,16 +13408,17 @@ style-loader@0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" -style-to-object@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.2.3.tgz#afcf42bc03846b1e311880c55632a26ad2780bcb" +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== dependencies: inline-style-parser "0.1.1" styled-components@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.1.0.tgz#2e3985b54f461027e1c91af3229e1c2530872a4e" - integrity sha512-0Qs2wEkFBXHFlysz6CV831VG6HedcrFUwChjnWylNivsx14MtmqQsohi21rMHZxzuTba063dEyoe/SR6VGJI7Q== + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.1.1.tgz#96dfb02a8025794960863b9e8e365e3b6be5518d" + integrity sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" @@ -13273,6 +13442,7 @@ stylehacks@^4.0.0: supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" @@ -13334,7 +13504,7 @@ svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.2.0: +symbol-observable@^1.0.4, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -13410,6 +13580,7 @@ tapable@^1.0.0, tapable@^1.1.3: tar@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== dependencies: block-stream "*" fstream "^1.0.12" @@ -13427,12 +13598,6 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.3" -terraformer@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.9.tgz#77851fef4a49c90b345dc53cf26809fdf29dcda6" - optionalDependencies: - "@types/geojson" "^1.0.0" - terser-webpack-plugin@2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" @@ -13542,6 +13707,11 @@ tiny-warning@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.2.tgz#1dfae771ee1a04396bdfde27a3adcebc6b648b28" +tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tinyqueue@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-1.2.3.tgz#b6a61de23060584da29f82362e45df1ec7353f3d" @@ -13563,6 +13733,7 @@ to-arraybuffer@^1.0.0: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" @@ -13596,25 +13767,19 @@ to-regex@^3.0.1, to-regex@^3.0.2: toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= toidentifier@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" dependencies: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -13628,6 +13793,7 @@ trim-lines@^1.0.0: trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= trim-newlines@^3.0.0: version "3.0.0" @@ -13637,6 +13803,7 @@ trim-newlines@^3.0.0: trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= trim-trailing-lines@^1.0.0: version "1.1.2" @@ -13653,6 +13820,7 @@ trough@^1.0.0: "true-case-path@^1.0.2": version "1.0.3" resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== dependencies: glob "^7.1.2" @@ -13695,12 +13863,14 @@ tty-browserify@0.0.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" @@ -13802,16 +13972,17 @@ unicode-property-aliases-ecmascript@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" -unified@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" +unified@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.0.0.tgz#12b099f97ee8b36792dbad13d278ee2f696eed1d" + integrity sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ== dependencies: bail "^1.0.0" extend "^3.0.0" - is-plain-obj "^1.1.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" + vfile "^4.0.0" union-value@^1.0.0: version "1.0.1" @@ -13842,33 +14013,35 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unist-builder@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17" - dependencies: - object-assign "^4.1.0" +unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== -unist-util-generated@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" +unist-util-generated@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" + integrity sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw== unist-util-is@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" +unist-util-is@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" + integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== + unist-util-position@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.0.3.tgz#fff942b879538b242096c148153826664b1ca373" -unist-util-remove-position@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz#d91aa8b89b30cb38bad2924da11072faa64fd972" +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + unist-util-visit "^2.0.0" unist-util-stringify-position@^2.0.0: version "2.0.3" @@ -13883,12 +14056,29 @@ unist-util-visit-parents@^2.0.0: dependencies: unist-util-is "^3.0.0" -unist-util-visit@^1.0.0, unist-util-visit@^1.1.0, unist-util-visit@^1.3.0, unist-util-visit@^1.4.0: +unist-util-visit-parents@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz#d4076af3011739c71d2ce99d05de37d545f4351d" + integrity sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" dependencies: unist-util-visit-parents "^2.0.0" +unist-util-visit@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.2.tgz#3843782a517de3d2357b4c193b24af2d9366afb7" + integrity sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -13924,6 +14114,7 @@ upper-case@^1.1.1: uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" @@ -14007,8 +14198,14 @@ uuid@^3.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz#6f1536eb43249f473abc6bd58ff983da1ca30d8d" + integrity sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg== v8-compile-cache@^2.0.3: version "2.1.0" @@ -14017,6 +14214,7 @@ v8-compile-cache@^2.0.3: validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -14051,9 +14249,10 @@ validate.io-number@^1.0.3: resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" integrity sha1-9j/+2iSL8opnqNSODjtGGhZluvg= -value-equal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== vary@~1.1.2: version "1.1.2" @@ -14066,20 +14265,16 @@ vendors@^1.0.0: verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.5.tgz#c83eb02f8040228a8d2b3f10e485be3e3433e0a2" - -vfile-message@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" - dependencies: - unist-util-stringify-position "^1.1.1" +vfile-location@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3" + integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ== vfile-message@^2.0.0: version "2.0.4" @@ -14111,15 +14306,6 @@ vfile-statistics@^1.1.0: resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - vfile@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.1.tgz#282d28cebb609183ac51703001bc18b3e3f17de9" @@ -14178,7 +14364,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.1, warning@^4.0.2, warning@^4.0.3: +warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" dependencies: @@ -14198,9 +14384,10 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-namespaces@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.3.tgz#9bbf5c99ff0908d2da031f1d732492a96571a83f" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== webidl-conversions@^4.0.2: version "4.0.2" @@ -14364,10 +14551,6 @@ when@^3.7.8: version "3.7.8" resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -14388,6 +14571,7 @@ which@^2.0.1: wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" @@ -14396,14 +14580,15 @@ word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - workbox-background-sync@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" @@ -14538,6 +14723,7 @@ worker-rpc@^0.1.0: wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -14562,6 +14748,7 @@ wrap-ansi@^6.2.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@2.4.1: version "2.4.1" @@ -14615,7 +14802,7 @@ x-is-array@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-array/-/x-is-array-0.1.0.tgz#de520171d47b3f416f5587d629b89d26b12dc29d" -x-is-string@0.1.0, x-is-string@^0.1.0: +x-is-string@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -14650,10 +14837,6 @@ xtend@^4.0.1, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -14696,6 +14879,14 @@ yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^16.1.0: version "16.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" @@ -14712,12 +14903,6 @@ yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -14750,6 +14935,22 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yargs@^15.0.2: version "15.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" @@ -14767,24 +14968,6 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^16.1.0" -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - zen-observable@^0.8.14: version "0.8.15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" From 9f9e67330540a13dcc1bafeebbd6fc2ab9204206 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Thu, 18 Jun 2020 14:33:40 -0700 Subject: [PATCH 19/29] Switch from react-table to react-table-6 * Switching to react-table-6 makes it possible to integrate v7 (the current react-table) in stages over time --- package.json | 2 +- .../ChallengeAnalysisTable/ChallengeAnalysisTable.js | 2 +- src/components/TaskAnalysisTable/TaskAnalysisTable.js | 3 +-- src/pages/Inbox/Inbox.js | 2 +- src/pages/Review/TasksReview/TasksReviewTable.js | 2 +- src/styles/vendor/react-table.css | 2 +- yarn.lock | 7 ++++--- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 2ee5ca051..bf8db3bbb 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "react-scripts": "3.4.1", "react-share": "^4.2.0", "react-syntax-highlighter": "^12.2.1", - "react-table": "^6.7.6", + "react-table-6": "^6.11.0", "react-tagsinput": "^3.19.0", "redux": "^4.0.5", "redux-thunk": "^2.2.0", diff --git a/src/components/AdminPane/Manage/ChallengeAnalysisTable/ChallengeAnalysisTable.js b/src/components/AdminPane/Manage/ChallengeAnalysisTable/ChallengeAnalysisTable.js index e72231224..d04c5e583 100644 --- a/src/components/AdminPane/Manage/ChallengeAnalysisTable/ChallengeAnalysisTable.js +++ b/src/components/AdminPane/Manage/ChallengeAnalysisTable/ChallengeAnalysisTable.js @@ -1,6 +1,6 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import ReactTable from 'react-table' +import ReactTable from 'react-table-6' import { FormattedMessage, FormattedDate, injectIntl } from 'react-intl' import { Link } from 'react-router-dom' import _isEmpty from 'lodash/isEmpty' diff --git a/src/components/TaskAnalysisTable/TaskAnalysisTable.js b/src/components/TaskAnalysisTable/TaskAnalysisTable.js index f4fcdfa55..4ab053636 100644 --- a/src/components/TaskAnalysisTable/TaskAnalysisTable.js +++ b/src/components/TaskAnalysisTable/TaskAnalysisTable.js @@ -1,6 +1,6 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' -import ReactTable from 'react-table' +import ReactTable from 'react-table-6' import { FormattedMessage, FormattedDate, FormattedTime, injectIntl } from 'react-intl' import { Link } from 'react-router-dom' @@ -46,7 +46,6 @@ import ConfigureColumnsModal import InTableTagFilter from '../../components/KeywordAutosuggestInput/InTableTagFilter' import messages from './Messages' -import 'react-table/react-table.css' import './TaskAnalysisTable.scss' import TaskAnalysisTableHeader from './TaskAnalysisTableHeader' import { ViewCommentsButton, StatusLabel, makeInvertable } diff --git a/src/pages/Inbox/Inbox.js b/src/pages/Inbox/Inbox.js index 7fc5d5e3a..23207c990 100644 --- a/src/pages/Inbox/Inbox.js +++ b/src/pages/Inbox/Inbox.js @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import ReactTable from 'react-table' +import ReactTable from 'react-table-6' import classNames from 'classnames' import Fuse from 'fuse.js' import { FormattedMessage, FormattedDate, FormattedTime, injectIntl } diff --git a/src/pages/Review/TasksReview/TasksReviewTable.js b/src/pages/Review/TasksReview/TasksReviewTable.js index 66197b461..5140dbf5b 100644 --- a/src/pages/Review/TasksReview/TasksReviewTable.js +++ b/src/pages/Review/TasksReview/TasksReviewTable.js @@ -39,7 +39,7 @@ import messages from './Messages' import { ViewCommentsButton, StatusLabel, makeInvertable } from '../../../components/TaskAnalysisTable/TaskTableHelpers' import { Link } from 'react-router-dom' -import ReactTable from 'react-table' +import ReactTable from 'react-table-6' /** diff --git a/src/styles/vendor/react-table.css b/src/styles/vendor/react-table.css index 7ff7d9432..b2bb9147f 100644 --- a/src/styles/vendor/react-table.css +++ b/src/styles/vendor/react-table.css @@ -1,4 +1,4 @@ -@import 'react-table/react-table'; +@import 'react-table-6/react-table'; .ReactTable { @apply mr-border-none mr-text-white; diff --git a/yarn.lock b/yarn.lock index 4ba017c2d..45bcdb342 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11768,9 +11768,10 @@ react-syntax-highlighter@^12.2.1: prismjs "^1.8.4" refractor "^2.4.1" -react-table@^6.7.6: - version "6.10.3" - resolved "https://registry.yarnpkg.com/react-table/-/react-table-6.10.3.tgz#d085487a5a1b18b76486b71cf1d388d87c8c7362" +react-table-6@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/react-table-6/-/react-table-6-6.11.0.tgz#727de5d9f0357a35816a1bbc2e9c9868f8c5b2c4" + integrity sha512-zO24J+1Qg2AHxtSNMfHeGW1dxFcmLJQrAeLJyCAENdNdwJt+YolDDtJEBdZlukon7rZeAdB3d5gUH6eb9Dn5Ug== dependencies: classnames "^2.2.5" From a3a2ecd4a6f769189386f2792db715c79d915457 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Fri, 19 Jun 2020 10:07:21 -0700 Subject: [PATCH 20/29] Convert Inbox to function component with hooks * Prepare inbox for upgrade to react-table v7 by converting to functional component * Extract Inbox methods into NotificationHooks --- src/pages/Inbox/Inbox.js | 355 +++++++++++---------------- src/pages/Inbox/NotificationHooks.js | 114 +++++++++ 2 files changed, 259 insertions(+), 210 deletions(-) create mode 100644 src/pages/Inbox/NotificationHooks.js diff --git a/src/pages/Inbox/Inbox.js b/src/pages/Inbox/Inbox.js index 23207c990..02844696f 100644 --- a/src/pages/Inbox/Inbox.js +++ b/src/pages/Inbox/Inbox.js @@ -1,4 +1,4 @@ -import React, { Component } from 'react' +import React, { useCallback } from 'react' import ReactTable from 'react-table-6' import classNames from 'classnames' import Fuse from 'fuse.js' @@ -6,13 +6,10 @@ import { FormattedMessage, FormattedDate, FormattedTime, injectIntl } from 'react-intl' import _get from 'lodash/get' import _each from 'lodash/each' -import _find from 'lodash/find' -import _groupBy from 'lodash/groupBy' import _remove from 'lodash/remove' import _reject from 'lodash/reject' import _map from 'lodash/map' import _kebabCase from 'lodash/kebabCase' -import _isArray from 'lodash/isArray' import WithCurrentUser from '../../components/HOCs/WithCurrentUser/WithCurrentUser' import WithUserNotifications @@ -24,230 +21,168 @@ import BusySpinner from '../../components/BusySpinner/BusySpinner' import TriStateCheckbox from '../../components/Bulma/TriStateCheckbox' import HeaderNotifications from './HeaderNotifications' import Notification from './Notification' +import { useNotificationSelection, useNotificationDisplay } + from './NotificationHooks' import messages from './Messages' -class Inbox extends Component { - visibleNotifications = [] // Outside of state - - state = { - groupByTask: true, - selectedNotifications: new Set(), - openNotification: null, - } - - toggleGroupByTask = () => { - this.setState({groupByTask: !this.state.groupByTask}) - } - - toggleNotificationSelection = (notification, thread) => { - const targetNotifications = _isArray(thread) ? thread : [notification] - if (this.allNotificationsInThreadSelected(targetNotifications)) { - _each(targetNotifications, - target => this.state.selectedNotifications.delete(target.id)) - } - else { - _each(targetNotifications, - target => this.state.selectedNotifications.add(target.id)) - } - - this.setState({selectedNotifications: this.state.selectedNotifications}) - } - - toggleVisibleNotificationsSelected = threads => { - // Base toggle behavior on selection state of visible notifications only - if (this.hasUnselectedVisibleNotifications()) { - this.selectAllVisible(threads) - } - else if (this.state.selectedNotifications.size > 0) { - this.deselectAll() - } - } - - hasUnselectedVisibleNotifications = () => { - return !!_find(this.visibleNotifications, - notification => !this.state.selectedNotifications.has(notification._original.id)) - } - - allVisibleNotificationsSelected = () => { - return this.visibleNotifications.length > 0 && - !this.hasUnselectedVisibleNotifications() - } - - anyNotificationInThreadSelected = thread => { - return !!_find(thread, - notification => this.state.selectedNotifications.has(notification.id)) - } - - allNotificationsInThreadSelected = thread => { - return !_find(thread, - notification => !this.state.selectedNotifications.has(notification.id)) - } - - selectAllVisible = threads => { - // Deselect non-visible notifications to avoid inadvertent deletion - this.state.selectedNotifications.clear() - - _each(this.visibleNotifications, notification => { - // select whole thread if appropriate - if (this.state.groupByTask) { - _each(threads[notification._original.taskId], - n => this.state.selectedNotifications.add(n.id)) +const Inbox = props => { + const { user, notifications, markNotificationsRead, deleteNotifications } = props + + const { + groupByTask, + selectedNotifications, + deselectAll, + allNotificationsSelected, + allNotificationsInThreadSelected, + toggleNotificationSelection, + toggleNotificationsSelected, + anyNotificationInThreadSelected, + toggleGroupByTask, + threads, + } = useNotificationSelection(notifications) + + const { + openNotification, + displayNotification, + closeNotification, + } = useNotificationDisplay() + + const readNotification = useCallback( + (notification, thread) => { + displayNotification(notification) + + if (thread) { + const unread = _reject(thread, {isRead: true}) + if (unread.length > 0) { + markNotificationsRead(user.id, _map(unread, 'id')) + } } - else { - this.state.selectedNotifications.add(notification._original.id) + else if (!notification.isRead) { + markNotificationsRead(user.id, [notification.id]) } - }) - this.setState({selectedNotifications: this.state.selectedNotifications}) - } - - deselectAll = () => { - this.state.selectedNotifications.clear() - this.setState({selectedNotifications: this.state.selectedNotifications}) - } - - readNotification = (notification, thread) => { - this.setState({openNotification: notification}) + }, + [displayNotification, markNotificationsRead, user] + ) - if (thread) { - const unread = _reject(thread, {isRead: true}) - if (unread.length > 0) { - this.props.markNotificationsRead(this.props.user.id, _map(unread, 'id')) + const markReadSelected = useCallback( + () => { + if (selectedNotifications.size > 0) { + markNotificationsRead(user.id, [...selectedNotifications.values()]) + deselectAll() } - } - else if (!notification.isRead) { - this.props.markNotificationsRead(this.props.user.id, [notification.id]) - } - } - - closeNotification = notification => { - if (notification === this.state.openNotification) { - this.setState({openNotification: null}) - } - } - - markReadSelected = () => { - if (this.state.selectedNotifications.size > 0) { - this.props.markNotificationsRead(this.props.user.id, - [...this.state.selectedNotifications.values()]) - this.deselectAll() - } - } - - deleteNotification = notification => { - this.props.deleteNotifications(this.props.user.id, [notification.id]) - this.closeNotification(notification) - - // Remove from selection map if needed - if (this.state.selectedNotifications.has(notification.id)) { - this.state.selectedNotifications.delete(notification.id) - this.setState({selectedNotifications: this.state.selectedNotifications}) - } - } - - deleteSelected = () => { - if (this.state.selectedNotifications.size > 0) { - this.props.deleteNotifications(this.props.user.id, - [...this.state.selectedNotifications.values()]) - this.deselectAll() - } - } + }, + [selectedNotifications, markNotificationsRead, deselectAll, user] + ) - render() { - if (!this.props.user) { - return ( -
    - {this.props.checkingLoginStatus ? - : - - } -
    - ) - } + const deleteNotification = useCallback( + notification => { + deleteNotifications(user.id, [notification.id]) + closeNotification(notification) + }, + [user, deleteNotifications, closeNotification] + ) - const threads = - this.state.groupByTask ? _groupBy(this.props.notifications, 'taskId') : {} + const deleteSelected = useCallback( + () => { + if (selectedNotifications.size > 0) { + deleteNotifications(user.id, [...selectedNotifications.values()]) + deselectAll() + } + }, + [user, selectedNotifications, deleteNotifications, deselectAll] + ) + if (!user) { return ( -
    -
    - - - } - loading={this.props.notificationsLoading} - getTrProps={(state, rowInfo, column) => { - const styles = {} - if (!_get(rowInfo, 'row._original.isRead', false)) { - styles.fontWeight = 700 - } - return {style: styles} - }} - > - {(state, makeTable, instance) => { - // Keep track of the visible rows (all pages) so bulk-selection is accurate - this.visibleNotifications = this.state.groupByTask ? threaded(state.sortedData) : - state.sortedData - - if (this.state.groupByTask) { - // We need to modify the table's internal array, we can't replace it - state.pageRows.length = 0 - state.pageRows.push(...this.visibleNotifications.slice(state.startRow, state.endRow)) - } - - return makeTable() - }} - -
    - - {this.state.openNotification && - +
    + {props.checkingLoginStatus ? + : + }
    ) } + + return ( +
    +
    + + + } + loading={props.notificationsLoading} + getTrProps={(state, rowInfo, column) => { + const styles = {} + if (!_get(rowInfo, 'row._original.isRead', false)) { + styles.fontWeight = 700 + } + return {style: styles} + }} + > + {(state, makeTable, instance) => { + if (groupByTask) { + const groupedNotifications = threaded(state.sortedData) + // We need to modify the table's internal array, we can't replace it + state.pageRows.length = 0 + state.pageRows.push(...groupedNotifications.slice(state.startRow, state.endRow)) + } + + return makeTable() + }} + +
    + + {openNotification && + + } +
    + ) } const columns = tableProps => [{ id: 'selected', - Header: () => ( - tableProps.toggleVisibleNotificationsSelected(tableProps.threads)} - /> - ), + Header: () => { + return ( + 0 && !tableProps.allNotificationsSelected + } + onChange={() => tableProps.toggleNotificationsSelected()} + /> + ) + }, accessor: notification => { return tableProps.groupByTask ? tableProps.anyNotificationInThreadSelected(tableProps.threads[notification.taskId]) : diff --git a/src/pages/Inbox/NotificationHooks.js b/src/pages/Inbox/NotificationHooks.js new file mode 100644 index 000000000..dd9cfd831 --- /dev/null +++ b/src/pages/Inbox/NotificationHooks.js @@ -0,0 +1,114 @@ +import { useState, useCallback, useMemo } from 'react' +import _each from 'lodash/each' +import _find from 'lodash/find' +import _groupBy from 'lodash/groupBy' +import _map from 'lodash/map' +import _isArray from 'lodash/isArray' + +export const useNotificationSelection = notifications => { + const [groupByTask, setGroupByTask] = useState(true) + const [selectedNotifications, setSelectedNotifications] = useState(new Set()) + + const selectAll = useCallback( + () => setSelectedNotifications(new Set(_map(notifications, 'id'))), + [setSelectedNotifications, notifications] + ) + + const deselectAll = useCallback( + () => setSelectedNotifications(new Set()), + [setSelectedNotifications] + ) + + const allNotificationsSelected = useMemo( + () => ( + selectedNotifications.size > 0 && + selectedNotifications.size === notifications.length + ), + [selectedNotifications, notifications] + ) + + const allNotificationsInThreadSelected = useCallback( + thread => !_find( + thread, + notification => !selectedNotifications.has(notification.id) + ), + [selectedNotifications] + ) + + const toggleNotificationSelection = useCallback( + (notification, thread) => { + const targetNotifications = _isArray(thread) ? thread : [notification] + const updatedSelections = new Set(selectedNotifications) + if (allNotificationsInThreadSelected(targetNotifications)) { + _each(targetNotifications, target => updatedSelections.delete(target.id)) + } + else { + _each(targetNotifications, target => updatedSelections.add(target.id)) + } + + setSelectedNotifications(updatedSelections) + }, + [selectedNotifications, allNotificationsInThreadSelected] + ) + + const toggleNotificationsSelected = useCallback( + threads => allNotificationsSelected ? deselectAll() : selectAll(), + [allNotificationsSelected, selectAll, deselectAll] + ) + + const anyNotificationInThreadSelected = useCallback( + thread => !!_find( + thread, + notification => selectedNotifications.has(notification.id) + ), + [selectedNotifications] + ) + + const toggleGroupByTask = useCallback( + () => setGroupByTask(groupByTask => !groupByTask), + [] + ) + + const threads = useMemo( + () => groupByTask ? _groupBy(notifications, 'taskId') : {}, + [groupByTask, notifications] + ) + + return { + groupByTask, + selectedNotifications, + selectAll, + deselectAll, + allNotificationsSelected, + allNotificationsInThreadSelected, + toggleNotificationSelection, + toggleNotificationsSelected, + anyNotificationInThreadSelected, + toggleGroupByTask, + threads, + } +} + +export const useNotificationDisplay = () => { + const [openNotification, setOpenNotification] = useState(null) + + const displayNotification = useCallback( + notification => setOpenNotification(notification), + [setOpenNotification] + ) + + const closeNotification = useCallback( + notification => { + if (notification === openNotification) { + setOpenNotification(null) + } + }, + [openNotification, setOpenNotification] + ) + + return { + openNotification, + displayNotification, + closeNotification, + } +} From ff9f047369a5ac0a187efd0435177fafce22d8b7 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 23 Jun 2020 07:54:06 -0700 Subject: [PATCH 21/29] Fix deprecation warnings from react * Replace lingering `componentWillReceiveProps` with `componentDidUpdate` and `componentWillMount` with `componentDidMount` * Perform state update in WithStartChallenge before transitioning to new page to fix memory-leak warning --- package.json | 2 +- .../HOCs/WithCurrentProject/WithCurrentProject.js | 13 ++++++------- .../WithConfigurableColumns.js | 2 +- .../HOCs/WithCurrentTask/WithCurrentTask.js | 8 ++++---- .../HOCs/WithLoadedTask/WithLoadedTask.js | 6 +++--- src/components/HOCs/WithProject/WithProject.js | 6 +++--- .../HOCs/WithStartChallenge/WithStartChallenge.js | 5 ++--- .../WithVirtualChallenge/WithVirtualChallenge.js | 6 +++--- yarn.lock | 8 ++++---- 9 files changed, 27 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index bf8db3bbb..7db91ef96 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "3.6.4", "private": true, "dependencies": { - "@apollo/client": "3.0.0-rc.6", + "@apollo/client": "3.0.0-rc.7", "@mapbox/geo-viewport": "^0.4.0", "@mapbox/geojsonhint": "^3.0.0", "@nivo/bar": "^0.62.0", diff --git a/src/components/AdminPane/HOCs/WithCurrentProject/WithCurrentProject.js b/src/components/AdminPane/HOCs/WithCurrentProject/WithCurrentProject.js index 41b3c0561..11eb1596f 100644 --- a/src/components/AdminPane/HOCs/WithCurrentProject/WithCurrentProject.js +++ b/src/components/AdminPane/HOCs/WithCurrentProject/WithCurrentProject.js @@ -189,17 +189,16 @@ const WithCurrentProject = function(WrappedComponent, options={}) { this.loadProject(this.props) } - componentWillReceiveProps(nextProps) { - if (this.props.loadingProjects && !nextProps.loadingProjects) { - this.loadProject(nextProps) + componentDidUpdate(prevProps) { + if (prevProps.loadingProjects && !this.props.loadingProjects) { + this.loadProject(this.props) return } - const nextProjectId = this.currentProjectId(nextProps) - + const nextProjectId = this.currentProjectId(this.props) if ( _isFinite(nextProjectId) && - nextProjectId !== this.currentProjectId(this.props)) { - this.loadProject(nextProps) + nextProjectId !== this.currentProjectId(prevProps)) { + this.loadProject(this.props) } } diff --git a/src/components/HOCs/WithConfigurableColumns/WithConfigurableColumns.js b/src/components/HOCs/WithConfigurableColumns/WithConfigurableColumns.js index fce4df1ba..6bff69d59 100644 --- a/src/components/HOCs/WithConfigurableColumns/WithConfigurableColumns.js +++ b/src/components/HOCs/WithConfigurableColumns/WithConfigurableColumns.js @@ -24,7 +24,7 @@ export default function(WrappedComponent, defaultAllColumns, defaultShowColumns= addedColumns: null, // Columns to be shown. } - componentWillMount() { + componentDidMount() { this.resetColumnChoices(defaultAllColumns, defaultShowColumns) } diff --git a/src/components/HOCs/WithCurrentTask/WithCurrentTask.js b/src/components/HOCs/WithCurrentTask/WithCurrentTask.js index 75f0279ac..12900505d 100644 --- a/src/components/HOCs/WithCurrentTask/WithCurrentTask.js +++ b/src/components/HOCs/WithCurrentTask/WithCurrentTask.js @@ -74,11 +74,11 @@ const WithLoadedTask = function(WrappedComponent, forReview) { this.loadNeededTask(this.props) } - componentWillReceiveProps(nextProps) { - if (nextProps.taskId !== this.props.taskId) { + componentDidUpdate(prevProps) { + if (this.props.taskId !== prevProps.taskId) { // Only fetch if task data is missing or stale - if (!nextProps.task || isStale(nextProps.task, TASK_STALE)) { - this.loadNeededTask(nextProps) + if (!this.props.task || isStale(this.props.task, TASK_STALE)) { + this.loadNeededTask(this.props) } } } diff --git a/src/components/HOCs/WithLoadedTask/WithLoadedTask.js b/src/components/HOCs/WithLoadedTask/WithLoadedTask.js index dd111f067..f8cee3858 100644 --- a/src/components/HOCs/WithLoadedTask/WithLoadedTask.js +++ b/src/components/HOCs/WithLoadedTask/WithLoadedTask.js @@ -41,9 +41,9 @@ const WithLoadedTask = function(WrappedComponent) { this.retrieveTask(this.props) } - componentWillReceiveProps(nextProps) { - if (this.parseTaskId(nextProps) !== this.parseTaskId(this.props)) { - this.retrieveTask(nextProps) + componentDidUpdate(prevProps) { + if (this.parseTaskId(this.props) !== this.parseTaskId(prevProps)) { + this.retrieveTask(this.props) } } diff --git a/src/components/HOCs/WithProject/WithProject.js b/src/components/HOCs/WithProject/WithProject.js index 367474700..602279324 100644 --- a/src/components/HOCs/WithProject/WithProject.js +++ b/src/components/HOCs/WithProject/WithProject.js @@ -74,12 +74,12 @@ const WithProject = function(WrappedComponent, options={}) { } } - componentWillMount() { + componentDidMount() { this.loadProject(this.props) } - componentWillReceiveProps(nextProps) { - this.loadProject(nextProps) + componentDidUpdate() { + this.loadProject(this.props) } render() { diff --git a/src/components/HOCs/WithStartChallenge/WithStartChallenge.js b/src/components/HOCs/WithStartChallenge/WithStartChallenge.js index 47b76a7e7..46cd468f2 100644 --- a/src/components/HOCs/WithStartChallenge/WithStartChallenge.js +++ b/src/components/HOCs/WithStartChallenge/WithStartChallenge.js @@ -120,16 +120,15 @@ export const mapDispatchToProps = (dispatch, ownProps) => ({ _get(ownProps, 'mapBounds'), ownProps.clusteredTasks) if (visibleTask) { - openTask(dispatch, challenge, visibleTask, ownProps.history) ownProps.setActive(false) + openTask(dispatch, challenge, visibleTask, ownProps.history) window.scrollTo(0, 0) } else { dispatch(loadRandomTaskFromChallenge(challenge.id)).then(task => { + ownProps.setActive(false) openTask(dispatch, challenge, task, ownProps.history) - }).then(() => { window.scrollTo(0, 0) - ownProps.setActive(false) }).catch(() => { dispatch(addError(AppErrors.task.fetchFailure)) ownProps.setActive(false) diff --git a/src/components/HOCs/WithVirtualChallenge/WithVirtualChallenge.js b/src/components/HOCs/WithVirtualChallenge/WithVirtualChallenge.js index df9aaeaf2..528c23196 100644 --- a/src/components/HOCs/WithVirtualChallenge/WithVirtualChallenge.js +++ b/src/components/HOCs/WithVirtualChallenge/WithVirtualChallenge.js @@ -32,9 +32,9 @@ const WithLoadedVirtualChallenge = function(WrappedComponent) { this.loadNeededVirtualChallenge(this.props) } - componentWillReceiveProps(nextProps) { - if (nextProps.virtualChallengeId !== this.props.virtualChallengeId) { - this.loadNeededVirtualChallenge(nextProps) + componentDidUpdate(prevProps) { + if (this.props.virtualChallengeId !== prevProps.virtualChallengeId) { + this.loadNeededVirtualChallenge(this.props) } } diff --git a/yarn.lock b/yarn.lock index 45bcdb342..158f9fbd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apollo/client@3.0.0-rc.6": - version "3.0.0-rc.6" - resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-rc.6.tgz#8bd8de57d7b025ac40d3141fbab383971907b617" - integrity sha512-nHEJ8K8SoaP8mJaPwuREdSc1FY25fIL7yAGyjb3cKTCnEV4cT6fZQg/+aJyKpX7fuqsyxZIKoAWS8Q3WdcGSJg== +"@apollo/client@3.0.0-rc.7": + version "3.0.0-rc.7" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.0.0-rc.7.tgz#f57b297bd92f06c9bb6a8e0ec71ddfdd3fc2fca0" + integrity sha512-pS68924tMZFBlC+Rbqy9rMqvqNHNKL2Jx/lw45aSCclpmk7GuIEFZCXAZihKG3PRYVZGG8p7DTQrdfC8XH51/w== dependencies: "@types/zen-observable" "^0.8.0" "@wry/equality" "^0.1.9" From 879cbc1453156271f04c32f3fe730238e6be5ebf Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 23 Jun 2020 08:30:30 -0700 Subject: [PATCH 22/29] Upgrade to node v12 --- .nvmrc | 2 +- .travis.yml | 3 +- README.md | 2 +- .../HOCs/WithCurrentTask/WithCurrentTask.js | 6 ++-- .../WithCurrentTask/WithCurrentTask.test.js | 31 +++++++++++++++++-- src/lang/en-US.json | 3 +- 6 files changed, 37 insertions(+), 10 deletions(-) diff --git a/.nvmrc b/.nvmrc index 571500f8d..48082f72f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -nvm use 10 +12 diff --git a/.travis.yml b/.travis.yml index 57c31e3e1..2716afeb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,8 @@ language: node_js sudo: false node_js: - - "10" + - 10 + - 12 env: - NODE_OPTIONS="--max-old-space-size=4096" cache: diff --git a/README.md b/README.md index 5d36b3e47..ab60d5768 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ not use the production server for development purposes.** ### Basic Dependencies: -* [Node 10 LTS](https://nodejs.org/) +* [Node 12 LTS](https://nodejs.org/) * [yarn](https://yarnpkg.com/) * [jq](https://stedolan.github.io/jq/) * [curl](https://curl.haxx.se/) diff --git a/src/components/HOCs/WithCurrentTask/WithCurrentTask.js b/src/components/HOCs/WithCurrentTask/WithCurrentTask.js index 12900505d..64abab0a7 100644 --- a/src/components/HOCs/WithCurrentTask/WithCurrentTask.js +++ b/src/components/HOCs/WithCurrentTask/WithCurrentTask.js @@ -178,7 +178,7 @@ export const mapDispatchToProps = (dispatch, ownProps) => { nextRequestedTask(dispatch, ownProps, requestedNextTask) : nextRandomTask(dispatch, ownProps, taskId, taskLoadBy) - loadNextTask.then(newTask => + return loadNextTask.then(newTask => visitNewTask(dispatch, ownProps, taskId, newTask) ).catch(error => { ownProps.history.push(`/browse/challenges/${challengeId}`) @@ -359,16 +359,18 @@ export const visitNewTask = function(dispatch, props, currentTaskId, newTask) { const challengeId = challengeIdFromRoute(props, props.challengeId) props.history.push(`/challenge/${challengeId}/task/${newTask.id}`) } + return Promise.resolve() } else { // If challenge is complete, redirect home with note to congratulate user if (_isFinite(props.virtualChallengeId)) { // We don't get a status for virtual challenges, so just assume we're done props.history.push('/browse/challenges', {congratulate: true, warn: false}) + return Promise.resolve() } else { const challengeId = challengeIdFromRoute(props, props.challengeId) - dispatch(fetchChallenge(challengeId)).then( normalizedResults => { + return dispatch(fetchChallenge(challengeId)).then(normalizedResults => { const challenge = normalizedResults.entities.challenges[normalizedResults.result] if (challenge.status === CHALLENGE_STATUS_FINISHED) { props.history.push('/browse/challenges', {congratulate: true, warn: false}) diff --git a/src/components/HOCs/WithCurrentTask/WithCurrentTask.test.js b/src/components/HOCs/WithCurrentTask/WithCurrentTask.test.js index ce515db77..bd8e4b029 100644 --- a/src/components/HOCs/WithCurrentTask/WithCurrentTask.test.js +++ b/src/components/HOCs/WithCurrentTask/WithCurrentTask.test.js @@ -10,7 +10,10 @@ import { taskDenormalizationSchema, completeTask } from '../../../services/Task/Task' import { TaskLoadMethod } from '../../../services/Task/TaskLoadMethod/TaskLoadMethod' -import { fetchChallengeActions } from '../../../services/Challenge/Challenge' +import { fetchChallengeActions, fetchChallenge } + from '../../../services/Challenge/Challenge' +import { CHALLENGE_STATUS_READY, CHALLENGE_STATUS_FINISHED } + from '../../../services/Challenge/ChallengeStatus/ChallengeStatus' jest.mock('normalizr') jest.mock('../../../services/Task/Task') @@ -194,6 +197,17 @@ test("completeTask routes the user to challenge page if the next task isn't new" completeTask.mockReturnValueOnce(Promise.resolve()) loadRandomTaskFromChallenge.mockReturnValueOnce(Promise.resolve(nextTask)) + fetchChallenge.mockReturnValueOnce(Promise.resolve({ + entities: { + challenges: { + "123": { + id: 123, + status: CHALLENGE_STATUS_READY, + } + }, + }, + result: "123", + })) const dispatch = jest.fn(value => value) const history = { push: jest.fn(), @@ -202,12 +216,23 @@ test("completeTask routes the user to challenge page if the next task isn't new" const mappedProps = mapDispatchToProps(dispatch, {history}) await mappedProps.completeTask(task, challenge.id, completionStatus, null, null, TaskLoadMethod.random) - expect(history.push).toBeCalledWith(`/browse/challenges/${challenge.id}`) + expect(history.push).toHaveBeenCalledWith('/browse/challenges', {warn: true, congratulate: false}) }) test("completeTask routes the user to challenge page if there is no next task", async () => { completeTask.mockReturnValueOnce(Promise.resolve()) loadRandomTaskFromChallenge.mockReturnValueOnce(Promise.resolve(null)) + fetchChallenge.mockReturnValueOnce(Promise.resolve({ + entities: { + challenges: { + "123": { + id: 123, + status: CHALLENGE_STATUS_READY, + } + }, + }, + result: "123", + })) const dispatch = jest.fn(value => value) const history = { push: jest.fn(), @@ -216,5 +241,5 @@ test("completeTask routes the user to challenge page if there is no next task", const mappedProps = mapDispatchToProps(dispatch, {history}) await mappedProps.completeTask(task, challenge.id, completionStatus, null, null, TaskLoadMethod.random) - expect(history.push).toBeCalledWith(`/browse/challenges/${challenge.id}`) + expect(history.push).toHaveBeenCalledWith('/browse/challenges', {warn: true, congratulate: false}) }) diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 48943cf66..8e6bf6c9b 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -146,7 +146,7 @@ "Admin.EditChallenge.form.step1.label": "General", "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", "Admin.EditChallenge.form.step2.label": "GeoJSON Source", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you’ve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorities", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", "Admin.EditChallenge.form.step4.label": "Extra", @@ -849,7 +849,6 @@ "Metrics.reviewedTasksTitle": "Review Status", "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", "Metrics.userOptedOut": "This user has opted out of public display of their stats.", "Metrics.userSince": "User since:", From 8372905d629083d4691760d18409a9fca7a7aee6 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 23 Jun 2020 10:36:04 -0700 Subject: [PATCH 23/29] Various fixes to project details page * Load new project if project id changes * Don't show project results in list of challenges * Fix erroneous hover behavior on remaining-challenges label --- .../ChallengeResultList.js | 45 ++++++++++++------- .../HOCs/WithProject/WithProject.js | 34 +++++++------- src/components/ProjectDetail/ProjectDetail.js | 25 ++++++----- 3 files changed, 60 insertions(+), 44 deletions(-) diff --git a/src/components/ChallengePane/ChallengeResultList/ChallengeResultList.js b/src/components/ChallengePane/ChallengeResultList/ChallengeResultList.js index 42538d8b1..4b8db00d4 100644 --- a/src/components/ChallengePane/ChallengeResultList/ChallengeResultList.js +++ b/src/components/ChallengePane/ChallengeResultList/ChallengeResultList.js @@ -2,6 +2,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import _get from 'lodash/get' import _map from 'lodash/map' +import _compact from 'lodash/compact' import _clone from 'lodash/clone' import _findIndex from 'lodash/findIndex' import _isObject from 'lodash/isObject' @@ -139,23 +140,33 @@ export class ChallengeResultList extends Component { ) } } else { - results = _map(challengeResults, result => - result.parent ? - : - - ) + results = _compact(_map(challengeResults, result => { + if (result.parent) { + return ( + + ) + } + else if (!this.props.excludeProjectResults) { + return ( + + ) + } + else { + return null + } + })) } return ( diff --git a/src/components/HOCs/WithProject/WithProject.js b/src/components/HOCs/WithProject/WithProject.js index 602279324..f2e69e8e2 100644 --- a/src/components/HOCs/WithProject/WithProject.js +++ b/src/components/HOCs/WithProject/WithProject.js @@ -32,24 +32,24 @@ const WithProject = function(WrappedComponent, options={}) { currentProjectId = props => parseInt(_get(props, 'match.params.projectId'), 10) - challengeProjects = (projectId, props) => { - const allChallenges = _values(_get(this.props, 'entities.challenges', {})) - return _filter(allChallenges, (challenge) => { - const matchingVP = - _find(challenge.virtualParents, (vp) => { - return (_isObject(vp) ? vp.id === projectId : vp === projectId) - }) - - return ((challenge.parent === projectId || matchingVP) - && challenge.enabled - && isUsableChallengeStatus(challenge.status)) - }) - } + challengeProjects = (projectId, props) => { + const allChallenges = _values(_get(this.props, 'entities.challenges', {})) + return _filter(allChallenges, (challenge) => { + const matchingVP = + _find(challenge.virtualParents, (vp) => { + return (_isObject(vp) ? vp.id === projectId : vp === projectId) + }) + + return ((challenge.parent === projectId || matchingVP) + && challenge.enabled + && isUsableChallengeStatus(challenge.status)) + }) + } loadProject = props => { const projectId = this.currentProjectId(props) - if (_isFinite(projectId) && !this.state.project) { + if (_isFinite(projectId)) { this.setState({ loadingChallenges: options.includeChallenges, }) @@ -78,8 +78,10 @@ const WithProject = function(WrappedComponent, options={}) { this.loadProject(this.props) } - componentDidUpdate() { - this.loadProject(this.props) + componentDidUpdate(prevProps) { + if (this.currentProjectId(this.props) !== this.currentProjectId(prevProps)) { + this.loadProject(this.props) + } } render() { diff --git a/src/components/ProjectDetail/ProjectDetail.js b/src/components/ProjectDetail/ProjectDetail.js index 8fddebd8f..5b7a6935c 100644 --- a/src/components/ProjectDetail/ProjectDetail.js +++ b/src/components/ProjectDetail/ProjectDetail.js @@ -54,21 +54,24 @@ export class ProjectDetail extends Component {
    {!this.props.loadingChallenges &&
    -
    - +
    +
    + unfilteredChallenges={this.props.challenges} + excludeProjectResults + excludeProjectId={this.props.project.id} + {...this.props} + />
    } - {this.props.loadingChallenges && - - } + {this.props.loadingChallenges && }
    From 29a7e7ae5f4a64be6e873b48dc1054561d5b8128 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Tue, 23 Jun 2020 13:59:17 -0700 Subject: [PATCH 24/29] Inform user if logged out when trying to lock task * If user fails to lock a task because they are logged out, inform them of that and prompt them to sign in, rather than continuing to offer to try locking the task again * Fixes #1233 --- .../HOCs/WithLockedTask/WithLockedTask.js | 2 +- src/components/TaskPane/TaskPane.js | 11 +++++++++++ src/services/Error/AppErrors.js | 1 + src/services/Error/Messages.js | 4 ++++ src/services/Task/Task.js | 17 ++++++++++++++++- 5 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/components/HOCs/WithLockedTask/WithLockedTask.js b/src/components/HOCs/WithLockedTask/WithLockedTask.js index 38090187a..5ddf537af 100644 --- a/src/components/HOCs/WithLockedTask/WithLockedTask.js +++ b/src/components/HOCs/WithLockedTask/WithLockedTask.js @@ -44,7 +44,7 @@ const WithLockedTask = function(WrappedComponent) { return Promise.reject("Invalid task") } - return this.props.releaseTask(task.id) + return this.props.releaseTask(task.id).catch(err => null) } /** diff --git a/src/components/TaskPane/TaskPane.js b/src/components/TaskPane/TaskPane.js index 4c739cfc2..a02e1decd 100644 --- a/src/components/TaskPane/TaskPane.js +++ b/src/components/TaskPane/TaskPane.js @@ -18,6 +18,7 @@ import WidgetWorkspace from '../WidgetWorkspace/WidgetWorkspace' import WithCooperativeWork from '../HOCs/WithCooperativeWork/WithCooperativeWork' import WithTaskBundle from '../HOCs/WithTaskBundle/WithTaskBundle' import WithLockedTask from '../HOCs/WithLockedTask/WithLockedTask' +import SignIn from '../../pages/SignIn/SignIn' import MapPane from '../EnhancedMap/MapPane/MapPane' import TaskMap from './TaskMap/TaskMap' import VirtualChallengeNameLink @@ -173,6 +174,16 @@ export class TaskPane extends Component { } render() { + if (!this.props.user) { + return ( + this.props.checkingLoginStatus ? +
    + +
    : + + ) + } + if (!_get(this.props, 'task.parent.parent')) { return (
    diff --git a/src/services/Error/AppErrors.js b/src/services/Error/AppErrors.js index 7b514d47c..fa45e152d 100644 --- a/src/services/Error/AppErrors.js +++ b/src/services/Error/AppErrors.js @@ -31,6 +31,7 @@ export default { locked: messages.taskLocked, lockRefreshFailure: messages.taskLockRefreshFailure, bundleFailure: messages.taskBundleFailure, + lockReleaseFailure: messages.taskLockReleaseFailure, }, osm: { diff --git a/src/services/Error/Messages.js b/src/services/Error/Messages.js index 97507d8c9..217d09a66 100644 --- a/src/services/Error/Messages.js +++ b/src/services/Error/Messages.js @@ -74,6 +74,10 @@ export default defineMessages({ id: 'Errors.task.lockRefreshFailure', defaultMessage: "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", }, + taskLockReleaseFailure: { + id: 'Errors.task.lockReleaseFailure', + defaultMessage: "Failed to release task lock. Your lock or your session may have expired.", + }, taskBundleFailure: { id: 'Errors.task.bundleFailure', defaultMessage: "Unable to bundling tasks together", diff --git a/src/services/Task/Task.js b/src/services/Task/Task.js index e8354e31e..928090d2e 100644 --- a/src/services/Task/Task.js +++ b/src/services/Task/Task.js @@ -224,7 +224,12 @@ export const startTask = function(taskId) { return new Endpoint(api.task.start, { schema: taskSchema(), variables: {id: taskId} - }).execute() + }).execute().catch(error => { + if (isSecurityError(error)) { + dispatch(ensureUserLoggedIn()).catch(err => null) + } + throw error + }) } } @@ -239,6 +244,16 @@ export const releaseTask = function(taskId) { }).execute().then(normalizedResults => { dispatch(receiveTasks(normalizedResults.entities)) return normalizedResults + }).catch(error => { + if (isSecurityError(error)) { + dispatch(ensureUserLoggedIn()).then(() => + dispatch(addError(AppErrors.user.unauthorized)) + ).catch(err => null) + } + else { + dispatch(addError(AppErrors.task.lockReleaseFailure)) + console.log(error.response || error) + } }) } } From 751c52712c0c71392789f16ceb2ce1d0d96f58ca Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Sun, 21 Jun 2020 11:43:00 -0700 Subject: [PATCH 25/29] Add tag metrics widget * Add tag metrics widget for review * Add tag metrics widget for admin challenge dashboard Relies on back-end --- .../WithChallengeMetrics.js | 6 +- .../WithChallengeReviewMetrics.js | 6 +- .../WithChallengeTagMetrics.js | 90 +++++++++++++++++++ .../Widgets/TagMetricsWidget/Messages.js | 15 ++++ .../TagMetricsWidget/TagMetricsWidget.js | 38 ++++++++ .../Manage/Widgets/widget_registry.js | 1 + .../WithReviewTagMetrics.js | 63 +++++++++++++ src/components/TagMetrics/Messages.js | 11 +++ src/components/TagMetrics/TagMetrics.js | 85 ++++++++++++++++++ .../ReviewStatusMetricsWidget.js | 3 +- .../ReviewTagMetricsWidget/Messages.js | 15 ++++ .../ReviewTagMetricsWidget.js | 37 ++++++++ src/components/Widgets/widget_registry.js | 4 +- src/lang/en-US.json | 8 +- src/pages/Review/Review.js | 3 +- src/services/Challenge/Challenge.js | 33 +++++++ src/services/Server/APIRoutes.js | 2 + src/services/Task/TaskReview/TaskReview.js | 44 ++++++++- 18 files changed, 450 insertions(+), 14 deletions(-) create mode 100644 src/components/AdminPane/HOCs/WithChallengeTagMetrics/WithChallengeTagMetrics.js create mode 100644 src/components/AdminPane/Manage/Widgets/TagMetricsWidget/Messages.js create mode 100644 src/components/AdminPane/Manage/Widgets/TagMetricsWidget/TagMetricsWidget.js create mode 100644 src/components/HOCs/WithReviewTagMetrics/WithReviewTagMetrics.js create mode 100644 src/components/TagMetrics/Messages.js create mode 100644 src/components/TagMetrics/TagMetrics.js create mode 100644 src/components/Widgets/ReviewTagMetricsWidget/Messages.js create mode 100644 src/components/Widgets/ReviewTagMetricsWidget/ReviewTagMetricsWidget.js diff --git a/src/components/AdminPane/HOCs/WithChallengeMetrics/WithChallengeMetrics.js b/src/components/AdminPane/HOCs/WithChallengeMetrics/WithChallengeMetrics.js index 951675a11..3b46bbbbb 100644 --- a/src/components/AdminPane/HOCs/WithChallengeMetrics/WithChallengeMetrics.js +++ b/src/components/AdminPane/HOCs/WithChallengeMetrics/WithChallengeMetrics.js @@ -44,13 +44,13 @@ const WithChallengeMetrics = function(WrappedComponent, applyFilters = false) { criteria.invertFields = _get(props.searchCriteria, 'filters.invertFields') if (props.includeTaskStatuses && this.isFiltering(props.includeTaskStatuses)) { - criteria.status = _keys(_pickBy(props.includeTaskStatuses)).join(',') + criteria.status = _keys(_pickBy(props.includeTaskStatuses, v => v)).join(',') } if (props.includeTaskReviewStatuses && this.isFiltering(props.includeTaskReviewStatuses)) { - criteria.reviewStatus = _keys(_pickBy(props.includeTaskReviewStatuses)).join(',') + criteria.reviewStatus = _keys(_pickBy(props.includeTaskReviewStatuses, v => v)).join(',') } if (props.includeTaskPriorities && this.isFiltering(props.includeTaskPriorities)) { - criteria.priorities =_keys(_pickBy(props.includeTaskPriorities)).join(',') + criteria.priorities =_keys(_pickBy(props.includeTaskPriorities, v => v)).join(',') } props.fetchChallengeActions(challengeId, true, criteria).then((normalizedResults) => { diff --git a/src/components/AdminPane/HOCs/WithChallengeReviewMetrics/WithChallengeReviewMetrics.js b/src/components/AdminPane/HOCs/WithChallengeReviewMetrics/WithChallengeReviewMetrics.js index 2aabdae37..e922e7564 100644 --- a/src/components/AdminPane/HOCs/WithChallengeReviewMetrics/WithChallengeReviewMetrics.js +++ b/src/components/AdminPane/HOCs/WithChallengeReviewMetrics/WithChallengeReviewMetrics.js @@ -30,13 +30,13 @@ export const WithChallengeReviewMetrics = function(WrappedComponent) { criteria.invertFields = _get(props.searchCriteria, 'filters.invertFields') if (props.includeTaskStatuses) { - criteria.filters.status = _keys(_pickBy(props.includeTaskStatuses)).join(',') + criteria.filters.status = _keys(_pickBy(props.includeTaskStatuses, v => v)).join(',') } if (props.includeTaskReviewStatuses) { - criteria.filters.reviewStatus = _keys(_pickBy(props.includeTaskReviewStatuses)).join(',') + criteria.filters.reviewStatus = _keys(_pickBy(props.includeTaskReviewStatuses, v => v)).join(',') } if (props.includeTaskPriorities) { - criteria.filters.priorities =_keys(_pickBy(props.includeTaskPriorities)).join(',') + criteria.filters.priorities =_keys(_pickBy(props.includeTaskPriorities, v => v)).join(',') } props.updateReviewMetrics(_get(props.user, 'id'), criteria).then((entity) => { diff --git a/src/components/AdminPane/HOCs/WithChallengeTagMetrics/WithChallengeTagMetrics.js b/src/components/AdminPane/HOCs/WithChallengeTagMetrics/WithChallengeTagMetrics.js new file mode 100644 index 000000000..327ac4cca --- /dev/null +++ b/src/components/AdminPane/HOCs/WithChallengeTagMetrics/WithChallengeTagMetrics.js @@ -0,0 +1,90 @@ +import React, { Component } from 'react' +import { connect } from 'react-redux' +import _omit from 'lodash/omit' +import _get from 'lodash/get' +import _keys from 'lodash/keys' +import _pickBy from 'lodash/pickBy' +import _merge from 'lodash/merge' +import { fetchTagMetrics } + from '../../../../services/Challenge/Challenge' +import WithCurrentUser from '../../../HOCs/WithCurrentUser/WithCurrentUser' + +/** + * WithChallengeTagMetrics retrieves tag metrics for the challenge tasks + * + * @author [Kelli Rotstan](https://github.com/krotstan) + */ +export const WithChallengeTagMetrics = function(WrappedComponent) { + return class extends Component { + state = { + loading: false + } + + updateMetrics(props) { + this.setState({loading: true}) + + const filters = {challengeId: _get(props.challenge, 'id')} + _merge(filters, _get(props.searchFilters, 'filters')) + + const criteria = {filters} + criteria.invertFields = _get(props.searchCriteria, 'filters.invertFields') + + if (props.includeTaskStatuses) { + criteria.filters.status = _keys(_pickBy(props.includeTaskStatuses, v => v)).join(',') + } + if (props.includeTaskReviewStatuses) { + criteria.filters.reviewStatus = _keys(_pickBy(props.includeTaskReviewStatuses, v => v)).join(',') + } + if (props.includeTaskPriorities) { + criteria.filters.priorities =_keys(_pickBy(props.includeTaskPriorities, v => v)).join(',') + } + + props.updateTagMetrics(_get(props.user, 'id'), criteria).then((entity) => { + this.setState({loading: false, tagMetrics: entity}) + }) + } + + componentDidMount() { + this.updateMetrics(this.props) + } + + componentDidUpdate(prevProps) { + if (_get(prevProps.challenge, 'id') !== _get(this.props.challenge, 'id')) { + return this.updateMetrics(this.props) + } + + if (this.props.includeTaskStatuses !== prevProps.includeTaskStatuses) { + return this.updateMetrics(this.props) + } + + if (this.props.includeTaskReviewStatuses !== prevProps.includeTaskReviewStatuses) { + return this.updateMetrics(this.props) + } + + if (this.props.includeTaskPriorities !== prevProps.includeTaskPriorities) { + return this.updateMetrics(this.props) + } + + if (_get(this.props.searchFilters, 'filters') !== _get(prevProps.searchFilters, 'filters')) { + return this.updateMetrics(this.props) + } + } + + render() { + return ( + ) + } + } +} + +const mapDispatchToProps = (dispatch) => ({ + updateTagMetrics: (userId, criteria) => { + return dispatch(fetchTagMetrics(userId, criteria)) + }, +}) + +export default WrappedComponent => + connect(null, mapDispatchToProps)(WithCurrentUser(WithChallengeTagMetrics(WrappedComponent))) diff --git a/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/Messages.js b/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/Messages.js new file mode 100644 index 000000000..b6a47a595 --- /dev/null +++ b/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/Messages.js @@ -0,0 +1,15 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with TagMetricsWidget + */ +export default defineMessages({ + label: { + id: "Widgets.TagMetricsWidget.label", + defaultMessage: "Tag Metrics", + }, + title: { + id: "Widgets.TagMetricsWidget.title", + defaultMessage: "Tag Metrics", + } +}) diff --git a/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/TagMetricsWidget.js b/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/TagMetricsWidget.js new file mode 100644 index 000000000..ac5cd29ab --- /dev/null +++ b/src/components/AdminPane/Manage/Widgets/TagMetricsWidget/TagMetricsWidget.js @@ -0,0 +1,38 @@ +import React, { Component } from 'react' +import { FormattedMessage } from 'react-intl' +import { WidgetDataTarget, registerWidgetType } + from '../../../../../services/Widget/Widget' +import TagMetrics from '../../../../TagMetrics/TagMetrics' +import QuickWidget from '../../../../QuickWidget/QuickWidget' +import WithChallengeTagMetrics + from '../../../HOCs/WithChallengeTagMetrics/WithChallengeTagMetrics' +import messages from './Messages' + +const descriptor = { + widgetKey: 'TagMetricsWidget', + label: messages.label, + targets: [WidgetDataTarget.challenge], + minWidth: 2, + defaultWidth: 4, + minHeight: 4, + defaultHeight: 6 +} + +export default class TagMetricsWidget extends Component { + render() { + return ( + + } + noMain + > + + + ) + } +} + +registerWidgetType(WithChallengeTagMetrics(TagMetricsWidget), descriptor) diff --git a/src/components/AdminPane/Manage/Widgets/widget_registry.js b/src/components/AdminPane/Manage/Widgets/widget_registry.js index 0c269a6eb..3a9e7343e 100644 --- a/src/components/AdminPane/Manage/Widgets/widget_registry.js +++ b/src/components/AdminPane/Manage/Widgets/widget_registry.js @@ -18,6 +18,7 @@ export { default as CalendarHeatmapWidget } from './CalendarHeatmapWidget/Calend export { default as LeaderboardWidget } from './LeaderboardWidget/LeaderboardWidget' export { default as RecentActivityWidget } from './RecentActivityWidget/RecentActivityWidget' export { default as StatusRadarWidget } from './StatusRadarWidget/StatusRadarWidget' +export { default as TagMetricsWidget } from './TagMetricsWidget/TagMetricsWidget' // Import (optional) contributed widgets specific to local installation. diff --git a/src/components/HOCs/WithReviewTagMetrics/WithReviewTagMetrics.js b/src/components/HOCs/WithReviewTagMetrics/WithReviewTagMetrics.js new file mode 100644 index 000000000..323b09172 --- /dev/null +++ b/src/components/HOCs/WithReviewTagMetrics/WithReviewTagMetrics.js @@ -0,0 +1,63 @@ +import React, { Component } from 'react' +import { connect } from 'react-redux' +import _omit from 'lodash/omit' +import _get from 'lodash/get' +import { fetchReviewTagMetrics } + from '../../../services/Task/TaskReview/TaskReview' +import WithCurrentUser from '../WithCurrentUser/WithCurrentUser' + +/** + * WithReviewTagMetrics retrieves tag metrics for the currently filtered review tasks + * + * @author [Kelli Rotstan](https://github.com/krotstan) + */ +export const WithReviewTagMetrics = function(WrappedComponent) { + return class extends Component { + state = { + loading: false + } + + updateMetrics(props) { + this.setState({loading: true}) + + props.updateReviewTagMetrics(_get(props.user, 'id'), + props.reviewTasksType, + props.reviewCriteria).then(() => { + this.setState({loading: false}) + }) + } + + componentDidMount() { + this.updateMetrics(this.props) + } + + componentDidUpdate(prevProps) { + if (prevProps.reviewTasksType !== this.props.reviewTasksType || + prevProps.reviewCriteria !== this.props.reviewCriteria) { + this.updateMetrics(this.props) + } + } + + render() { + const totalTasks = _get(this.props.reviewData, 'totalCount', 0) + return ( + ) + } + } +} + +const mapStateToProps = state => { + return ({ reviewTagMetrics: _get(state, 'currentReviewTasks.tagMetrics'), }) +} + +const mapDispatchToProps = (dispatch) => ({ + updateReviewTagMetrics: (userId, reviewTasksType, searchCriteria={}) => { + return dispatch(fetchReviewTagMetrics(userId, reviewTasksType, searchCriteria)) + }, +}) + +export default WrappedComponent => + connect(mapStateToProps, mapDispatchToProps)(WithCurrentUser(WithReviewTagMetrics(WrappedComponent))) diff --git a/src/components/TagMetrics/Messages.js b/src/components/TagMetrics/Messages.js new file mode 100644 index 000000000..8d99565b5 --- /dev/null +++ b/src/components/TagMetrics/Messages.js @@ -0,0 +1,11 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with TagMetrics + */ +export default defineMessages({ + noTags: { + id: "TagMetrics.noTags.label", + defaultMessage: "No tags to display.", + } +}) diff --git a/src/components/TagMetrics/TagMetrics.js b/src/components/TagMetrics/TagMetrics.js new file mode 100644 index 000000000..4ebd7907e --- /dev/null +++ b/src/components/TagMetrics/TagMetrics.js @@ -0,0 +1,85 @@ +import React, { Component } from 'react' +import classNames from 'classnames' +import { FormattedMessage } from 'react-intl' +import _map from 'lodash/map' +import _sortBy from 'lodash/sortBy' +import _reverse from 'lodash/reverse' +import { TaskStatus, messagesByStatus } + from '../../services/Task/TaskStatus/TaskStatus' +import { TaskReviewStatus, messagesByReviewStatus } + from '../../services/Task/TaskReview/TaskReviewStatus' +import messages from './Messages' + + +/** + * TagMetrics displays metrics by tag + * + * @author [Kelli Rotstan](https://github.com/krotstan) + */ +export default class TagMetrics extends Component { + buildTagStats = (metrics, totalTasks) => { + const byTag = _map(_reverse(_sortBy(metrics, ['total','tagName'])), (tagMetrics) => { + return ( +
    + {tagMetrics.tagName !== "" && + buildMetric( + tagMetrics, + totalTasks, + tagMetrics.tagName, + this.props) + } +
    + ) + }) + return ( +
    + {byTag} +
    + ) + } + + render() { + const tagMetrics = this.props.tagMetrics + const totalTasks = this.props.totalTasks + + return ( +
    + {tagMetrics && totalTasks > 0 && + this.buildTagStats(tagMetrics, totalTasks)} + {(!tagMetrics || totalTasks === 0) && + + } +
    + ) + } +} + +function buildMetric(metrics, total, description, props) { + const tooltip = + `${props.intl.formatMessage(messagesByReviewStatus[TaskReviewStatus.needed])}: ${metrics.reviewRequested} \n` + + `${props.intl.formatMessage(messagesByReviewStatus[TaskReviewStatus.approved])}: ${metrics.reviewApproved} \n` + + `${props.intl.formatMessage(messagesByReviewStatus[TaskReviewStatus.approvedWithFixes])}: ${metrics.reviewAssisted} \n` + + `${props.intl.formatMessage(messagesByReviewStatus[TaskReviewStatus.rejected])}: ${metrics.reviewRejected} \n` + + `${props.intl.formatMessage(messagesByReviewStatus[TaskReviewStatus.disputed])}: ${metrics.reviewDisputed} \n` + + `-------\n` + + `${props.intl.formatMessage(messagesByStatus[TaskStatus.fixed])}: ${metrics.fixed} \n` + + `${props.intl.formatMessage(messagesByStatus[TaskStatus.tooHard])}: ${metrics.tooHard} \n` + + `${props.intl.formatMessage(messagesByStatus[TaskStatus.alreadyFixed])}: ${metrics.falsePositive} \n` + + `${props.intl.formatMessage(messagesByStatus[TaskStatus.skipped])}: ${metrics.skipped}` + + return ( +
    +
    +
    {description}
    +
    +
    + {metrics.total === 0 ? 0 : Math.round(metrics.total / total * 100)}% +
    + ({metrics.total}/{total}) +
    +
    + +
    + ) +} diff --git a/src/components/Widgets/ReviewStatusMetricsWidget/ReviewStatusMetricsWidget.js b/src/components/Widgets/ReviewStatusMetricsWidget/ReviewStatusMetricsWidget.js index d139e11de..3111e08de 100644 --- a/src/components/Widgets/ReviewStatusMetricsWidget/ReviewStatusMetricsWidget.js +++ b/src/components/Widgets/ReviewStatusMetricsWidget/ReviewStatusMetricsWidget.js @@ -3,6 +3,7 @@ import { FormattedMessage } from 'react-intl' import { WidgetDataTarget, registerWidgetType } from '../../../services/Widget/Widget' import ReviewStatusMetrics from '../../../pages/Review/Metrics/ReviewStatusMetrics' +import WithReviewMetrics from '../../HOCs/WithReviewMetrics/WithReviewMetrics' import QuickWidget from '../../QuickWidget/QuickWidget' import messages from './Messages' @@ -51,4 +52,4 @@ export default class ReviewStatusMetricsWidget extends Component { } } -registerWidgetType(ReviewStatusMetricsWidget, descriptor) +registerWidgetType(WithReviewMetrics(ReviewStatusMetricsWidget), descriptor) diff --git a/src/components/Widgets/ReviewTagMetricsWidget/Messages.js b/src/components/Widgets/ReviewTagMetricsWidget/Messages.js new file mode 100644 index 000000000..908de0a25 --- /dev/null +++ b/src/components/Widgets/ReviewTagMetricsWidget/Messages.js @@ -0,0 +1,15 @@ +import { defineMessages } from 'react-intl' + +/** + * Internationalized messages for use with ReviewTagMetricsWidget + */ +export default defineMessages({ + label: { + id: "Widgets.ReviewTagMetricsWidget.label", + defaultMessage: "Tag Metrics", + }, + title: { + id: "Widgets.ReviewTagMetricsWidget.title", + defaultMessage: "Tag Metrics", + } +}) diff --git a/src/components/Widgets/ReviewTagMetricsWidget/ReviewTagMetricsWidget.js b/src/components/Widgets/ReviewTagMetricsWidget/ReviewTagMetricsWidget.js new file mode 100644 index 000000000..ac853e721 --- /dev/null +++ b/src/components/Widgets/ReviewTagMetricsWidget/ReviewTagMetricsWidget.js @@ -0,0 +1,37 @@ +import React, { Component } from 'react' +import { FormattedMessage } from 'react-intl' +import { WidgetDataTarget, registerWidgetType } + from '../../../services/Widget/Widget' +import TagMetrics from '../../TagMetrics/TagMetrics' +import QuickWidget from '../../QuickWidget/QuickWidget' +import WithReviewTagMetrics from '../../HOCs/WithReviewTagMetrics/WithReviewTagMetrics' +import messages from './Messages' + +const descriptor = { + widgetKey: 'ReviewTagMetricsWidget', + label: messages.label, + targets: [WidgetDataTarget.review], + minWidth: 2, + defaultWidth: 4, + minHeight: 4, + defaultHeight: 6 +} + +export default class ReviewTagMetricsWidget extends Component { + render() { + return ( + + } + noMain + > + + + ) + } +} + +registerWidgetType(WithReviewTagMetrics(ReviewTagMetricsWidget), descriptor) diff --git a/src/components/Widgets/widget_registry.js b/src/components/Widgets/widget_registry.js index 2d034885d..6eeef922e 100644 --- a/src/components/Widgets/widget_registry.js +++ b/src/components/Widgets/widget_registry.js @@ -59,8 +59,8 @@ export { default as ReviewTableWidget } from './ReviewTableWidget/ReviewTableWidget' export { default as ReviewStatusMetricsWidget } from './ReviewStatusMetricsWidget/ReviewStatusMetricsWidget' -export { default as ReviewTaskMetricsWidget } - from './ReviewTaskMetricsWidget/ReviewTaskMetricsWidget' +export { default as ReviewTagMetricsWidget } + from './ReviewTagMetricsWidget/ReviewTagMetricsWidget' export { default as ReviewMapWidget } from './ReviewMapWidget/ReviewMapWidget' export { default as SnapshotProgressWidget } diff --git a/src/lang/en-US.json b/src/lang/en-US.json index 48943cf66..07df87226 100644 --- a/src/lang/en-US.json +++ b/src/lang/en-US.json @@ -146,7 +146,7 @@ "Admin.EditChallenge.form.step1.label": "General", "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", "Admin.EditChallenge.form.step2.label": "GeoJSON Source", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you’ve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorities", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", "Admin.EditChallenge.form.step4.label": "Extra", @@ -849,7 +849,6 @@ "Metrics.reviewedTasksTitle": "Review Status", "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", "Metrics.userOptedOut": "This user has opted out of public display of their stats.", "Metrics.userSince": "User since:", @@ -1058,6 +1057,7 @@ "TagDiffVisualization.noChanges": "No Tag Changes", "TagDiffVisualization.noChangeset": "No changeset would be uploaded", "TagDiffVisualization.proposed.label": "Proposed", + "TagMetrics.noTags.label": "No tags to display.", "Task.awaitingReview.label": "Task is awaiting review.", "Task.comments.comment.controls.submit.label": "Submit", "Task.controls.alreadyFixed.label": "Already fixed", @@ -1333,6 +1333,8 @@ "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", + "Widgets.ReviewTagMetricsWidget.label": "Tag Metrics", + "Widgets.ReviewTagMetricsWidget.title": "Tag Metrics", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", "Widgets.SnapshotProgressWidget.current.label": "Current", @@ -1347,6 +1349,8 @@ "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", "Widgets.TagDiffWidget.label": "Cooperativees", "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.TagMetricsWidget.label": "Tag Metrics", + "Widgets.TagMetricsWidget.title": "Tag Metrics", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", diff --git a/src/pages/Review/Review.js b/src/pages/Review/Review.js index bd37e2bee..774a5a429 100644 --- a/src/pages/Review/Review.js +++ b/src/pages/Review/Review.js @@ -26,14 +26,13 @@ import WithWidgetWorkspaces import WidgetWorkspace from '../../components/WidgetWorkspace/WidgetWorkspace' import { ReviewTasksType } from '../../services/Task/TaskReview/TaskReview' import WithReviewTasks from '../../components/HOCs/WithReviewTasks/WithReviewTasks' -import WithReviewMetrics from '../../components/HOCs/WithReviewMetrics/WithReviewMetrics' import TasksReviewChallenges from './TasksReview/TasksReviewChallenges' import messages from './Messages' const WIDGET_WORKSPACE_NAME = "reviewOverview" -const ReviewWidgetWorkspace = WithReviewTasks(WithReviewMetrics(WidgetWorkspace)) +const ReviewWidgetWorkspace = WithReviewTasks(WidgetWorkspace) export const defaultWorkspaceSetup = function() { return { diff --git a/src/services/Challenge/Challenge.js b/src/services/Challenge/Challenge.js index a058b2d32..9d692d6c9 100644 --- a/src/services/Challenge/Challenge.js +++ b/src/services/Challenge/Challenge.js @@ -440,6 +440,39 @@ export const fetchProjectChallengeActions = function(projectId, onlyEnabled=fals } } +/** + * Fetch tag metrics for the given challenge + */ +export const fetchTagMetrics = function(userId, criteria) { + let searchParameters = {} + + if (criteria) { + searchParameters = generateSearchParametersString(_get(criteria, 'filters', {}), + criteria.boundingBox, + false, false, null, + _get(criteria, 'invertFields', {})) + } + + return function(dispatch) { + return new Endpoint( + api.challenges.tagMetrics, + {params: {...searchParameters}} + ).execute().then(normalizedResults => { + return normalizedResults + }).catch(error => { + if (isSecurityError(error)) { + dispatch(ensureUserLoggedIn()).then(() => + dispatch(addError(AppErrors.user.unauthorized)) + ) + } + else { + dispatch(addError(AppErrors.challenge.fetchFailure)) + console.log(error.response || error) + } + }) + } +} + /** * Fetch activity timeline for the given challenge */ diff --git a/src/services/Server/APIRoutes.js b/src/services/Server/APIRoutes.js index dfbbdd5fc..ddd338aa4 100644 --- a/src/services/Server/APIRoutes.js +++ b/src/services/Server/APIRoutes.js @@ -46,6 +46,7 @@ const apiRoutes = factory => { 'activity': factory.get('/data/status/activity'), 'latestActivity': factory.get('/data/status/latestActivity'), 'withReviewTasks': factory.get('/review/challenges'), + 'tagMetrics': factory.get('/data/tag/metrics'), }, 'challenge': { 'single': factory.get('/challenge/:id'), @@ -90,6 +91,7 @@ const apiRoutes = factory => { 'reviewNext': factory.get('/tasks/review/next'), 'nearbyReviewTasks': factory.get('/tasks/review/nearby/:taskId'), 'reviewMetrics': factory.get('/tasks/review/metrics'), + 'reviewTagMetrics': factory.get('/tasks/review/tag/metrics'), 'fetchReviewClusters': factory.get('/taskCluster/review'), 'inCluster': factory.get('/tasksInCluster/:clusterId'), 'bundle': factory.post('/taskBundle'), diff --git a/src/services/Task/TaskReview/TaskReview.js b/src/services/Task/TaskReview/TaskReview.js index 8a95bf9de..90c94135d 100644 --- a/src/services/Task/TaskReview/TaskReview.js +++ b/src/services/Task/TaskReview/TaskReview.js @@ -41,6 +41,7 @@ export const ReviewTasksType = { // redux action creators export const RECEIVE_REVIEW_METRICS = 'RECEIVE_REVIEW_METRICS' +export const RECEIVE_REVIEW_TAG_METRICS = 'RECEIVE_REVIEW_TAG_METRICS' export const RECEIVE_REVIEW_CLUSTERS = 'RECEIVE_REVIEW_CLUSTERS' export const RECEIVE_REVIEW_CHALLENGES = 'RECEIVE_REVIEW_CHALLENGES' export const RECEIVE_REVIEW_PROJECTS = 'RECEIVE_REVIEW_PROJECTS' @@ -68,6 +69,18 @@ export const receiveReviewMetrics = function(metrics, status=RequestStatus.succe } } +/** + * Add or replace the review metrics in the redux store + */ +export const receiveReviewTagMetrics = function(tagMetrics, status=RequestStatus.success) { + return { + type: RECEIVE_REVIEW_TAG_METRICS, + status, + tagMetrics, + receivedAt: Date.now(), + } +} + /** * Add or replace the review clusters in the redux store */ @@ -142,7 +155,6 @@ const generateReviewSearch = function(criteria, reviewTasksType = ReviewTasksTyp return new Endpoint( api.tasks.reviewMetrics, { - schema: null, params: {reviewTasksType: type, ...params, includeByPriority: true, includeByTaskStatus: true}, } @@ -155,6 +167,29 @@ const generateReviewSearch = function(criteria, reviewTasksType = ReviewTasksTyp } } +/** + * Retrieve metrics for a given review tasks type and filter criteria + */ + export const fetchReviewTagMetrics = function(userId, reviewTasksType, criteria) { + const type = determineType(reviewTasksType) + const params = generateReviewSearch(criteria, reviewTasksType, userId) + + return function(dispatch) { + return new Endpoint( + api.tasks.reviewTagMetrics, + { + schema: null, + params: {reviewTasksType: type, ...params}, + } + ).execute().then(normalizedResults => { + dispatch(receiveReviewTagMetrics(normalizedResults, RequestStatus.success)) + return normalizedResults + }).catch((error) => { + console.log(error.response || error) + }) + } +} + /** * Retrieve clustered tasks for given review criteria */ @@ -469,6 +504,8 @@ export const currentReviewTasks = function(state={}, action) { return updateReduxState(state, action, "reviewNeeded") case RECEIVE_REVIEW_METRICS: return updateReduxState(state, action, "metrics") + case RECEIVE_REVIEW_TAG_METRICS: + return updateReduxState(state, action, "tagMetrics") case RECEIVE_REVIEW_CLUSTERS: return updateReduxState(state, action, "clusters") case RECEIVE_REVIEW_CHALLENGES: @@ -488,6 +525,11 @@ const updateReduxState = function(state={}, action, listName) { return mergedState } + if (action.type === RECEIVE_REVIEW_TAG_METRICS) { + mergedState[listName] = action.tagMetrics + return mergedState + } + if (action.type === RECEIVE_REVIEW_CLUSTERS) { if (action.fetchId !== state.fetchId || action.status !== state.status) { const fetchTime = parseInt(uuidTime.v1(action.fetchId)) From 907b023b9188272c853f82f0571e3f2912342dff Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Thu, 25 Jun 2020 16:39:11 -0700 Subject: [PATCH 26/29] Load attached task reference layers into JOSM * When opening a task in JOSM, look for any attached reference layers and open them as well --- src/services/Editor/Editor.js | 69 ++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 6 deletions(-) diff --git a/src/services/Editor/Editor.js b/src/services/Editor/Editor.js index 8605735d4..d046b31f9 100644 --- a/src/services/Editor/Editor.js +++ b/src/services/Editor/Editor.js @@ -3,10 +3,12 @@ import _compact from 'lodash/compact' import _fromPairs from 'lodash/fromPairs' import _map from 'lodash/map' import _find from 'lodash/find' +import _filter from 'lodash/filter' import _invert from 'lodash/invert' import _get from 'lodash/get' import _isArray from 'lodash/isArray' import _isEmpty from 'lodash/isEmpty' +import _snakeCase from 'lodash/snakeCase' import RequestStatus from '../Server/RequestStatus' import AsMappableTask from '../../interactions/Task/AsMappableTask' import AsMappableBundle from '../../interactions/TaskBundle/AsMappableBundle' @@ -112,12 +114,24 @@ export const editTask = function(editor, task, mapBounds, options, taskBundle) { } ), () => sendJOSMCommand( - josmImportURI(dispatch, editor, task, mapBounds, taskBundle) + josmImportCooperative(dispatch, editor, task, mapBounds, taskBundle) ) ]) } else { - openJOSM(dispatch, editor, task, mapBounds, josmLoadAndZoomURI, taskBundle) + let josmCommands = [ + () => openJOSM(dispatch, editor, task, mapBounds, josmLoadAndZoomURI, taskBundle), + ] + + const loadReferenceLayerCommands = _map( + josmImportReferenceLayers(dispatch, editor, task, mapBounds, taskBundle), + command => (() => sendJOSMCommand(command)) + ) + if (loadReferenceLayerCommands.length > 0) { + josmCommands = josmCommands.concat(loadReferenceLayerCommands) + } + + executeJOSMBatch(josmCommands) } } } @@ -410,14 +424,57 @@ export const josmLoadObjectURI = function(dispatch, editor, task, mapBounds, tas * * @see See https://josm.openstreetmap.de/wiki/Help/RemoteControlCommands#import */ -export const josmImportURI = function(dispatch, editor, task, mapBounds, taskBundle, options) { +export const josmImportURI = function(dispatch, editor, task, mapBounds, taskBundle, uri, options={}) { return josmHost() + 'import?' + [ - `new_layer=${editor === JOSM_LAYER ? 'true' : 'false'}`, - `layer_name=${encodeURIComponent("MR Task " + task.id + " Changes")}`, - `url=${process.env.REACT_APP_MAP_ROULETTE_SERVER_URL}/api/v2/task/${task.id}/cooperative/change/task_${task.id}_change.osc` + `new_layer=${editor === JOSM_LAYER || options.asNewLayer ? 'true' : 'false'}`, + `layer_name=${encodeURIComponent(options.layerName ? options.layerName : "MR Task " + task.id)}`, + `layer_locked=${options.layerLocked ? 'true' : 'false'}`, + `download_policy=${options.downloadPolicy || ''}`, + `upload_policy=${options.uploadPolicy || ''}`, + `url=${uri}` ].join('&') } +/* + * Builds a JOSM import URI suitable for pulling in cooperative work + */ +export const josmImportCooperative = function(dispatch, editor, task, mapBounds, taskBundle) { + return josmImportURI( + dispatch, editor, task, mapBounds, taskBundle, + `${process.env.REACT_APP_MAP_ROULETTE_SERVER_URL}/api/v2/task/${task.id}/cooperative/change/task_${task.id}_change.osc`, + {layerName: `MR Task ${task.id} Changes`} + ) +} + +/* + * Builds and returns JOSM import URIs for each reference layer attached to the given task + */ +export const josmImportReferenceLayers = function(dispatch, editor, task, mapBounds, taskBundle) { + const referenceLayers = _filter( + _get(task, 'geometries.attachments', []), + attachment => attachment.kind === 'referenceLayer' + ) + + return _map(referenceLayers, layer => { + const filename = ( + layer.name ? + `${_snakeCase(layer.name)}_${task.id}` : + `task_attachment_${task.id}_${layer.id}` + ) + `.${layer.type}` + + return josmImportURI( + dispatch, editor, task, mapBounds, taskBundle, + `${process.env.REACT_APP_MAP_ROULETTE_SERVER_URL}/api/v2/task/${task.id}/attachment/${layer.id}/data/${filename}`, + { + layerName: layer.name || `MR Task ${task.id} Reference`, + layerLocked: _get(layer, 'settings.layerLocked', true), + uploadPolicy: _get(layer, 'settings.uploadPolicy', 'never'), + downloadPolicy: _get(layer, 'settings.downloadPolicy', 'never'), + } + ) + }) +} + /** * Sends a command to JOSM and returns a promise that resolves to true on * success, false on failure From edeca3bc90e029bbdeea20fbd999334e2db5d5fd Mon Sep 17 00:00:00 2001 From: Kelli Rotstan Date: Tue, 30 Jun 2020 09:43:08 -0700 Subject: [PATCH 27/29] Review table page size lost when reviewing After reviewing a task the page size on the current table was lost. --- src/components/HOCs/WithTaskReview/WithTaskReview.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/HOCs/WithTaskReview/WithTaskReview.js b/src/components/HOCs/WithTaskReview/WithTaskReview.js index caa55d6f2..8174541c1 100644 --- a/src/components/HOCs/WithTaskReview/WithTaskReview.js +++ b/src/components/HOCs/WithTaskReview/WithTaskReview.js @@ -77,6 +77,7 @@ export const parseSearchCriteria = url => { const savedChallengesOnly = searchParams.savedChallengesOnly const excludeOtherReviewers = searchParams.excludeOtherReviewers const invertFields = searchParams.invertFields + const pageSize = searchParams.pageSize if (_isString(filters)) { filters = JSON.parse(searchParams.filters) @@ -92,7 +93,7 @@ export const parseSearchCriteria = url => { savedChallengesOnly, excludeOtherReviewers, invertFields}, newState: {sortBy, direction, filters, boundingBox, savedChallengesOnly, - excludeOtherReviewers, invertFields} + excludeOtherReviewers, invertFields, pageSize} } } From 4ffa7ff65e2e1ab31b23bfe3cb57d6d41415873b Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Wed, 1 Jul 2020 09:29:29 -0700 Subject: [PATCH 28/29] Update translation files --- src/lang/af.json | 2088 +++++++++++++++++++++--------------------- src/lang/cs_CZ.json | 2090 +++++++++++++++++++++--------------------- src/lang/de.json | 2092 +++++++++++++++++++++--------------------- src/lang/es.json | 2108 +++++++++++++++++++++--------------------- src/lang/fa_IR.json | 2086 +++++++++++++++++++++--------------------- src/lang/fr.json | 2090 +++++++++++++++++++++--------------------- src/lang/ja.json | 2090 +++++++++++++++++++++--------------------- src/lang/ko.json | 2090 +++++++++++++++++++++--------------------- src/lang/nl.json | 2088 +++++++++++++++++++++--------------------- src/lang/pt_BR.json | 2088 +++++++++++++++++++++--------------------- src/lang/ru_RU.json | 2086 +++++++++++++++++++++--------------------- src/lang/uk.json | 2116 ++++++++++++++++++++++--------------------- 12 files changed, 12868 insertions(+), 12244 deletions(-) diff --git a/src/lang/af.json b/src/lang/af.json index 420fd868e..239a5fd47 100644 --- a/src/lang/af.json +++ b/src/lang/af.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Your Recent Activity", - "BurndownChart.heading": "Nog beskikbaar Take {taskCount, number}", - "BurndownChart.tooltip": "Nog beskikbaar Take", - "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "ActiveTask.controls.aleadyFixed.label": "Already fixed", + "ActiveTask.controls.cancelEditing.label": "Go Back", + "ActiveTask.controls.comments.tooltip": "View Comments", + "ActiveTask.controls.fixed.label": "I fixed it!", + "ActiveTask.controls.info.tooltip": "Task Details", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Existing Status", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Challenge Information", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Comments", + "ActiveTask.subheading.instructions": "Instructions", + "ActiveTask.subheading.location": "Location", + "ActiveTask.subheading.progress": "Uitdaging Vordering", + "ActiveTask.subheading.social": "Share", + "ActiveTask.subheading.status": "Existing Status", + "Activity.action.created": "Created", + "Activity.action.deleted": "Deleted", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Updated", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Challenge", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Task", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Onlangse Aktiwiteite", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "Clone Challenge", + "Admin.Challenge.controls.delete.label": "Delete Challenge", + "Admin.Challenge.controls.edit.label": "Edit Challenge", + "Admin.Challenge.controls.move.label": "Move Challenge", + "Admin.Challenge.controls.move.none": "No permitted projects", + "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", + "Admin.Challenge.controls.start.label": "Start Challenge", + "Admin.Challenge.controls.startChallenge.label": "Begin", + "Admin.Challenge.fields.creationDate.label": "Created:", + "Admin.Challenge.fields.enabled.label": "Visible:", + "Admin.Challenge.fields.lastModifiedDate.label": "Modified:", + "Admin.Challenge.fields.status.label": "Status:", + "Admin.Challenge.tasksBuilding": "Tasks Building...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Tasks Failed to Build", + "Admin.Challenge.tasksNone": "No Tasks", + "Admin.Challenge.totalCreationTime": "Total elapsed time:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Options", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Challenge Name", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Done", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Visible", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Last Activity", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Edit", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Challenge Name", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Clone", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Include status columns", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Start Challenge", - "Admin.Challenge.controls.edit.label": "Edit Challenge", - "Admin.Challenge.controls.move.label": "Move Challenge", - "Admin.Challenge.controls.move.none": "No permitted projects", - "Admin.Challenge.controls.clone.label": "Clone Challenge", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Delete Challenge", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Edit", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Include status columns", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", "Admin.ChallengeList.noChallenges": "No Challenges", - "ChallengeProgressBorder.available": "Available", - "CompletionRadar.heading": "Tasks Completed: {taskCount, number}", - "Admin.EditProject.unavailable": "Project Unavailable", - "Admin.EditProject.edit.header": "Edit", - "Admin.EditProject.new.header": "New Project", - "Admin.EditProject.controls.save.label": "Save", - "Admin.EditProject.controls.cancel.label": "Cancel", - "Admin.EditProject.form.name.label": "Name", - "Admin.EditProject.form.name.description": "Name of the project", - "Admin.EditProject.form.displayName.label": "Display Name", - "Admin.EditProject.form.displayName.description": "Displayed name of the project", - "Admin.EditProject.form.enabled.label": "Visible", - "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Description", - "Admin.EditProject.form.description.description": "Description of the project", - "Admin.InspectTask.header": "Inspect Tasks", - "Admin.EditChallenge.edit.header": "Edit", + "Admin.ChallengeTaskMap.controls.editTask.label": "Edit Task", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", "Admin.EditChallenge.clone.header": "Clone", - "Admin.EditChallenge.new.header": "New Challenge", - "Admin.EditChallenge.lineNumber": "Line {line, number}:", + "Admin.EditChallenge.edit.header": "Edit", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "General", - "Admin.EditChallenge.form.visible.label": "Visible", - "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge's visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", - "Admin.EditChallenge.form.name.label": "Name", - "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", - "Admin.EditChallenge.form.description.label": "Description", - "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", - "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", "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.", - "Admin.EditChallenge.form.instruction.label": "Instructions", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", + "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", + "Admin.EditChallenge.form.category.label": "Category", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", - "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", "Admin.EditChallenge.form.checkinSource.description": "Source to be associated with changes made by users in editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", - "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Custom Basemap", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "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": "Default priority level for tasks in this challenge", + "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", + "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", + "Admin.EditChallenge.form.description.label": "Description", "Admin.EditChallenge.form.difficulty.description": "Choose between Easy, Normal and Expert to give an indication to mappers what skill level is required to resolve the Tasks in your Challenge. Easy challenges should be suitable for beginners with little or experience.", - "Admin.EditChallenge.form.category.label": "Category", - "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", - "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Featured challenges are shown at the top of the list when browsing and searching challenges. Only super-users may mark a a challenge as featured.", - "Admin.EditChallenge.form.step2.label": "GeoJSON Source", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON Source", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", + "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instructions", + "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", + "Admin.EditChallenge.form.localGeoJson.label": "Upload File", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", + "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", + "Admin.EditChallenge.form.name.label": "Name", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Please provide a suitable bounding box when inserting an overpass query, as this can potentially generate large amounts of data and bog the system down.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", "Admin.EditChallenge.form.overpassQL.placeholder": "Enter Overpass API query here...", - "Admin.EditChallenge.form.localGeoJson.label": "Upload File", - "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", - "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON Source", + "Admin.EditChallenge.form.step1.label": "General", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON Source", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorities", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task's priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task's feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you've chosen to include in your GeoJSON). Tasks that don't pass any rules will be assigned the default priority.", - "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", - "Admin.EditChallenge.form.defaultPriority.description": "Default priority level for tasks in this challenge", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", - "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", - "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task's feature. But if that's not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", - "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", - "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", - "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", - "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", - "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Challenges", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", - "Admin.ManageChallenges.search.placeholder": "Name", - "Admin.ManageChallenges.allProjectChallenge": "Almal", - "Admin.Challenge.fields.creationDate.label": "Created:", - "Admin.Challenge.fields.lastModifiedDate.label": "Modified:", - "Admin.Challenge.fields.status.label": "Status:", - "Admin.Challenge.fields.enabled.label": "Visible:", - "Admin.Challenge.controls.startChallenge.label": "Begin", - "Admin.Challenge.activity.label": "Onlangse Aktiwiteite", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Visible", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "New Challenge", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Cancel", + "Admin.EditProject.controls.save.label": "Save", + "Admin.EditProject.edit.header": "Edit", + "Admin.EditProject.form.description.description": "Description of the project", + "Admin.EditProject.form.description.label": "Description", + "Admin.EditProject.form.displayName.description": "Displayed name of the project", + "Admin.EditProject.form.displayName.label": "Display Name", + "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", + "Admin.EditProject.form.enabled.label": "Visible", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "Name of the project", + "Admin.EditProject.form.name.label": "Name", + "Admin.EditProject.new.header": "New Project", + "Admin.EditProject.unavailable": "Project Unavailable", + "Admin.EditTask.controls.cancel.label": "Cancel", + "Admin.EditTask.controls.save.label": "Save", "Admin.EditTask.edit.header": "Edit Task", - "Admin.EditTask.new.header": "New Task", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "Task Details", - "Admin.EditTask.controls.save.label": "Save", - "Admin.EditTask.controls.cancel.label": "Cancel", - "Admin.EditTask.form.name.label": "Name", - "Admin.EditTask.form.name.description": "Name of the task", - "Admin.EditTask.form.instruction.label": "Instructions", - "Admin.EditTask.form.instruction.description": "Instructions for users doing this specific task (overrides challenge instructions)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Instructions for users doing this specific task (overrides challenge instructions)", + "Admin.EditTask.form.instruction.label": "Instructions", + "Admin.EditTask.form.name.description": "Name of the task", + "Admin.EditTask.form.name.label": "Name", "Admin.EditTask.form.priority.label": "Priority", - "Admin.EditTask.form.status.label": "Status", "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.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Edit Task", - "Admin.Task.controls.editTask.label": "Edit", - "Admin.manage.header": "Administrasie", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Challenges", - "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Managers", - "Admin.Project.fields.enabled.tooltip": "Enabled", - "Admin.Project.fields.disabled.tooltip": "Disabled", - "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.new.header": "New Task", + "Admin.InspectTask.header": "Inspect Tasks", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "Almal", + "Admin.ManageChallenges.header": "Challenges", + "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.search.placeholder": "Name", + "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", + "Admin.ManageTasks.header": "Tasks", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Add Challenge", + "Admin.Project.controls.addChallenge.tooltip": "New Challenge", + "Admin.Project.controls.delete.label": "Delete Project", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Manage Challenge List", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Created:", + "Admin.Project.fields.disabled.tooltip": "Disabled", + "Admin.Project.fields.enabled.tooltip": "Enabled", + "Admin.Project.fields.lastModifiedDate.label": "Modified:", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Edit Project", - "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Challenges", + "Admin.ProjectCard.tabs.details.label": "Details", + "Admin.ProjectCard.tabs.managers.label": "Managers", "Admin.ProjectDashboard.controls.addChallenge.label": "Add Challenge", + "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectDashboard.controls.edit.label": "Edit Project", "Admin.ProjectDashboard.controls.manageChallenges.label": "Manage Challenges", - "Admin.Project.fields.creationDate.label": "Created:", - "Admin.Project.fields.lastModifiedDate.label": "Modified:", - "Admin.Project.controls.delete.label": "Delete Project", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "Add Project", + "Admin.ProjectManagers.addManager": "Add Project Manager", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", + "Admin.ProjectManagers.noManagers": "No Managers", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Owner", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projects serve as a means of grouping related challenges together. All challenges must belong to a project.", - "Admin.ProjectsDashboard.search.placeholder": "Project or Challenge Name", - "Admin.Project.controls.addChallenge.tooltip": "New Challenge", + "Admin.ProjectsDashboard.newProject": "Add Project", "Admin.ProjectsDashboard.regenerateHomeProject": "Please sign out and sign back in to regenerate a fresh home project.", - "RebuildTasksControl.label": "Rebuild Tasks", - "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", - "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Cancel", - "RebuildTasksControl.modal.controls.proceed.label": "Proceed", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Cancel", - "StepNavigation.controls.next.label": "Next", - "StepNavigation.controls.prev.label": "Prev", - "StepNavigation.controls.finish.label": "Finish", + "Admin.ProjectsDashboard.search.placeholder": "Project or Challenge Name", + "Admin.Task.controls.editTask.label": "Edit", + "Admin.Task.controls.editTask.tooltip": "Edit Task", + "Admin.Task.fields.name.label": "Task:", + "Admin.Task.fields.status.label": "Status:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Edit", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Admin.TaskAnalysisTable.controls.startTask.label": "Start", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "tasks deleted", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Edit Task", + "Admin.TaskInspect.controls.modifyTask.label": "Modify Task", + "Admin.TaskInspect.controls.nextTask.label": "Next Task", + "Admin.TaskInspect.controls.previousTask.label": "Prior Task", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approve", + "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", + "Admin.TaskReview.controls.rejected": "Reject", + "Admin.TaskReview.controls.resubmit": "Submit for Review Again", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Start Review", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "tasks uploaded", - "Admin.Challenge.tasksBuilding": "Tasks Building...", - "Admin.Challenge.tasksFailed": "Tasks Failed to Build", - "Admin.Challenge.tasksNone": "No Tasks", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Total elapsed time:", - "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", - "Admin.ManageTasks.header": "Tasks", - "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", - "Admin.manageTasks.controls.changePriority.label": "Change Priority", - "Admin.manageTasks.priorityLabel": "Priority", - "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", - "Admin.ChallengeTaskMap.controls.editTask.label": "Edit Task", - "Admin.Task.fields.name.label": "Task:", - "Admin.Task.fields.status.label": "Status:", - "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", "Admin.VirtualProject.ChallengeList.noChallenges": "No Challenges", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Find Challenges", "Admin.VirtualProject.controls.add.label": "Add", + "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Remove", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "Challenges", - "Widgets.ChallengeListWidget.title": "Challenges", - "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Find Challenges", + "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Reviewed On", + "Admin.manage.header": "Administrasie", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", - "Widgets.ChallengeOverviewWidget.title": "Overview", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Tasks", - "Widgets.ChallengeTasksWidget.title": "Tasks", - "Widgets.CommentsWidget.label": "Comments", - "Widgets.CommentsWidget.title": "Comments", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Leaderboard", - "Widgets.LeaderboardWidget.title": "Leaderboard", - "Widgets.ProjectAboutWidget.label": "About Projects", - "Widgets.ProjectAboutWidget.title": "About Projects", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Project List", - "Widgets.ProjectListWidget.title": "Projects", - "Widgets.ProjectListWidget.search.placeholder": "Search", - "Widgets.ProjectManagersWidget.label": "Project Managers", - "Admin.ProjectManagers.noManagers": "No Managers", - "Admin.ProjectManagers.addManager": "Add Project Manager", - "Admin.ProjectManagers.projectOwner": "Owner", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Overview", - "Widgets.ProjectOverviewWidget.title": "Overview", - "Widgets.RecentActivityWidget.label": "Recent Activity", - "Widgets.RecentActivityWidget.title": "Recent Activity", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Change Priority", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Export CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Priority", "AutosuggestTextBox.labels.noResults": "No matches", - "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", - "Form.textUpload.readonly": "Existing file will be used", - "Form.controls.addPriorityRule.label": "Add a Rule", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Nog beskikbaar Take {taskCount, number}", + "BurndownChart.tooltip": "Nog beskikbaar Take", + "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Custom", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Clear Filters", + "Challenge.controls.loadMore.label": "More Results", + "Challenge.controls.save.label": "Save", + "Challenge.controls.start.label": "Start", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Any", + "Challenge.difficulty.easy": "Easy", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Difficulty", "Challenge.fields.lastTaskRefresh.label": "Tasks From", "Challenge.fields.viewLeaderboard.label": "View Leaderboard", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Anything", + "Challenge.keywords.buildings": "Buildings", + "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", + "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Anywhere", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Near Me", + "Challenge.location.withinMapBounds": "Within Map Bounds", + "Challenge.management.controls.manage.label": "Manage", + "Challenge.results.heading": "Challenges", + "Challenge.results.noResults": "No Results", + "Challenge.signIn.label": "Sign in to get started", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Newest", + "Challenge.sort.default": "Default", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Building", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Failed", + "Challenge.status.finished": "Finished", + "Challenge.status.none": "Not Applicable", + "Challenge.status.partiallyLoaded": "Partially Loaded", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Challenge", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Manage", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "Difficulty", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.viewLeaderboard.label": "View Leaderboard", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Manage", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "Contact Owner", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", "ChallengeFilterSubnav.filter.difficulty.label": "Difficulty", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", "ChallengeFilterSubnav.filter.location.label": "Location", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Clear Filters", - "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Save", - "Challenge.controls.start.label": "Start", - "Challenge.management.controls.manage.label": "Manage", - "Challenge.signIn.label": "Sign in to get started", - "Challenge.results.heading": "Challenges", - "Challenge.results.noResults": "No Results", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "More Results", + "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "Available", - "ChallengeProgress.tooltip.label": "Take", - "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Take", + "ChallengeProgressBorder.available": "Available", "CommentList.controls.viewTask.label": "View Task", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "Tasks Completed: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Cancel", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Continue", "CongratulateModal.header": "Congratulations!", "CongratulateModal.primaryMessage": "Challenge is complete", - "CongratulateModal.control.dismiss.label": "Continue", - "CountryName.ALL": "All Countries", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "Verenigde Arabiese Emirate", "CountryName.AF": "Afganistan", - "CountryName.AO": "Angola", "CountryName.AL": "Albani\u00eb", - "CountryName.AE": "Verenigde Arabiese Emirate", - "CountryName.AR": "Argentini\u00eb", + "CountryName.ALL": "All Countries", "CountryName.AM": "Armeni\u00eb", + "CountryName.AO": "Angola", "CountryName.AQ": "Antarktika", - "CountryName.TF": "Franse Suidelike Gebiede", - "CountryName.AU": "Australi\u00eb", + "CountryName.AR": "Argentini\u00eb", "CountryName.AT": "Oostenryk", + "CountryName.AU": "Australi\u00eb", "CountryName.AZ": "Azerbeidjan", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosni\u00eb en Herzegowina", + "CountryName.BD": "Bangladesj", "CountryName.BE": "Belgi\u00eb", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesj", "CountryName.BG": "Bulgarye", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bosni\u00eb en Herzegowina", - "CountryName.BY": "Belarus", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Broenei", "CountryName.BO": "Bolivi\u00eb", "CountryName.BR": "Brasili\u00eb", - "CountryName.BN": "Broenei", + "CountryName.BS": "Bahamas", "CountryName.BT": "Bhoetan", "CountryName.BW": "Botswana", - "CountryName.CF": "Sentraal-Afrikaanse Republiek", + "CountryName.BY": "Belarus", + "CountryName.BZ": "Belize", "CountryName.CA": "Kanada", + "CountryName.CD": "Demokratiese Republiek van die Kongo", + "CountryName.CF": "Sentraal-Afrikaanse Republiek", + "CountryName.CG": "Kongo - Brazzaville", "CountryName.CH": "Switserland", - "CountryName.CL": "Chili", - "CountryName.CN": "Sjina", "CountryName.CI": "Ivoorkus", + "CountryName.CL": "Chili", "CountryName.CM": "Kameroen", - "CountryName.CD": "Demokratiese Republiek van die Kongo", - "CountryName.CG": "Kongo - Brazzaville", + "CountryName.CN": "Sjina", "CountryName.CO": "Colombi\u00eb", "CountryName.CR": "Costa Rica", "CountryName.CU": "Kuba", @@ -415,10 +485,10 @@ "CountryName.DO": "Dominikaanse Republiek", "CountryName.DZ": "Algeri\u00eb", "CountryName.EC": "Ecuador", + "CountryName.EE": "Estland", "CountryName.EG": "Egipte", "CountryName.ER": "Eritrea", "CountryName.ES": "Spanje", - "CountryName.EE": "Estland", "CountryName.ET": "Ethiopi\u00eb", "CountryName.FI": "Finland", "CountryName.FJ": "Fidji", @@ -428,57 +498,58 @@ "CountryName.GB": "Verenigde Koninkryk", "CountryName.GE": "Georgi\u00eb", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinee", + "CountryName.GL": "Groenland", "CountryName.GM": "Gambi\u00eb", - "CountryName.GW": "Guinee-Bissau", + "CountryName.GN": "Guinee", "CountryName.GQ": "Ekwatoriaal-Guinee", "CountryName.GR": "Griekeland", - "CountryName.GL": "Groenland", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinee-Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Kroasi\u00eb", "CountryName.HT": "Ha\u00efti", "CountryName.HU": "Hongarye", "CountryName.ID": "Indonesi\u00eb", - "CountryName.IN": "Indi\u00eb", "CountryName.IE": "Ierland", - "CountryName.IR": "Iran", + "CountryName.IL": "Israel", + "CountryName.IN": "Indi\u00eb", "CountryName.IQ": "Irak", + "CountryName.IR": "Iran", "CountryName.IS": "Ysland", - "CountryName.IL": "Israel", "CountryName.IT": "Itali\u00eb", "CountryName.JM": "Jamaika", "CountryName.JO": "Jordani\u00eb", "CountryName.JP": "Japan", - "CountryName.KZ": "Kazakstan", "CountryName.KE": "Kenia", "CountryName.KG": "Kirgisi\u00eb", "CountryName.KH": "Kambodja", + "CountryName.KP": "Noord-Korea", "CountryName.KR": "Suid-Korea", "CountryName.KW": "Koeweit", + "CountryName.KZ": "Kazakstan", "CountryName.LA": "Laos", "CountryName.LB": "Libanon", - "CountryName.LR": "Liberi\u00eb", - "CountryName.LY": "Libi\u00eb", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Liberi\u00eb", "CountryName.LS": "Lesotho", "CountryName.LT": "Litaue", "CountryName.LU": "Luxemburg", "CountryName.LV": "Letland", + "CountryName.LY": "Libi\u00eb", "CountryName.MA": "Marokko", "CountryName.MD": "Moldowa", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagaskar", - "CountryName.MX": "Meksiko", "CountryName.MK": "Macedoni\u00eb", "CountryName.ML": "Mali", "CountryName.MM": "Mianmar (Birma)", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongoli\u00eb", - "CountryName.MZ": "Mosambiek", "CountryName.MR": "Mauritani\u00eb", "CountryName.MW": "Malawi", + "CountryName.MX": "Meksiko", "CountryName.MY": "Maleisi\u00eb", + "CountryName.MZ": "Mosambiek", "CountryName.NA": "Namibi\u00eb", "CountryName.NC": "Nieu-Kaledoni\u00eb", "CountryName.NE": "Niger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "Nieu-Seeland", "CountryName.OM": "Oman", - "CountryName.PK": "Pakistan", "CountryName.PA": "Panama", "CountryName.PE": "Peru", - "CountryName.PH": "Filippyne", "CountryName.PG": "Papoea-Nieu-Guinee", + "CountryName.PH": "Filippyne", + "CountryName.PK": "Pakistan", "CountryName.PL": "Pole", "CountryName.PR": "Puerto Rico", - "CountryName.KP": "Noord-Korea", + "CountryName.PS": "Palestynse gebiede", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Katar", "CountryName.RO": "Roemeni\u00eb", + "CountryName.RS": "Serwi\u00eb", "CountryName.RU": "Rusland", "CountryName.RW": "Rwanda", "CountryName.SA": "Saoedi-Arabi\u00eb", - "CountryName.SD": "Soedan", - "CountryName.SS": "Suid-Soedan", - "CountryName.SN": "Senegal", "CountryName.SB": "Salomonseilande", + "CountryName.SD": "Soedan", + "CountryName.SE": "Swede", + "CountryName.SI": "Sloweni\u00eb", + "CountryName.SK": "Slowakye", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somali\u00eb", - "CountryName.RS": "Serwi\u00eb", "CountryName.SR": "Suriname", - "CountryName.SK": "Slowakye", - "CountryName.SI": "Sloweni\u00eb", - "CountryName.SE": "Swede", - "CountryName.SZ": "Swaziland", + "CountryName.SS": "Suid-Soedan", + "CountryName.SV": "El Salvador", "CountryName.SY": "Siri\u00eb", + "CountryName.SZ": "Swaziland", "CountryName.TD": "Tsjad", + "CountryName.TF": "Franse Suidelike Gebiede", "CountryName.TG": "Togo", "CountryName.TH": "Thailand", "CountryName.TJ": "Tadjikistan", - "CountryName.TM": "Turkmeni\u00eb", "CountryName.TL": "Oos-Timor", - "CountryName.TT": "Trinidad en Tobago", + "CountryName.TM": "Turkmeni\u00eb", "CountryName.TN": "Tunisi\u00eb", "CountryName.TR": "Turkye", + "CountryName.TT": "Trinidad en Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tanzani\u00eb", - "CountryName.UG": "Uganda", "CountryName.UA": "Oekra\u00efne", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "Verenigde State van Amerika", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Oesbekistan", "CountryName.VE": "Venezuela", "CountryName.VN": "Vi\u00ebtnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Palestynse gebiede", "CountryName.YE": "Jemen", "CountryName.ZA": "Suid-Afrika", "CountryName.ZM": "Zambi\u00eb", "CountryName.ZW": "Zimbabwe", - "FitBoundsControl.tooltip": "Fit map to task features", - "LayerToggle.controls.showTaskFeatures.label": "Task Features", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(loading...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Edit in iD (web editor)", + "Editor.josm.label": "JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "JOSM met ''n nuwe laag", + "Editor.level0.label": "Edit in Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Get Help", - "Footer.reportBug": "Report a Bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Follow Us", - "Footer.email.placeholder": "Email Address", - "Footer.email.submit.label": "Submit", - "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", - "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", - "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", - "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Unable to delete challenge.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Unable to delete task.", + "Errors.task.doesNotExist": "That task does not exist.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "No tasks remain in this challenge.", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Unable to fetch user data from server.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", + "Errors.user.notFound": "No user found with that username.", + "Errors.user.unauthenticated": "Please sign in to continue.", + "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Fit map to task features", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Email Address", + "Footer.email.submit.label": "Submit", + "Footer.followUs": "Follow Us", + "Footer.getHelp": "Get Help", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Report a Bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Add a Rule", + "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", + "Form.textUpload.readonly": "Existing file will be used", + "General.controls.moreResults.label": "More Results", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Help", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "HomePane.feedback.header": "Feedback", + "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Get Started", - "Admin.TaskInspect.controls.previousTask.label": "Prior Task", - "Admin.TaskInspect.controls.nextTask.label": "Next Task", - "Admin.TaskInspect.controls.editTask.label": "Edit Task", - "Admin.TaskInspect.controls.modifyTask.label": "Modify Task", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "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.editJosm": "Edit in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", + "KeyMapping.openEditor.editLevel0": "Edit in Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Not an Issue", + "KeyMapping.taskCompletion.fixed": "I fixed it!", + "KeyMapping.taskCompletion.skip": "Skip", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancel Editing", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Next Task", + "KeyMapping.taskInspect.prevTask": "Previous Task", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Add keyword", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "More Results", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(loading...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Leaderboard", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "Points", + "Leaderboard.user.topChallenges": "Top Challenges", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Sorry, MapRoulette does not currently support mobile devices.", "MobileNotSupported.pageMessage": "Sorry, this page is not yet compatible with mobile devices and smaller screens.", "MobileNotSupported.widenDisplay": "If using a computer, please widen your window or use a larger display.", - "Navbar.links.dashboard": "Dashboard", + "MobileTask.subheading.instructions": "Instructions", + "Navbar.links.admin": "Administrasie", "Navbar.links.challengeResults": "Find Challenges", - "Navbar.links.leaderboard": "Leaderboard", + "Navbar.links.dashboard": "Dashboard", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Learn", "Navbar.links.inbox": "Inbox", + "Navbar.links.leaderboard": "Leaderboard", "Navbar.links.review": "Review", - "Navbar.links.admin": "Administrasie", - "Navbar.links.help": "Learn", - "Navbar.links.userProfile": "Gebruiker Profile", - "Navbar.links.userMetrics": "User Metrics", "Navbar.links.signout": "Teken Uit", - "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "User Metrics", + "Navbar.links.userProfile": "Gebruiker Profile", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "My Points", "PopularChallenges.header": "Popular Challenges", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Kies die verstek basemap te vertoon op die kaart. Slegs ''n standaard uitdaging basemap sal die opsie hier gekies ignoreer.", + "Profile.form.defaultBasemap.label": "Default Basemap", + "Profile.form.defaultEditor.description": "Kies die verstek redakteur wat jy wil gebruik wanneer vaststelling take. Deur hierdie opsie te kies sal jy in staat wees om die dialoog redakteur seleksie slaan na die druk op wysig in ''n taak.", + "Profile.form.defaultEditor.label": "Standaard Redakteur", + "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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", + "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", + "Profile.form.locale.description": "Gebruikers land te gebruik vir MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", - "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "Approve", - "Admin.TaskReview.controls.rejected": "Reject", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", - "Admin.TaskReview.controls.startReview": "Start Review", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Submit for Review Again", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Rebuild Tasks", + "RebuildTasksControl.modal.controls.cancel.label": "Cancel", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Proceed", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", + "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", + "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tracked Tasks", - "Task.unsave.control.tooltip": "Stop Tracking", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "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.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Copy", "SignIn.control.label": "Teken In", "SignIn.control.longLabel": "Sign in to get started", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Cancel", + "StepNavigation.controls.finish.label": "Finish", + "StepNavigation.controls.next.label": "Next", + "StepNavigation.controls.prev.label": "Prev", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Internal Id", - "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "Status", - "Task.fields.priority.label": "Priority", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Review Status", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapper", - "Task.fields.reviewedBy.label": "Reviewer", - "Admin.fields.reviewedAt.label": "Reviewed On", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Admin.TaskAnalysisTable.controls.editTask.label": "Edit", - "Admin.TaskAnalysisTable.controls.startTask.label": "Start", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Change status to", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Export CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Your comment", - "Task.comments.comment.controls.submit.label": "Submit", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Comments", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Next task:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Cancel", - "TaskConfirmationModal.submit.label": "Submit", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Task marked as", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "More Options", + "Task.comments.comment.controls.submit.label": "Submit", "Task.controls.alreadyFixed.label": "Already fixed", "Task.controls.alreadyFixed.tooltip": "Already fixed", "Task.controls.cancelEditing.label": "Cancel Editing", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "I fixed it!", - "ActiveTask.controls.notFixed.label": "Too difficult / Couldn't see", - "ActiveTask.controls.aleadyFixed.label": "Already fixed", - "ActiveTask.controls.cancelEditing.label": "Go Back", + "Task.controls.completionComment.placeholder": "Your comment", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Contact Owner", "Task.controls.edit.label": "Edit", "Task.controls.edit.tooltip": "Edit", "Task.controls.falsePositive.label": "Not an Issue", "Task.controls.falsePositive.tooltip": "Not an Issue", "Task.controls.fixed.label": "I fixed it!", "Task.controls.fixed.tooltip": "I fixed it!", + "Task.controls.moreOptions.label": "More Options", "Task.controls.next.label": "Next Task", - "Task.controls.next.tooltip": "Next Task", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Next Task", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Skip", "Task.controls.skip.tooltip": "Skip Task", - "Task.controls.tooHard.label": "Too hard / Can't see", - "Task.controls.tooHard.tooltip": "Too hard / Can't see", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Task Details", - "ActiveTask.controls.comments.tooltip": "View Comments", - "ActiveTask.subheading.comments": "Comments", - "ActiveTask.heading": "Challenge Information", - "ActiveTask.subheading.instructions": "Instructions", - "ActiveTask.subheading.location": "Location", - "ActiveTask.subheading.progress": "Uitdaging Vordering", - "ActiveTask.subheading.social": "Share", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructions", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "Modify", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Track this Task", "Task.controls.untrack.label": "Stop tracking this Task", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Available", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Feature Id", + "Task.fields.id.label": "Internal Id", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "Priority", + "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Review Status", + "Task.fields.reviewedBy.label": "Reviewer", + "Task.fields.status.label": "Status", + "Task.loadByMethod.proximity": "Nearby", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "Modify", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Task marked as", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "High", + "Task.priority.low": "Low", + "Task.priority.medium": "Medium", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Already Fixed", + "Task.status.created": "Created", + "Task.status.deleted": "Deleted", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Not an Issue", + "Task.status.fixed": "Fixed", + "Task.status.skipped": "Skipped", + "Task.status.tooHard": "Te moeilik", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "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.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Comments", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Cancel", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Next task:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Existing Status", - "ActiveTask.controls.status.tooltip": "Existing Status", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Your Top Challenges", "TopUserChallenges.widget.label": "Your Top Challenges", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tracked Tasks", + "UserProfile.topChallenges.header": "Your Top Challenges", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "Challenges", + "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Widgets.ChallengeListWidget.title": "Challenges", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", + "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Overview", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", + "Widgets.ChallengeTasksWidget.label": "Tasks", + "Widgets.ChallengeTasksWidget.title": "Tasks", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Comments", + "Widgets.CommentsWidget.title": "Comments", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Challenge has no tasks", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Leaderboard", + "Widgets.LeaderboardWidget.title": "Leaderboard", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "About Projects", + "Widgets.ProjectAboutWidget.title": "About Projects", + "Widgets.ProjectListWidget.label": "Project List", + "Widgets.ProjectListWidget.search.placeholder": "Search", + "Widgets.ProjectListWidget.title": "Projects", + "Widgets.ProjectManagersWidget.label": "Project Managers", + "Widgets.ProjectOverviewWidget.label": "Overview", + "Widgets.ProjectOverviewWidget.title": "Overview", + "Widgets.RecentActivityWidget.label": "Recent Activity", + "Widgets.RecentActivityWidget.title": "Recent Activity", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Leaderboard", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### 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| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Points", - "Leaderboard.user.topChallenges": "Top Challenges", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Standaard Redakteur", - "Profile.form.defaultEditor.description": "Kies die verstek redakteur wat jy wil gebruik wanneer vaststelling take. Deur hierdie opsie te kies sal jy in staat wees om die dialoog redakteur seleksie slaan na die druk op wysig in ''n taak.", - "Profile.form.defaultBasemap.label": "Default Basemap", - "Profile.form.defaultBasemap.description": "Kies die verstek basemap te vertoon op die kaart. Slegs ''n standaard uitdaging basemap sal die opsie hier gekies ignoreer.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Voeg n persoonlike basis kaart hier. Eg. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "Gebruikers land te gebruik vir MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", - "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Updated", - "Activity.action.created": "Created", - "Activity.action.deleted": "Deleted", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Project", - "Activity.item.challenge": "Challenge", - "Activity.item.task": "Task", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Custom", - "Challenge.difficulty.easy": "Easy", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Any", - "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", - "Challenge.keywords.buildings": "Buildings", - "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Anything", - "Challenge.location.nearMe": "Near Me", - "Challenge.location.withinMapBounds": "Within Map Bounds", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Anywhere", - "Challenge.status.none": "Not Applicable", - "Challenge.status.building": "Building", - "Challenge.status.failed": "Failed", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partially Loaded", - "Challenge.status.finished": "Finished", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Challenge", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Edit in iD (web editor)", - "Editor.josm.label": "JOSM", - "Editor.josmLayer.label": "JOSM met ''n nuwe laag", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Edit in Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", - "Errors.user.unauthenticated": "Please sign in to continue.", - "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Unable to fetch user data from server.", - "Errors.user.notFound": "No user found with that username.", - "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", - "Errors.task.none": "No tasks remain in this challenge.", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Unable to delete task.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "That task does not exist.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Unable to delete challenge.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Edit in Id", - "KeyMapping.openEditor.editJosm": "Edit in JOSM", - "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Edit in Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Cancel Editing", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Skip", - "KeyMapping.taskCompletion.falsePositive": "Not an Issue", - "KeyMapping.taskCompletion.fixed": "I fixed it!", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", - "KeyMapping.taskInspect.nextTask": "Next Task", - "KeyMapping.taskInspect.prevTask": "Previous Task", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Newest", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Default", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Nearby", - "Task.priority.high": "High", - "Task.priority.medium": "Medium", - "Task.priority.low": "Low", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Created", - "Task.status.fixed": "Fixed", - "Task.status.falsePositive": "Not an Issue", - "Task.status.skipped": "Skipped", - "Task.status.deleted": "Deleted", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Already Fixed", - "Task.status.tooHard": "Te moeilik", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/cs_CZ.json b/src/lang/cs_CZ.json index 323fcf922..ed4642e4e 100644 --- a/src/lang/cs_CZ.json +++ b/src/lang/cs_CZ.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Vaše nedávná aktivita", - "BurndownChart.heading": "Zbývající úkoly: {taskCount, number}", - "BurndownChart.tooltip": "Zbývající úkoly", - "CalendarHeatmap.heading": "Denní tepelná mapa: Dokončení úkolu", + "ActiveTask.controls.aleadyFixed.label": "Already fixed", + "ActiveTask.controls.cancelEditing.label": "Jít zpět", + "ActiveTask.controls.comments.tooltip": "View Comments", + "ActiveTask.controls.fixed.label": "I fixed it!", + "ActiveTask.controls.info.tooltip": "Task Details", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Existing Status", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Challenge Information", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Komentáře", + "ActiveTask.subheading.instructions": "Návod", + "ActiveTask.subheading.location": "Location", + "ActiveTask.subheading.progress": "Challenge Progress", + "ActiveTask.subheading.social": "Sdílet", + "ActiveTask.subheading.status": "Existing Status", + "Activity.action.created": "Created", + "Activity.action.deleted": "Deleted", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Updated", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Challenge", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Task", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Nedávná aktivita", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "Klonovat výzvu", + "Admin.Challenge.controls.delete.label": "Smazat výzvu", + "Admin.Challenge.controls.edit.label": "Upravit výzvu", + "Admin.Challenge.controls.move.label": "Přesunout výzvu", + "Admin.Challenge.controls.move.none": "Žádné povolené projekty", + "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", + "Admin.Challenge.controls.start.label": "Spustit výzvu", + "Admin.Challenge.controls.startChallenge.label": "Spustit výzvu", + "Admin.Challenge.fields.creationDate.label": "Vytvořeno:", + "Admin.Challenge.fields.enabled.label": "Viditelné:", + "Admin.Challenge.fields.lastModifiedDate.label": "Změněno:", + "Admin.Challenge.fields.status.label": "Stav:", + "Admin.Challenge.tasksBuilding": "Vytváření úkolů ...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Úkoly se nepodařilo vytvořit", + "Admin.Challenge.tasksNone": "Žádný úkol", + "Admin.Challenge.totalCreationTime": "Celkem zbývající čas", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Možnosti", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Název výzvy", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Hotovo", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Průběh dokončení", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Viditelný", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Last Activity", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Spravovat", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Upravit", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Název výzvy", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Průběh dokončení", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Klonovat", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Zahrnout sloupce stavu", - "ChallengeCard.totalTasks": "Celkem úkolů", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Spustit výzvu", - "Admin.Challenge.controls.edit.label": "Upravit výzvu", - "Admin.Challenge.controls.move.label": "Přesunout výzvu", - "Admin.Challenge.controls.move.none": "Žádné povolené projekty", - "Admin.Challenge.controls.clone.label": "Klonovat výzvu", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Smazat výzvu", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Upravit", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Spravovat", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Zahrnout sloupce stavu", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", "Admin.ChallengeList.noChallenges": "Žádné výzvy", - "ChallengeProgressBorder.available": "K dispozici", - "CompletionRadar.heading": "Úloha dokončena: {taskCount, number}", - "Admin.EditProject.unavailable": "Projekt není k dispozici", - "Admin.EditProject.edit.header": "Upravit", - "Admin.EditProject.new.header": "Nový projekt", - "Admin.EditProject.controls.save.label": "Uložit", - "Admin.EditProject.controls.cancel.label": "Zrušit", - "Admin.EditProject.form.name.label": "Název", - "Admin.EditProject.form.name.description": "Název projektu", - "Admin.EditProject.form.displayName.label": "Zobrazit název", - "Admin.EditProject.form.displayName.description": "Zobrazovaný název projektu", - "Admin.EditProject.form.enabled.label": "Viditelný", - "Admin.EditProject.form.enabled.description": "Pokud nastavíte svůj projekt na Viditelný, budou všechny výzvy pod ním, které jsou také nastaveny na Viditelné, dostupné, zjistitelné a budou prohledatelné pro ostatní uživatele. Efektivně zviditelníte svůj projekt a zveřejníte všechny výzvy, které jsou v jeho rámci viditelné. Stále můžete pracovat na svých vlastních výzvách a sdílet statické výzvy URL pro jakoukoli vaši výzvu s lidmi a bude to fungovat. Dokud nenastavíte svůj projekt na viditelný, uvidíte svůj projekt jako testovací základnu pro výzvy.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtuální", - "Admin.EditProject.form.isVirtual.description": "Pokud je projekt virtuální, můžete přidat stávající výzvy jako prostředek seskupení. Toto nastavení nelze po vytvoření projektu změnit. Oprávnění zůstávají v platnosti z původních mateřských projektů výzev.", - "Admin.EditProject.form.description.label": "Popis", - "Admin.EditProject.form.description.description": "Popis projektu", - "Admin.InspectTask.header": "Zkontrolovat úkoly", - "Admin.EditChallenge.edit.header": "Upravit", + "Admin.ChallengeTaskMap.controls.editTask.label": "Upravit úkol", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Zkontrolovat úlohu", "Admin.EditChallenge.clone.header": "Klonovat", - "Admin.EditChallenge.new.header": "Nová výzva", - "Admin.EditChallenge.lineNumber": "Řádek {line, number}:", + "Admin.EditChallenge.edit.header": "Upravit", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "Všeobecné", - "Admin.EditChallenge.form.visible.label": "Viditelný", - "Admin.EditChallenge.form.visible.description": "Umožněte, aby byla vaše výzva viditelná a zjistitelná ostatním uživatelům (s výhradou viditelnosti projektu). Pokud si nejste opravdu jistí při vytváření nových výzev, doporučujeme nejprve nechat tuto sadu na Ne, zvláště pokud byl nadřazený projekt zviditelněn. Pokud nastavíte viditelnost své výzvy na Ano, bude se to zobrazovat na domovské stránce, ve vyhledávání Challenge a v metrikách - ale pouze v případě, že bude viditelný také nadřazený projekt.", - "Admin.EditChallenge.form.name.label": "Název", - "Admin.EditChallenge.form.name.description": "Název výzvy, jak se objeví na mnoha místech v celé aplikaci. Toto bude také vaše výzva, kterou bude možné prohledat pomocí vyhledávacího pole. Toto pole je povinné a podporuje pouze prostý text.", - "Admin.EditChallenge.form.description.label": "Popis", - "Admin.EditChallenge.form.description.description": "Primární, delší popis vaší výzvy, který se zobrazí uživatelům, když kliknou na výzvu, aby se o ní dozvěděli více. Toto pole podporuje Markdown.", - "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.additionalKeywords.description": "Můžete případně zadat další klíčová slova, která lze použít k nalezení vaší výzvy. Uživatelé mohou vyhledávat podle klíčových slov z rozbalovací nabídky Ostatní v rozbalovacím seznamu Kategorie nebo do vyhledávacího pole zadáním hash znaku (např. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Klíčová slova", "Admin.EditChallenge.form.blurb.description": "Velmi stručný popis vaší výzvy vhodný pro malé prostory, jako je vyskakovací okno se značkou. Toto pole podporuje Markdown.", - "Admin.EditChallenge.form.instruction.label": "Instrukce", - "Admin.EditChallenge.form.instruction.description": "Instrukce říká mapovači, jak vyřešit úkol ve vaší výzvě. Toto je to, co mapovači vidí v poli Pokyny při každém načtení úlohy, a je to primární informace pro mapovače o tom, jak úkol vyřešit, proto o tomto poli pečlivě přemýšlejte. Můžete přidat odkazy na wiki OSM nebo jakýkoli jiný hypertextový odkaz, pokud chcete, protože toto pole podporuje Markdown. Můžete také odkazovat na vlastnosti objektu z GeoJSON pomocí jednoduchých značek např: `'{{address}}'` by bylo nahrazeno hodnotou vlastnosti `address`, což umožní základní přizpůsobení instrukcí pro každou úlohu. Toto pole je povinné.", - "Admin.EditChallenge.form.checkinComment.label": "Popis sady změn", + "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.category.description": "Výběr vhodné kategorie na vysoké úrovni pro vaši výzvu může uživatelům pomoci rychle odhalit výzvy, které odpovídají jejich zájmům. Pokud se nic nezdá vhodné, zvolte kategorii Ostatní.", + "Admin.EditChallenge.form.category.label": "Kategorie", "Admin.EditChallenge.form.checkinComment.description": "Komentář bude přidružen ke změnám provedeným uživateli v editoru", - "Admin.EditChallenge.form.checkinSource.label": "Zdroj změn", + "Admin.EditChallenge.form.checkinComment.label": "Popis sady změn", "Admin.EditChallenge.form.checkinSource.description": "Zdroj, který má být spojen se změnami provedenými uživateli v editoru", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automaticky připojit #maproulette hashtag (velmi doporučeno)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Přeskočit hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Pro analýzu sady změn je velmi užitečné umožnit, aby byl hashtag připojen ke komentářům sady změn.", - "Admin.EditChallenge.form.difficulty.label": "Obtížnost", + "Admin.EditChallenge.form.checkinSource.label": "Zdroj změn", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Vlastní Základní mapa", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "Admin.EditChallenge.form.defaultBasemap.description": "Výchozí základní mapa, která se má použít pro výzvu, přepíše všechna uživatelská nastavení, která definují výchozí základní mapu", + "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", + "Admin.EditChallenge.form.defaultPriority.description": "Výchozí úroveň priority pro úkoly v této výzvě", + "Admin.EditChallenge.form.defaultPriority.label": "Výchozí priorita", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Výchozí úroveň přiblížení", + "Admin.EditChallenge.form.description.description": "Primární, delší popis vaší výzvy, který se zobrazí uživatelům, když kliknou na výzvu, aby se o ní dozvěděli více. Toto pole podporuje Markdown.", + "Admin.EditChallenge.form.description.label": "Popis", "Admin.EditChallenge.form.difficulty.description": "Vyberte si mezi Snadný, Normální a Expert a dejte mapovačům informaci, jaká úroveň dovedností je potřebná k vyřešení úkolů ve vaší výzvě. Snadné výzvy by měly být vhodné pro začátečníky s malými zkušenostmi.", - "Admin.EditChallenge.form.category.label": "Kategorie", - "Admin.EditChallenge.form.category.description": "Výběr vhodné kategorie na vysoké úrovni pro vaši výzvu může uživatelům pomoci rychle odhalit výzvy, které odpovídají jejich zájmům. Pokud se nic nezdá vhodné, zvolte kategorii Ostatní.", - "Admin.EditChallenge.form.additionalKeywords.label": "Klíčová slova", - "Admin.EditChallenge.form.additionalKeywords.description": "Můžete případně zadat další klíčová slova, která lze použít k nalezení vaší výzvy. Uživatelé mohou vyhledávat podle klíčových slov z rozbalovací nabídky Ostatní v rozbalovacím seznamu Kategorie nebo do vyhledávacího pole zadáním hash znaku (např. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Doporučeno", + "Admin.EditChallenge.form.difficulty.label": "Obtížnost", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Při procházení a hledání výzev se hlavní úkoly zobrazují v horní části seznamu. Výzvu mohou označit pouze superuživatelé.", - "Admin.EditChallenge.form.step2.label": "Zdroj GeoJSON ", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "Zdroj GeoJSON", - "Admin.EditChallenge.form.overpassQL.label": "Databázový dotaz Overpass API", + "Admin.EditChallenge.form.featured.label": "Doporučeno", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Pokračujte navzdory zjištěným chybám ve zdrojových datech. Zkoušet by to měli pouze odborní uživatelé, kteří plně rozumí důsledkům.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorovat chyby", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Pro analýzu sady změn je velmi užitečné umožnit, aby byl hashtag připojen ke komentářům sady změn.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Přeskočit hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automaticky připojit #maproulette hashtag (velmi doporučeno)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instrukce", + "Admin.EditChallenge.form.localGeoJson.description": "Nahrajte prosím z počítače místní soubor GeoJSON", + "Admin.EditChallenge.form.localGeoJson.label": "Nahrát soubor", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Maximální úroveň zvětšení", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Minimální úroveň přiblížení", + "Admin.EditChallenge.form.name.description": "Název výzvy, jak se objeví na mnoha místech v celé aplikaci. Toto bude také vaše výzva, kterou bude možné prohledat pomocí vyhledávacího pole. Toto pole je povinné a podporuje pouze prostý text.", + "Admin.EditChallenge.form.name.label": "Název", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Při vkládání nadřazeného dotazu zadejte vhodný ohraničovací rámeček, protože by to mohlo potenciálně generovat velké množství dat a zablokovat nebo shodit systém.", + "Admin.EditChallenge.form.overpassQL.label": "Databázový dotaz Overpass API", "Admin.EditChallenge.form.overpassQL.placeholder": "Sem zadejte dotaz Overpass API ...", - "Admin.EditChallenge.form.localGeoJson.label": "Nahrát soubor", - "Admin.EditChallenge.form.localGeoJson.description": "Nahrajte prosím z počítače místní soubor GeoJSON", - "Admin.EditChallenge.form.remoteGeoJson.label": "Vzdálené URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Vzdálené umístění URL, ze kterého lze načíst GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Vzdálené URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorovat chyby", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Pokračujte navzdory zjištěným chybám ve zdrojových datech. Zkoušet by to měli pouze odborní uživatelé, kteří plně rozumí důsledkům.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "Zdroj GeoJSON", + "Admin.EditChallenge.form.step1.label": "Všeobecné", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "Zdroj GeoJSON ", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priority", - "Admin.EditChallenge.form.step3.description": "Prioritu úkolů lze definovat jako vysokou, střední a nízkou. Všechny úkoly s vysokou prioritou budou uživatelům nabídnuty nejprve, když se vypořádají s výzvou, poté budou následovat úkoly se střední a konečnou prioritou. Priorita každého úkolu je přiřazena automaticky na základě pravidel, která určíte níže, přičemž každé z nich je vyhodnoceno na základě vlastností funkce úkolu (značky OSM, pokud používáte dotaz nadjetí, jinak ať už jste vybrali vlastnosti, které chcete zahrnout do svého GeoJSON). Úkolům, které neprojdou přes žádná pravidla, bude přidělena výchozí priorita.", - "Admin.EditChallenge.form.defaultPriority.label": "Výchozí priorita", - "Admin.EditChallenge.form.defaultPriority.description": "Výchozí úroveň priority pro úkoly v této výzvě", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Extra informace, které lze volitelně nastavit, aby poskytovaly lepší mapovací zážitek specifický pro požadavky výzvy", - "Admin.EditChallenge.form.updateTasks.label": "Odebrat zastaralé úkoly", - "Admin.EditChallenge.form.updateTasks.description": "Pravidelně odstraňujte staré, zastaralé (neaktualizované do ~ 30 dnů) úkoly stále ve stavu Vytvořeno nebo Přeskočeno. To může být užitečné, pokud pravidelně aktualizujete své úkoly a chcete, aby vám byly staré pravidelně odstraňovány. Většinou budete chtít nechat toto nastavení na Ne.", - "Admin.EditChallenge.form.defaultZoom.label": "Výchozí úroveň přiblížení", - "Admin.EditChallenge.form.defaultZoom.description": "Když uživatel začne pracovat na úkolu, MapRoulette se pokusí automaticky použít úroveň přiblížení, která odpovídá hranicím funkce úkolu. Pokud to však není možné, použije se tato výchozí úroveň přiblížení. Měla by být nastavena na úroveň, která je obecně vhodná pro práci na většině úkolů ve vaší výzvě.", - "Admin.EditChallenge.form.minZoom.label": "Minimální úroveň přiblížení", - "Admin.EditChallenge.form.minZoom.description": "Minimální povolená úroveň přiblížení pro vaši výzvu. To by mělo být nastaveno na úroveň, která umožňuje uživateli dostatečně oddálit práci na úkolech a zároveň je udržet od oddálení na úroveň, která není užitečná.", - "Admin.EditChallenge.form.maxZoom.label": "Maximální úroveň zvětšení", - "Admin.EditChallenge.form.maxZoom.description": "Maximální povolená úroveň přiblížení pro vaši výzvu. To by mělo být nastaveno na úroveň, která umožňuje uživateli dostatečně přiblížit práci na úkolech a zároveň je udržet od přiblížení na úroveň, která není užitečná nebo překračuje dostupné rozlišení mapy / snímků v geografické oblasti.", - "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", - "Admin.EditChallenge.form.defaultBasemap.description": "Výchozí základní mapa, která se má použít pro výzvu, přepíše všechna uživatelská nastavení, která definují výchozí základní mapu", - "Admin.EditChallenge.form.customBasemap.label": "Vlastní Základní mapa", - "Admin.EditChallenge.form.customBasemap.description": "Sem vložte vlastní základní adresu URL mapy. Např. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Výzvy", - "Admin.ManageChallenges.help.info": "Výzvy spočívají v mnoha úkolech, které pomáhají řešit konkrétní problém nebo nedostatky s daty OpenStreetMap. Úkoly jsou obvykle generovány automaticky z nadřazeného dotazu, který zadáte při vytváření nové výzvy, ale lze je také načíst z místního souboru nebo vzdálené adresy URL obsahující funkce GeoJSON. Můžete vytvořit tolik výzev, kolik chcete.", - "Admin.ManageChallenges.search.placeholder": "Název", - "Admin.ManageChallenges.allProjectChallenge": "Vše", - "Admin.Challenge.fields.creationDate.label": "Vytvořeno:", - "Admin.Challenge.fields.lastModifiedDate.label": "Změněno:", - "Admin.Challenge.fields.status.label": "Stav:", - "Admin.Challenge.fields.enabled.label": "Viditelné:", - "Admin.Challenge.controls.startChallenge.label": "Spustit výzvu", - "Admin.Challenge.activity.label": "Nedávná aktivita", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", - "Admin.EditTask.edit.header": "Upravit úlohu", - "Admin.EditTask.new.header": "Nová úloha", - "Admin.EditTask.form.formTitle": "Podrobnosti úkolu", - "Admin.EditTask.controls.save.label": "Uložit", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Pravidelně odstraňujte staré, zastaralé (neaktualizované do ~ 30 dnů) úkoly stále ve stavu Vytvořeno nebo Přeskočeno. To může být užitečné, pokud pravidelně aktualizujete své úkoly a chcete, aby vám byly staré pravidelně odstraňovány. Většinou budete chtít nechat toto nastavení na Ne.", + "Admin.EditChallenge.form.updateTasks.label": "Odebrat zastaralé úkoly", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Viditelný", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "Nová výzva", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Zrušit", + "Admin.EditProject.controls.save.label": "Uložit", + "Admin.EditProject.edit.header": "Upravit", + "Admin.EditProject.form.description.description": "Popis projektu", + "Admin.EditProject.form.description.label": "Popis", + "Admin.EditProject.form.displayName.description": "Zobrazovaný název projektu", + "Admin.EditProject.form.displayName.label": "Zobrazit název", + "Admin.EditProject.form.enabled.description": "Pokud nastavíte svůj projekt na Viditelný, budou všechny výzvy pod ním, které jsou také nastaveny na Viditelné, dostupné, zjistitelné a budou prohledatelné pro ostatní uživatele. Efektivně zviditelníte svůj projekt a zveřejníte všechny výzvy, které jsou v jeho rámci viditelné. Stále můžete pracovat na svých vlastních výzvách a sdílet statické výzvy URL pro jakoukoli vaši výzvu s lidmi a bude to fungovat. Dokud nenastavíte svůj projekt na viditelný, uvidíte svůj projekt jako testovací základnu pro výzvy.", + "Admin.EditProject.form.enabled.label": "Viditelný", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtuální", + "Admin.EditProject.form.name.description": "Název projektu", + "Admin.EditProject.form.name.label": "Název", + "Admin.EditProject.new.header": "Nový projekt", + "Admin.EditProject.unavailable": "Projekt není k dispozici", "Admin.EditTask.controls.cancel.label": "Zrušit", - "Admin.EditTask.form.name.label": "Název", - "Admin.EditTask.form.name.description": "Název úlohy", - "Admin.EditTask.form.instruction.label": "Instrukce", - "Admin.EditTask.form.instruction.description": "Pokyny pro uživatele provádějící tento konkrétní úkol (přepíše pokyny k výzvě)", - "Admin.EditTask.form.geometries.label": "GeoJSON", - "Admin.EditTask.form.geometries.description": "GeoJSON pro tento úkol. Každý úkol v MapRoulette se v podstatě skládá z geometrie: bodu, čáry nebo mnohoúhelníku označujícího na mapě, kde chcete, aby mapovač věnoval pozornost, popsal GeoJSON", - "Admin.EditTask.form.priority.label": "Priorita", - "Admin.EditTask.form.status.label": "Stav", - "Admin.EditTask.form.status.description": "Stav tohoto úkolu. V závislosti na aktuálním stavu mohou být vaše možnosti aktualizace stavu omezeny", - "Admin.EditTask.form.additionalTags.label": "MR Značky", + "Admin.EditTask.controls.save.label": "Uložit", + "Admin.EditTask.edit.header": "Upravit úlohu", "Admin.EditTask.form.additionalTags.description": "Můžete případně zadat další MR značky, které lze použít k anotaci tohoto úkolu.", + "Admin.EditTask.form.additionalTags.label": "MR Značky", "Admin.EditTask.form.additionalTags.placeholder": "Přidat MR Značky", - "Admin.Task.controls.editTask.tooltip": "Upravit úlohu", - "Admin.Task.controls.editTask.label": "Upravit", - "Admin.manage.header": "Vytvořit a spravovat", - "Admin.manage.virtual": "Virtuální", - "Admin.ProjectCard.tabs.challenges.label": "Výzvy", - "Admin.ProjectCard.tabs.details.label": "Detaily", - "Admin.ProjectCard.tabs.managers.label": "Manažeři", - "Admin.Project.fields.enabled.tooltip": "Povoleno", - "Admin.Project.fields.disabled.tooltip": "Nepovoleno", - "Admin.ProjectCard.controls.editProject.tooltip": "Upravit projekt", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.formTitle": "Podrobnosti úkolu", + "Admin.EditTask.form.geometries.description": "GeoJSON pro tento úkol. Každý úkol v MapRoulette se v podstatě skládá z geometrie: bodu, čáry nebo mnohoúhelníku označujícího na mapě, kde chcete, aby mapovač věnoval pozornost, popsal GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Pokyny pro uživatele provádějící tento konkrétní úkol (přepíše pokyny k výzvě)", + "Admin.EditTask.form.instruction.label": "Instrukce", + "Admin.EditTask.form.name.description": "Název úlohy", + "Admin.EditTask.form.name.label": "Název", + "Admin.EditTask.form.priority.label": "Priorita", + "Admin.EditTask.form.status.description": "Stav tohoto úkolu. V závislosti na aktuálním stavu mohou být vaše možnosti aktualizace stavu omezeny", + "Admin.EditTask.form.status.label": "Stav", + "Admin.EditTask.new.header": "Nová úloha", + "Admin.InspectTask.header": "Zkontrolovat úkoly", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "Vše", + "Admin.ManageChallenges.header": "Výzvy", + "Admin.ManageChallenges.help.info": "Výzvy spočívají v mnoha úkolech, které pomáhají řešit konkrétní problém nebo nedostatky s daty OpenStreetMap. Úkoly jsou obvykle generovány automaticky z nadřazeného dotazu, který zadáte při vytváření nové výzvy, ale lze je také načíst z místního souboru nebo vzdálené adresy URL obsahující funkce GeoJSON. Můžete vytvořit tolik výzev, kolik chcete.", + "Admin.ManageChallenges.search.placeholder": "Název", + "Admin.ManageTasks.geographicIndexingNotice": "Upozorňujeme, že geografické indexování nových nebo modifikovaných výzev může trvat až {delay} hours. Vaše výzva (a úkoly) se nemusí zobrazit podle očekávání při procházení podle konkrétního místa nebo při vyhledávání, dokud není indexování dokončeno.", + "Admin.ManageTasks.header": "Úkoly", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Přidat výzvu", + "Admin.Project.controls.addChallenge.tooltip": "Nová výzva", + "Admin.Project.controls.delete.label": "Smazat Projekt", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Spravovat seznam výzev", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Vytvořeno:", + "Admin.Project.fields.disabled.tooltip": "Nepovoleno", + "Admin.Project.fields.enabled.tooltip": "Povoleno", + "Admin.Project.fields.lastModifiedDate.label": "Změněno:", "Admin.Project.headers.challengePreview": "Podobné výzvy", "Admin.Project.headers.virtual": "Virtuální", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Upravit Projekt", - "Admin.ProjectDashboard.controls.delete.label": "Smazat Projekt", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Upravit projekt", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Výzvy", + "Admin.ProjectCard.tabs.details.label": "Detaily", + "Admin.ProjectCard.tabs.managers.label": "Manažeři", "Admin.ProjectDashboard.controls.addChallenge.label": "Přidat Výzvu", + "Admin.ProjectDashboard.controls.delete.label": "Smazat Projekt", + "Admin.ProjectDashboard.controls.edit.label": "Upravit Projekt", "Admin.ProjectDashboard.controls.manageChallenges.label": "Spravovat Výzvy", - "Admin.Project.fields.creationDate.label": "Vytvořeno:", - "Admin.Project.fields.lastModifiedDate.label": "Změněno:", - "Admin.Project.controls.delete.label": "Smazat Projekt", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "Přidat Projekt", + "Admin.ProjectManagers.addManager": "Přidat projektového manažera", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "uživatelské jméno OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Opravdu chcete tohoto manažera z projektu odebrat?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Vybrat roli", + "Admin.ProjectManagers.noManagers": "Žádní manažeři", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Vlastník", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projekty slouží jako prostředek seskupování souvisejících výzev dohromady. Všechny výzvy musí patřit k projektu.", - "Admin.ProjectsDashboard.search.placeholder": "Název projektu nebo výzvy", - "Admin.Project.controls.addChallenge.tooltip": "Nová výzva", + "Admin.ProjectsDashboard.newProject": "Přidat Projekt", "Admin.ProjectsDashboard.regenerateHomeProject": "Chcete-li vygenerovat nový domovský projekt, odhlaste se a znovu se přihlaste.", - "RebuildTasksControl.label": "Přestavět úkoly", - "RebuildTasksControl.modal.title": "Přestavět Úkoly Výzev", - "RebuildTasksControl.modal.intro.overpass": "Opětovným spuštěním se znovu spustí databázový dotaz Overpass a znovu se vytvoří výzva s nejnovějšími daty:", - "RebuildTasksControl.modal.intro.remote": "Opětovné vytvoření znovu stáhne data GeoJSON ze vzdálené adresy URL výzvy a znovu vytvoří úlohy úlohy s nejnovějšími daty:", - "RebuildTasksControl.modal.intro.local": "Opětovné sestavení vám umožní nahrát nový místní soubor s nejnovějšími daty GeoJSON a znovu vytvořit úkoly úkolu:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Varování: Opětovné sestavení může vést ke zdvojení úkolů, pokud vaše ID funkcí nejsou správně nastaveny nebo pokud není sladění starých dat s novými daty neúspěšné. Tuto operaci nelze vrátit zpět!", - "RebuildTasksControl.modal.moreInfo": "[Další informace](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "Nejprve odebrat neúplné úkoly", - "RebuildTasksControl.modal.controls.cancel.label": "Zrušit", - "RebuildTasksControl.modal.controls.proceed.label": "Pokračovat", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Zrušit", - "StepNavigation.controls.next.label": "Další", - "StepNavigation.controls.prev.label": "Předchozí", - "StepNavigation.controls.finish.label": "Dokončit", + "Admin.ProjectsDashboard.search.placeholder": "Název projektu nebo výzvy", + "Admin.Task.controls.editTask.label": "Upravit", + "Admin.Task.controls.editTask.tooltip": "Upravit úlohu", + "Admin.Task.fields.name.label": "Úkol:", + "Admin.Task.fields.status.label": "Stav: ", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Akce", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Komentáře", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Upravit", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Kontrolovat", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Kontrola", + "Admin.TaskAnalysisTable.controls.startTask.label": "Začít", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Mazání úkolů", "Admin.TaskDeletingProgress.tasksDeleting.label": "úkoly smazány", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Upravit úkol", + "Admin.TaskInspect.controls.modifyTask.label": "Změnit úkol", + "Admin.TaskInspect.controls.nextTask.label": "Další úkol", + "Admin.TaskInspect.controls.previousTask.label": "Předchozí úkol", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Vytváření úkolů", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Potvrdit", + "Admin.TaskReview.controls.approvedWithFixes": "Schválit (s opravami)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Stav kontroly: ", + "Admin.TaskReview.controls.currentTaskStatus.label": "Stav úkolu:", + "Admin.TaskReview.controls.rejected": "Odmítnout", + "Admin.TaskReview.controls.resubmit": "Odeslat znovu ke kontrole", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Tento úkol je v současné době kontrolován někým jiným.", + "Admin.TaskReview.controls.reviewNotRequested": "Pro tento úkol nebyla požadována kontrola.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Začít kontrolu", + "Admin.TaskReview.controls.taskNotCompleted": "Tento úkol není připraven ke kontrole, protože ještě nebyl dokončen.", + "Admin.TaskReview.controls.taskTags.label": "Značky:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Aktualizovat stav kontroly", + "Admin.TaskReview.controls.userNotReviewer": "Momentálně nejste nastaveni jako kontrolor. Chcete-li se stát kontrolorem, můžete tak učinit návštěvou uživatelských nastavení.", + "Admin.TaskReview.reviewerIsMapper": "Nemůžete zkontrolovat úkoly, které jste namapovali.", "Admin.TaskUploadProgress.tasksUploaded.label": "úkoly nahrány", - "Admin.Challenge.tasksBuilding": "Vytváření úkolů ...", - "Admin.Challenge.tasksFailed": "Úkoly se nepodařilo vytvořit", - "Admin.Challenge.tasksNone": "Žádný úkol", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Celkem zbývající čas", - "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", - "Admin.ManageTasks.header": "Úkoly", - "Admin.ManageTasks.geographicIndexingNotice": "Upozorňujeme, že geografické indexování nových nebo modifikovaných výzev může trvat až {delay} hours. Vaše výzva (a úkoly) se nemusí zobrazit podle očekávání při procházení podle konkrétního místa nebo při vyhledávání, dokud není indexování dokončeno.", - "Admin.manageTasks.controls.changePriority.label": "Změnit prioritu", - "Admin.manageTasks.priorityLabel": "Priorita", - "Admin.manageTasks.controls.clearFilters.label": "Vymazat Filtry", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Zkontrolovat úlohu", - "Admin.ChallengeTaskMap.controls.editTask.label": "Upravit úkol", - "Admin.Task.fields.name.label": "Úkol:", - "Admin.Task.fields.status.label": "Stav: ", - "Admin.VirtualProject.manageChallenge.label": "Spravovat výzvy", - "Admin.VirtualProject.controls.done.label": "Hotovo", - "Admin.VirtualProject.controls.addChallenge.label": "Přidat Výzvu", + "Admin.TaskUploadProgress.uploadingTasks.header": "Vytváření úkolů", "Admin.VirtualProject.ChallengeList.noChallenges": "Žádné Výzvy", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Výzvy v ", - "Admin.VirtualProject.findChallenges.label": "Hledat Výzvy", "Admin.VirtualProject.controls.add.label": "Přidat", + "Admin.VirtualProject.controls.addChallenge.label": "Přidat Výzvu", + "Admin.VirtualProject.controls.done.label": "Hotovo", "Admin.VirtualProject.controls.remove.label": "Odstranit", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Zbývající úkoly: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "Výzvy", - "Widgets.ChallengeListWidget.title": "Výzvy", - "Widgets.ChallengeListWidget.search.placeholder": "Hledat", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Hledat Výzvy", + "Admin.VirtualProject.manageChallenge.label": "Spravovat výzvy", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Zkontrolováno", + "Admin.manage.header": "Vytvořit a spravovat", + "Admin.manage.virtual": "Virtuální", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Přehled výzvy", - "Widgets.ChallengeOverviewWidget.title": "Přehled", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Vytvořeno:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Změněno:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Obnovené úkoly:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Stav:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Viditelné:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Úkoly", - "Widgets.ChallengeTasksWidget.title": "Úkoly", - "Widgets.CommentsWidget.label": "Komentáře", - "Widgets.CommentsWidget.title": "Komentáře", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Leaderboard", - "Widgets.LeaderboardWidget.title": "Leaderboard", - "Widgets.ProjectAboutWidget.label": "O Projektech", - "Widgets.ProjectAboutWidget.title": "O Projektech", - "Widgets.ProjectAboutWidget.content": "Projekty slouží jako prostředek seskupování souvisejících výzev dohromady. Všechny výzvy musí patřit k projektu.\n\nMůžete si vytvořit tolik projektů, kolik je potřeba k uspořádání vašich výzev, a můžete pozvat další uživatele MapRoulette, aby je s vámi mohli spravovat.\n\nProjekty musí být nastaveny tak, aby byly viditelné dříve, než se všechny problémy, které se v nich vyskytnou, objeví ve veřejném prohlížení nebo vyhledávání.", - "Widgets.ProjectListWidget.label": "Seznam Projektů", - "Widgets.ProjectListWidget.title": "Projekty", - "Widgets.ProjectListWidget.search.placeholder": "Hledat", - "Widgets.ProjectManagersWidget.label": "Manažeři Projektu", - "Admin.ProjectManagers.noManagers": "Žádní manažeři", - "Admin.ProjectManagers.addManager": "Přidat projektového manažera", - "Admin.ProjectManagers.projectOwner": "Vlastník", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Opravdu chcete tohoto manažera z projektu odebrat?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Vybrat roli", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "uživatelské jméno OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Přehled", - "Widgets.ProjectOverviewWidget.title": "Přehled", - "Widgets.RecentActivityWidget.label": "Nedávná aktivita", - "Widgets.RecentActivityWidget.title": "Nedávná aktivita", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Distribuce stavu dokončení", - "Metrics.tasks.evaluatedByUser.label": "Úkoly hodnocené uživateli", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Změnit prioritu", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Vymazat Filtry", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Exportovat CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Skrýt kontrolní sloupce", + "Admin.manageTasks.controls.showReviewColumns.label": "Zobrazit kontrolní sloupce", + "Admin.manageTasks.priorityLabel": "Priorita", "AutosuggestTextBox.labels.noResults": "No matches", - "Form.textUpload.prompt": "Sem přetáhněte soubor GeoJSON nebo kliknutím vyberte soubor", - "Form.textUpload.readonly": "Bude použit existující soubor", - "Form.controls.addPriorityRule.label": "Přidat pravidlo", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Zbývající úkoly: {taskCount, number}", + "BurndownChart.tooltip": "Zbývající úkoly", + "CalendarHeatmap.heading": "Denní tepelná mapa: Dokončení úkolu", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Custom", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Vymazat filtry", + "Challenge.controls.loadMore.label": "More Results", + "Challenge.controls.save.label": "Uložit", + "Challenge.controls.start.label": "Start", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Neuloženo", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Any", + "Challenge.difficulty.easy": "Easy", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Obtížnost", "Challenge.fields.lastTaskRefresh.label": "Úkoly od", "Challenge.fields.viewLeaderboard.label": "View Leaderboard", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Anything", + "Challenge.keywords.buildings": "Buildings", + "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", + "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Anywhere", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Near Me", + "Challenge.location.withinMapBounds": "Within Map Bounds", + "Challenge.management.controls.manage.label": "Spravovat", + "Challenge.results.heading": "Výzvy", + "Challenge.results.noResults": "No Results", + "Challenge.signIn.label": "Sign in to get started", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Nejnovější", + "Challenge.sort.default": "Výchozí", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Oblíbený", + "Challenge.status.building": "Building", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Failed", + "Challenge.status.finished": "Finished", + "Challenge.status.none": "Not Applicable", + "Challenge.status.partiallyLoaded": "Partially Loaded", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Challenge", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Celkem úkolů", + "ChallengeDetails.Task.fields.featured.label": "Doporučeno", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Spravovat", - "ChallengeDetails.Task.fields.featured.label": "Doporučeno", "ChallengeDetails.fields.difficulty.label": "Obtížnost", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Úkoly od", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Úkoly od", "ChallengeDetails.fields.viewLeaderboard.label": "View Leaderboard", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Spravovat", + "ChallengeEndModal.control.dismiss.label": "Pokračovat", "ChallengeEndModal.header": "Konec Výzvy", "ChallengeEndModal.primaryMessage": "Všechny zbývající úkoly v této výzvě jste označili jako vynechané nebo příliš těžké.", - "ChallengeEndModal.control.dismiss.label": "Pokračovat", - "Task.controls.contactOwner.label": "Kontaktovat vlastníka", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Výzvy", + "ChallengeFilterSubnav.controls.sortBy.label": "Třídit podle", "ChallengeFilterSubnav.filter.difficulty.label": "Náročnost", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Ostatní:", "ChallengeFilterSubnav.filter.location.label": "Location", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Vymazat filtry", - "ChallengeFilterSubnav.controls.sortBy.label": "Třídit podle", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Ostatní:", - "Challenge.controls.unsave.label": "Neuloženo", - "Challenge.controls.save.label": "Uložit", - "Challenge.controls.start.label": "Start", - "Challenge.management.controls.manage.label": "Spravovat", - "Challenge.signIn.label": "Sign in to get started", - "Challenge.results.heading": "Výzvy", - "Challenge.results.noResults": "No Results", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "More Results", + "ChallengeFilterSubnav.header": "Výzvy", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "Available", - "ChallengeProgress.tooltip.label": "Úlohy", - "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Úlohy", + "ChallengeProgressBorder.available": "K dispozici", "CommentList.controls.viewTask.label": "View Task", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "Úloha dokončena: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Zrušit", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Continue", "CongratulateModal.header": "Congratulations!", "CongratulateModal.primaryMessage": "Challenge is complete", - "CongratulateModal.control.dismiss.label": "Continue", - "CountryName.ALL": "Všechny země", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "Spojené Arabské Emiráty", "CountryName.AF": "Afghanistán", - "CountryName.AO": "Angola", "CountryName.AL": "Albánie", - "CountryName.AE": "Spojené Arabské Emiráty", - "CountryName.AR": "Argentina", + "CountryName.ALL": "Všechny země", "CountryName.AM": "Arménie", + "CountryName.AO": "Angola", "CountryName.AQ": "Antarktida", - "CountryName.TF": "Francouzská jižní území", - "CountryName.AU": "Austrálie", + "CountryName.AR": "Argentina", "CountryName.AT": "Rakousko", + "CountryName.AU": "Austrálie", "CountryName.AZ": "Ázerbajdžán", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosna a Herzegovina", + "CountryName.BD": "Bangladéš", "CountryName.BE": "Belgie", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladéš", "CountryName.BG": "Bulharsko", - "CountryName.BS": "Bahamy", - "CountryName.BA": "Bosna a Herzegovina", - "CountryName.BY": "Bělorusko", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunej", "CountryName.BO": "Bolívie", "CountryName.BR": "Brazílie", - "CountryName.BN": "Brunej", + "CountryName.BS": "Bahamy", "CountryName.BT": "Bhútán", "CountryName.BW": "Botswana", - "CountryName.CF": "Středoafrická republika", + "CountryName.BY": "Bělorusko", + "CountryName.BZ": "Belize", "CountryName.CA": "Kanada", + "CountryName.CD": "Kongo (Kinshasa)", + "CountryName.CF": "Středoafrická republika", + "CountryName.CG": "Kongo (Brazzaville)", "CountryName.CH": "Švýcarsko", - "CountryName.CL": "Chile", - "CountryName.CN": "Čína", "CountryName.CI": "Pobřeží Slonoviny", + "CountryName.CL": "Chile", "CountryName.CM": "Kamerun", - "CountryName.CD": "Kongo (Kinshasa)", - "CountryName.CG": "Kongo (Brazzaville)", + "CountryName.CN": "Čína", "CountryName.CO": "Kolumbie", "CountryName.CR": "Kostarika", "CountryName.CU": "Kuba", @@ -415,10 +485,10 @@ "CountryName.DO": "Dominikánská republika", "CountryName.DZ": "Alžírsko", "CountryName.EC": "Ekvádor", + "CountryName.EE": "Estonsko", "CountryName.EG": "Egypt", "CountryName.ER": "Eritrea", "CountryName.ES": "Španělsko", - "CountryName.EE": "Estonsko", "CountryName.ET": "Etiopie", "CountryName.FI": "Finsko", "CountryName.FJ": "Fidži", @@ -428,57 +498,58 @@ "CountryName.GB": "Spojené Království", "CountryName.GE": "Gruzie", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinea", + "CountryName.GL": "Gronsko", "CountryName.GM": "Gambie", - "CountryName.GW": "Guinea Bissau", + "CountryName.GN": "Guinea", "CountryName.GQ": "Rovníková Guinea", "CountryName.GR": "Řecko", - "CountryName.GL": "Gronsko", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinea Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Chorvatsko", "CountryName.HT": "Haiti", "CountryName.HU": "Maďarsko", "CountryName.ID": "Indonézie", - "CountryName.IN": "Indie", "CountryName.IE": "Irsko", - "CountryName.IR": "Irán", + "CountryName.IL": "Izrael", + "CountryName.IN": "Indie", "CountryName.IQ": "Irák", + "CountryName.IR": "Irán", "CountryName.IS": "Island", - "CountryName.IL": "Izrael", "CountryName.IT": "Itálie", "CountryName.JM": "Jamajka", "CountryName.JO": "Jordánsko", "CountryName.JP": "Japonsko", - "CountryName.KZ": "Kazachstán", "CountryName.KE": "Keňa", "CountryName.KG": "Kyrgyzstán", "CountryName.KH": "Kambodža", + "CountryName.KP": "Korejská lidově demokratická republika", "CountryName.KR": "Jižní Korea", "CountryName.KW": "Kuwait", + "CountryName.KZ": "Kazachstán", "CountryName.LA": "Laos", "CountryName.LB": "Libanon", - "CountryName.LR": "Liberie", - "CountryName.LY": "Libye", "CountryName.LK": "Srí Lanka", + "CountryName.LR": "Liberie", "CountryName.LS": "Lesotho", "CountryName.LT": "Litva", "CountryName.LU": "Lucembursko", "CountryName.LV": "Lotyšsko", + "CountryName.LY": "Libye", "CountryName.MA": "Maroko", "CountryName.MD": "Moldávie", + "CountryName.ME": "Černá Hora", "CountryName.MG": "Madagaskar", - "CountryName.MX": "Mexiko", "CountryName.MK": "Makedonie", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar", - "CountryName.ME": "Černá Hora", "CountryName.MN": "Mongolsko", - "CountryName.MZ": "Mozambik", "CountryName.MR": "Mauretánie", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexiko", "CountryName.MY": "Malajsie", + "CountryName.MZ": "Mozambik", "CountryName.NA": "Namibie", "CountryName.NC": "Nová Kaledonie", "CountryName.NE": "Niger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepál", "CountryName.NZ": "Nový Zéland", "CountryName.OM": "Omán", - "CountryName.PK": "Pákistán", "CountryName.PA": "Panama", "CountryName.PE": "Peru", - "CountryName.PH": "Filipíny", "CountryName.PG": "Papua Nová Guinea", + "CountryName.PH": "Filipíny", + "CountryName.PK": "Pákistán", "CountryName.PL": "Polsko", "CountryName.PR": "Portoriko", - "CountryName.KP": "Korejská lidově demokratická republika", + "CountryName.PS": "Západní břeh", "CountryName.PT": "Portugalsko", "CountryName.PY": "Paraguay", "CountryName.QA": "Katar", "CountryName.RO": "Rumunsko", + "CountryName.RS": "Srbsko", "CountryName.RU": "Rusko", "CountryName.RW": "Rwanda", "CountryName.SA": "Saúdská Arábie", - "CountryName.SD": "Sudán", - "CountryName.SS": "Jižní Súdán", - "CountryName.SN": "Senegal", "CountryName.SB": "Šalamounovy ostrovy", + "CountryName.SD": "Sudán", + "CountryName.SE": "Švédsko", + "CountryName.SI": "Slovinsko", + "CountryName.SK": "Slovensko", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somálsko", - "CountryName.RS": "Srbsko", "CountryName.SR": "Surinam", - "CountryName.SK": "Slovensko", - "CountryName.SI": "Slovinsko", - "CountryName.SE": "Švédsko", - "CountryName.SZ": "Swazijsko", + "CountryName.SS": "Jižní Súdán", + "CountryName.SV": "Salvador", "CountryName.SY": "Sýrie", + "CountryName.SZ": "Swazijsko", "CountryName.TD": "Čad", + "CountryName.TF": "Francouzská jižní území", "CountryName.TG": "Togo", "CountryName.TH": "Thajsko", "CountryName.TJ": "Tadžikistán", - "CountryName.TM": "Turkmeistán", "CountryName.TL": "Východní Timor", - "CountryName.TT": "Trinidad a Tobago", + "CountryName.TM": "Turkmeistán", "CountryName.TN": "Tunis", "CountryName.TR": "Turecko", + "CountryName.TT": "Trinidad a Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tanzánie", - "CountryName.UG": "Uganda", "CountryName.UA": "Ukrajina", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "Spojené Státy Americké", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Uzbekistán", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Západní břeh", "CountryName.YE": "Jemen", "CountryName.ZA": "Jihoafrická republika", "CountryName.ZM": "Zambie", "CountryName.ZW": "Zimbabwe", - "FitBoundsControl.tooltip": "Fit map to task features", - "LayerToggle.controls.showTaskFeatures.label": "Task Features", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(loading...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Edit in iD (web editor)", + "Editor.josm.label": "Edit in JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "Edit in new JOSM layer", + "Editor.level0.label": "Edit in Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Get Help", - "Footer.reportBug": "Report a Bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Follow Us", - "Footer.email.placeholder": "E-mailová adresa", - "Footer.email.submit.label": "Odeslat", - "HelpPopout.control.label": "Nápověda", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", - "HomePane.feedback.header": "Zpětná vazba", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", - "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", - "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Unable to delete challenge.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Unable to delete task.", + "Errors.task.doesNotExist": "That task does not exist.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "No tasks remain in this challenge.", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Unable to fetch user data from server.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", + "Errors.user.notFound": "No user found with that username.", + "Errors.user.unauthenticated": "Please sign in to continue.", + "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Fit map to task features", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "E-mailová adresa", + "Footer.email.submit.label": "Odeslat", + "Footer.followUs": "Follow Us", + "Footer.getHelp": "Get Help", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Report a Bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Přidat pravidlo", + "Form.textUpload.prompt": "Sem přetáhněte soubor GeoJSON nebo kliknutím vyberte soubor", + "Form.textUpload.readonly": "Bude použit existující soubor", + "General.controls.moreResults.label": "More Results", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Nápověda", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "HomePane.feedback.header": "Zpětná vazba", + "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Get Started", - "Admin.TaskInspect.controls.previousTask.label": "Předchozí úkol", - "Admin.TaskInspect.controls.nextTask.label": "Další úkol", - "Admin.TaskInspect.controls.editTask.label": "Upravit úkol", - "Admin.TaskInspect.controls.modifyTask.label": "Změnit úkol", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "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.editJosm": "Edit in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", + "KeyMapping.openEditor.editLevel0": "Edit in Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", + "KeyMapping.taskCompletion.confirmSubmit": "Odeslat", + "KeyMapping.taskCompletion.falsePositive": "Not an Issue", + "KeyMapping.taskCompletion.fixed": "Opravil jsem to", + "KeyMapping.taskCompletion.skip": "Přeskočit", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancel Editing", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Next Task", + "KeyMapping.taskInspect.prevTask": "Previous Task", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Přidat klíčové slovo", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "More Results", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(loading...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Leaderboard", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "Points", + "Leaderboard.user.topChallenges": "Top Challenges", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Úkoly hodnocené uživateli", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Navštivte na svém počítači", "MobileNotSupported.message": "Litujeme, MapRoulette aktuálně nepodporuje mobilní zařízení.", "MobileNotSupported.pageMessage": "Litujeme, tato stránka není dosud kompatibilní s mobilními zařízeními a menšími obrazovkami.", "MobileNotSupported.widenDisplay": "Pokud používáte počítač, rozšiřte prosím své okno nebo použijte větší obrazovku.", - "Navbar.links.dashboard": "Ovládací panel", + "MobileTask.subheading.instructions": "Instructions", + "Navbar.links.admin": "Vytvořit a spravovat", "Navbar.links.challengeResults": "Hledat výzvy", - "Navbar.links.leaderboard": "Výsledková tabulka", + "Navbar.links.dashboard": "Ovládací panel", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Nápověda", "Navbar.links.inbox": "Příchozí pošta", + "Navbar.links.leaderboard": "Výsledková tabulka", "Navbar.links.review": "Kontrola", - "Navbar.links.admin": "Vytvořit a spravovat", - "Navbar.links.help": "Nápověda", - "Navbar.links.userProfile": "Uživatelské nastavení", - "Navbar.links.userMetrics": "Metriky uživatele", "Navbar.links.signout": "Odhlásit", - "PageNotFound.message": "Jejda! Hledaná stránka je ztracena.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "Metriky uživatele", + "Navbar.links.userProfile": "Uživatelské nastavení", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "Systém", + "Notification.type.team": "Team", "PageNotFound.homePage": "Přejít domů", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Jejda! Hledaná stránka je ztracena.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "Pořád", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "Moje Body", "PopularChallenges.header": "Oblíbené Výzvy", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", + "Profile.form.defaultBasemap.label": "Default Basemap", + "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.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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", + "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", + "Profile.form.locale.description": "User locale to use for MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Aktualizovat stav kontroly", - "Admin.TaskReview.controls.currentTaskStatus.label": "Stav úkolu:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Stav kontroly: ", - "Admin.TaskReview.controls.taskTags.label": "Značky:", - "Admin.TaskReview.controls.reviewNotRequested": "Pro tento úkol nebyla požadována kontrola.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Tento úkol je v současné době kontrolován někým jiným.", - "Admin.TaskReview.controls.userNotReviewer": "Momentálně nejste nastaveni jako kontrolor. Chcete-li se stát kontrolorem, můžete tak učinit návštěvou uživatelských nastavení.", - "Admin.TaskReview.reviewerIsMapper": "Nemůžete zkontrolovat úkoly, které jste namapovali.", - "Admin.TaskReview.controls.taskNotCompleted": "Tento úkol není připraven ke kontrole, protože ještě nebyl dokončen.", - "Admin.TaskReview.controls.approved": "Potvrdit", - "Admin.TaskReview.controls.rejected": "Odmítnout", - "Admin.TaskReview.controls.approvedWithFixes": "Schválit (s opravami)", - "Admin.TaskReview.controls.startReview": "Začít kontrolu", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Odeslat znovu ke kontrole", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Přestavět úkoly", + "RebuildTasksControl.modal.controls.cancel.label": "Zrušit", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Pokračovat", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "Nejprve odebrat neúplné úkoly", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Opětovné sestavení vám umožní nahrát nový místní soubor s nejnovějšími daty GeoJSON a znovu vytvořit úkoly úkolu:", + "RebuildTasksControl.modal.intro.overpass": "Opětovným spuštěním se znovu spustí databázový dotaz Overpass a znovu se vytvoří výzva s nejnovějšími daty:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Další informace](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Přestavět Úkoly Výzev", + "RebuildTasksControl.modal.warning": "Varování: Opětovné sestavení může vést ke zdvojení úkolů, pokud vaše ID funkcí nejsou správně nastaveny nebo pokud není sladění starých dat s novými daty neúspěšné. Tuto operaci nelze vrátit zpět!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Sledované úkoly", - "Task.unsave.control.tooltip": "Zastavit sledování", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "ScreenTooNarrow.header": "Rozšiřte okno prohlížeče", "ScreenTooNarrow.message": "Tato stránka není dosud kompatibilní s menšími obrazovkami. Rozšiřte okno prohlížeče nebo přepněte na větší zařízení nebo obrazovku.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Kopírovat", "SignIn.control.label": "Přihlásit", "SignIn.control.longLabel": "Chcete-li začít, přihlaste se", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Zrušit", + "StepNavigation.controls.finish.label": "Dokončit", + "StepNavigation.controls.next.label": "Další", + "StepNavigation.controls.prev.label": "Předchozí", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignorovat", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Akce", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Interní Id", - "Task.fields.featureId.label": "Funkce Id", - "Task.fields.status.label": "Stav", - "Task.fields.priority.label": "Priorita", - "Task.fields.mappedOn.label": "Mapováno na", - "Task.fields.reviewStatus.label": "Stav kontroly", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapovač", - "Task.fields.reviewedBy.label": "Kontrolor", - "Admin.fields.reviewedAt.label": "Zkontrolováno", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Komentáře", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Kontrolovat", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Kontrola", - "Admin.TaskAnalysisTable.controls.editTask.label": "Upravit", - "Admin.TaskAnalysisTable.controls.startTask.label": "Začít", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Změnit stav na", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Zobrazit kontrolní sloupce", - "Admin.manageTasks.controls.hideReviewColumns.label": "Skrýt kontrolní sloupce", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Exportovat CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Your comment", - "Task.comments.comment.controls.submit.label": "Odeslat", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Komentáře", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Další úkol:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Zrušit", - "TaskConfirmationModal.submit.label": "Odeslat", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Task marked as", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "Více možností", + "Task.comments.comment.controls.submit.label": "Odeslat", "Task.controls.alreadyFixed.label": "Already fixed", "Task.controls.alreadyFixed.tooltip": "Already fixed", "Task.controls.cancelEditing.label": "Zrušit úpravy", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "I fixed it!", - "ActiveTask.controls.notFixed.label": "Too difficult / Couldn't see", - "ActiveTask.controls.aleadyFixed.label": "Already fixed", - "ActiveTask.controls.cancelEditing.label": "Jít zpět", + "Task.controls.completionComment.placeholder": "Your comment", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Kontaktovat vlastníka", "Task.controls.edit.label": "Upravit", "Task.controls.edit.tooltip": "Upravit", "Task.controls.falsePositive.label": "Not an Issue", "Task.controls.falsePositive.tooltip": "Not an Issue", "Task.controls.fixed.label": "I fixed it!", "Task.controls.fixed.tooltip": "I fixed it!", + "Task.controls.moreOptions.label": "Více možností", "Task.controls.next.label": "Další úkol", - "Task.controls.next.tooltip": "Další úkol", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Další úkol", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Přeskočit", "Task.controls.skip.tooltip": "Přeskočit úkol", - "Task.controls.tooHard.label": "Too hard / Can't see", - "Task.controls.tooHard.tooltip": "Too hard / Can't see", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Task Details", - "ActiveTask.controls.comments.tooltip": "View Comments", - "ActiveTask.subheading.comments": "Komentáře", - "ActiveTask.heading": "Challenge Information", - "ActiveTask.subheading.instructions": "Návod", - "ActiveTask.subheading.location": "Location", - "ActiveTask.subheading.progress": "Challenge Progress", - "ActiveTask.subheading.social": "Sdílet", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructions", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "Změnit", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Track this Task", "Task.controls.untrack.label": "Stop tracking this Task", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Available", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Funkce Id", + "Task.fields.id.label": "Interní Id", + "Task.fields.mappedOn.label": "Mapováno na", + "Task.fields.priority.label": "Priorita", + "Task.fields.requestedBy.label": "Mapovač", + "Task.fields.reviewStatus.label": "Stav kontroly", + "Task.fields.reviewedBy.label": "Kontrolor", + "Task.fields.status.label": "Stav", + "Task.loadByMethod.proximity": "Nejbližší", + "Task.loadByMethod.random": "Náhodný", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "Změnit", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Task marked as", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "High", + "Task.priority.low": "Low", + "Task.priority.medium": "Medium", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Zpět do přijaté pošty", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Already Fixed", + "Task.status.created": "Created", + "Task.status.deleted": "Deleted", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Not an Issue", + "Task.status.fixed": "Fixed", + "Task.status.skipped": "Skipped", + "Task.status.tooHard": "Příliš těžké", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Zrušit", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Uložit", + "Task.taskTags.update.label": "Update MR Tags", + "Task.unsave.control.tooltip": "Zastavit sledování", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Komentáře", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Zrušit", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Další úkol:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Odeslat", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Existing Status", - "ActiveTask.controls.status.tooltip": "Existing Status", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Uložit", - "Task.taskTags.cancel.label": "Zrušit", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Your Top Challenges", "TopUserChallenges.widget.label": "Your Top Challenges", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Sledované úkoly", + "UserProfile.topChallenges.header": "Your Top Challenges", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Zrušit", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Zbývající úkoly: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "Výzvy", + "Widgets.ChallengeListWidget.search.placeholder": "Hledat", + "Widgets.ChallengeListWidget.title": "Výzvy", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Vytvořeno:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Viditelné:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Změněno:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Stav:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Obnovené úkoly:", + "Widgets.ChallengeOverviewWidget.label": "Přehled výzvy", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Přehled", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Sdílet", + "Widgets.ChallengeTasksWidget.label": "Úkoly", + "Widgets.ChallengeTasksWidget.title": "Úkoly", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Komentáře", + "Widgets.CommentsWidget.title": "Komentáře", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Challenge has no tasks", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Leaderboard", + "Widgets.LeaderboardWidget.title": "Leaderboard", + "Widgets.ProjectAboutWidget.content": "Projekty slouží jako prostředek seskupování souvisejících výzev dohromady. Všechny výzvy musí patřit k projektu.\n\nMůžete si vytvořit tolik projektů, kolik je potřeba k uspořádání vašich výzev, a můžete pozvat další uživatele MapRoulette, aby je s vámi mohli spravovat.\n\nProjekty musí být nastaveny tak, aby byly viditelné dříve, než se všechny problémy, které se v nich vyskytnou, objeví ve veřejném prohlížení nebo vyhledávání.", + "Widgets.ProjectAboutWidget.label": "O Projektech", + "Widgets.ProjectAboutWidget.title": "O Projektech", + "Widgets.ProjectListWidget.label": "Seznam Projektů", + "Widgets.ProjectListWidget.search.placeholder": "Hledat", + "Widgets.ProjectListWidget.title": "Projekty", + "Widgets.ProjectManagersWidget.label": "Manažeři Projektu", + "Widgets.ProjectOverviewWidget.label": "Přehled", + "Widgets.ProjectOverviewWidget.title": "Přehled", + "Widgets.RecentActivityWidget.label": "Nedávná aktivita", + "Widgets.RecentActivityWidget.title": "Nedávná aktivita", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Distribuce stavu dokončení", "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "Historie", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "Historie", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Úkol", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Kontrola", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Zrušit", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Leaderboard", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### 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| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Points", - "Leaderboard.user.topChallenges": "Top Challenges", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Default Editor", - "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.defaultBasemap.label": "Default Basemap", - "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "User locale to use for MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", - "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Updated", - "Activity.action.created": "Created", - "Activity.action.deleted": "Deleted", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Project", - "Activity.item.challenge": "Challenge", - "Activity.item.task": "Task", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Custom", - "Challenge.difficulty.easy": "Easy", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Any", - "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", - "Challenge.keywords.buildings": "Buildings", - "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Anything", - "Challenge.location.nearMe": "Near Me", - "Challenge.location.withinMapBounds": "Within Map Bounds", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Anywhere", - "Challenge.status.none": "Not Applicable", - "Challenge.status.building": "Building", - "Challenge.status.failed": "Failed", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partially Loaded", - "Challenge.status.finished": "Finished", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Challenge", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Edit in iD (web editor)", - "Editor.josm.label": "Edit in JOSM", - "Editor.josmLayer.label": "Edit in new JOSM layer", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Edit in Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", - "Errors.user.unauthenticated": "Please sign in to continue.", - "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Unable to fetch user data from server.", - "Errors.user.notFound": "No user found with that username.", - "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", - "Errors.task.none": "No tasks remain in this challenge.", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Unable to delete task.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "That task does not exist.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Unable to delete challenge.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Edit in Id", - "KeyMapping.openEditor.editJosm": "Edit in JOSM", - "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Edit in Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Cancel Editing", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Přeskočit", - "KeyMapping.taskCompletion.falsePositive": "Not an Issue", - "KeyMapping.taskCompletion.fixed": "Opravil jsem to", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", - "KeyMapping.taskInspect.nextTask": "Next Task", - "KeyMapping.taskInspect.prevTask": "Previous Task", - "KeyMapping.taskCompletion.confirmSubmit": "Odeslat", - "Subscription.type.ignore": "Ignorovat", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "Systém", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Nejnovější", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Oblíbený", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Výchozí", - "Task.loadByMethod.random": "Náhodný", - "Task.loadByMethod.proximity": "Nejbližší", - "Task.priority.high": "High", - "Task.priority.medium": "Medium", - "Task.priority.low": "Low", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Zpět do přijaté pošty", - "Task.status.created": "Created", - "Task.status.fixed": "Fixed", - "Task.status.falsePositive": "Not an Issue", - "Task.status.skipped": "Skipped", - "Task.status.deleted": "Deleted", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Already Fixed", - "Task.status.tooHard": "Příliš těžké", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/de.json b/src/lang/de.json index 79687c86f..bbb229c1a 100644 --- a/src/lang/de.json +++ b/src/lang/de.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Deine Neueste Aktivität", - "BurndownChart.heading": "Noch verfügbare Aufgaben: {taskCount, number}", - "BurndownChart.tooltip": "Noch verfügbare Aufgaben", - "CalendarHeatmap.heading": "Tägliche Heatmap: Vervollständigung der Aufgabe", + "ActiveTask.controls.aleadyFixed.label": "War bereits behoben", + "ActiveTask.controls.cancelEditing.label": "Zurück", + "ActiveTask.controls.comments.tooltip": "Kommentare ansehen", + "ActiveTask.controls.fixed.label": "Ich habe es behoben!", + "ActiveTask.controls.info.tooltip": "Aufgabendetails", + "ActiveTask.controls.notFixed.label": "Zu schwierig", + "ActiveTask.controls.status.tooltip": "Aktueller Status", + "ActiveTask.controls.viewChangset.label": "Änderungssatz ansehen", + "ActiveTask.heading": "Informationen zur Kampagne", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtuelle Kampagne", + "ActiveTask.keyboardShortcuts.label": "Tastenkombinationen anzeigen", + "ActiveTask.subheading.comments": "Kommentare", + "ActiveTask.subheading.instructions": "Anleitung", + "ActiveTask.subheading.location": "Ort", + "ActiveTask.subheading.progress": "Kampagnenfortschritt", + "ActiveTask.subheading.social": "Teilen", + "ActiveTask.subheading.status": "Aktueller Status", + "Activity.action.created": "Erstellt", + "Activity.action.deleted": "Gelöscht", + "Activity.action.questionAnswered": "Beantwortete Frage", + "Activity.action.tagAdded": "Tag hinzugefügt nach", + "Activity.action.tagRemoved": "Tag gelöscht von", + "Activity.action.taskStatusSet": "Setze Status der", + "Activity.action.taskViewed": "Gesehen", + "Activity.action.updated": "Aktualisiert", + "Activity.item.bundle": "Gruppe", + "Activity.item.challenge": "Kampagne", + "Activity.item.grant": "Förderung", + "Activity.item.group": "Gruppe", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Aufgabe", + "Activity.item.user": "Benutzer", + "Activity.item.virtualChallenge": "Virtuelle Kampagne", + "ActivityListing.controls.group.label": "Gruppe", + "ActivityListing.noRecentActivity": "Keine neueste Aktivität", + "ActivityListing.statusTo": "als", + "ActivityMap.noTasksAvailable.label": "Keine Aufgaben in der Nähe verfügbar. ", + "ActivityMap.tooltip.priorityLabel": "Priorität:", + "ActivityMap.tooltip.statusLabel": "Status:", + "ActivityTimeline.UserActivityTimeline.header": "Deine letzten Beiträge", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", + "AddTeamMember.controls.chooseRole.label": "Wähle eine Rolle", + "Admin.Challenge.activity.label": "Neueste Aktivität", + "Admin.Challenge.basemap.none": "Benutzer Standard", + "Admin.Challenge.controls.clone.label": "Kampagne klonen", + "Admin.Challenge.controls.delete.label": "Kampagne löschen", + "Admin.Challenge.controls.edit.label": "Kampagne bearbeiten", + "Admin.Challenge.controls.move.label": "Kampagne verschieben", + "Admin.Challenge.controls.move.none": "Keine zulässigen Projekte", + "Admin.Challenge.controls.refreshStatus.label": "Status aktualisieren in", + "Admin.Challenge.controls.start.label": "Kampagne starten", + "Admin.Challenge.controls.startChallenge.label": "Starten", + "Admin.Challenge.fields.creationDate.label": "Erstellt", + "Admin.Challenge.fields.enabled.label": "Sichtbar:", + "Admin.Challenge.fields.lastModifiedDate.label": "Bearbeitet", + "Admin.Challenge.fields.status.label": "Status", + "Admin.Challenge.tasksBuilding": "Aufgaben werden erstellt...", + "Admin.Challenge.tasksCreatedCount": "Bisher erstellte Aufgaben.", + "Admin.Challenge.tasksFailed": "Erstellen von Aufgaben fehlgeschlagen", + "Admin.Challenge.tasksNone": "Keine Aufgaben", + "Admin.Challenge.totalCreationTime": "Insgesamt verstrichene Zeit:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Optionen", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Kampagnenname", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Erledigt", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Fertigstellungsfortschritt", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Sichtbar", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Letzte Aktivität", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Verwalten", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Bearbeiten", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Kampagnenname", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Fertigstellungsfortschritt", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Klonen", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Füge Statusspalten hinzu", - "ChallengeCard.totalTasks": "Aufgabenanzahl", - "ChallengeCard.controls.visibilityToggle.tooltip": "Kampagnensichtbarkeit ändern", - "Admin.Challenge.controls.start.label": "Kampagne starten", - "Admin.Challenge.controls.edit.label": "Kampagne bearbeiten", - "Admin.Challenge.controls.move.label": "Kampagne verschieben", - "Admin.Challenge.controls.move.none": "Keine zulässigen Projekte", - "Admin.Challenge.controls.clone.label": "Kampagne klonen", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "URL kopieren", - "Admin.Challenge.controls.delete.label": "Kampagne löschen", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Bearbeiten", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Verwalten", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Füge Statusspalten hinzu", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Start", "Admin.ChallengeList.noChallenges": "Keine Kampagnen", - "ChallengeProgressBorder.available": "Verfügbar", - "CompletionRadar.heading": "Aufgaben erledigt: {taskCount, number}", - "Admin.EditProject.unavailable": "Projekt nicht verfügbar", - "Admin.EditProject.edit.header": "Bearbeiten", - "Admin.EditProject.new.header": "Neues Projekt", - "Admin.EditProject.controls.save.label": "Speichern", - "Admin.EditProject.controls.cancel.label": "Abbrechen", - "Admin.EditProject.form.name.label": "Name", - "Admin.EditProject.form.name.description": "Projektname", - "Admin.EditProject.form.displayName.label": "Anzeigename", - "Admin.EditProject.form.displayName.description": "Projektname", - "Admin.EditProject.form.enabled.label": "Sichtbar", - "Admin.EditProject.form.enabled.description": "Setzt du das Projekt auf Sichtbar, werden alle zugehörigen Kampagne, die auch auf Sichtbar gesetzt sind, für andere Benutzer zugänglich sein. Damit werden auch alle zugehörigen Kampagnen veröffentlicht, sollten sie auf Sichtbar gesetzt sein. Du kannst trotzdem weiterhin an deinen eigenen Kampagnen arbeiten und diese mit anderen Personen teilen. Bis du ein Projekt auf Sichtbar setzt, kannst du es als eine Art Testfeld für deine Kampagnen ansehen.", - "Admin.EditProject.form.featured.label": "Empfohlen", - "Admin.EditProject.form.featured.description": "Empfohlene Projekte werden auf der Homepage und oben auf der \"Kampagnen Suchen\" Seite angezeigt, um mehr Aufmerksamkeit auf sie zu lenken. Beachte, dass das Empfehlen eines Projektes **nicht** automatisch dessen Kampagnen vorstellt. Nur erfahrene Benutzer können ganze Projekte als Empfohlen markieren.", - "Admin.EditProject.form.isVirtual.label": "Virtuell", - "Admin.EditProject.form.isVirtual.description": "Wenn ein Projekt virtuell ist, kannst du bereits bestehende Kampagnen gruppieren. Diese Einstellung kann nach Erstellen des Projektes nicht mehr geändert werden. Alle Berechtigungen werden von der originalen Kampagne übertragen.", - "Admin.EditProject.form.description.label": "Beschreibung", - "Admin.EditProject.form.description.description": "Projektbeschreibung", - "Admin.InspectTask.header": "Aufgaben analysieren", - "Admin.EditChallenge.edit.header": "Bearbeiten", + "Admin.ChallengeTaskMap.controls.editTask.label": "Aufgabe bearbeiten", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Aufgabe analysieren", "Admin.EditChallenge.clone.header": "Klonen", - "Admin.EditChallenge.new.header": "Neue Kampagne", - "Admin.EditChallenge.lineNumber": "Zeile {line, number}:", + "Admin.EditChallenge.edit.header": "Bearbeiten", "Admin.EditChallenge.form.addMRTags.placeholder": "Füge MR Tags hinzu", - "Admin.EditChallenge.form.step1.label": "Allgemein", - "Admin.EditChallenge.form.visible.label": "Sichtbar", - "Admin.EditChallenge.form.visible.description": "Bitte geben Sie an, ob die Kampagne sichtbar ist oder nicht.", - "Admin.EditChallenge.form.name.label": "Name", - "Admin.EditChallenge.form.name.description": "Der Name deiner Kampagne, wie er an vielen Stellen in MapRoulette erscheint und wie über das Suchfeld gesucht werden kann. Dieses Feld ist erforderlich und unterstützt nur reinen Text.", - "Admin.EditChallenge.form.description.label": "Beschreibung", - "Admin.EditChallenge.form.description.description": "Die primäre, ausführliche Beschreibung der Kampagne, die Beutzern angezeigt wird, wenn sie auf die Kampagne klicken, um mehr darüber zu erfahren. Dieses Feld unterstützt Markdown.", - "Admin.EditChallenge.form.blurb.label": "Klappentext", + "Admin.EditChallenge.form.additionalKeywords.description": "Du kannst zusätzliche Schlagwörter angeben, die bei der Suche nach der Kampagne helfen. Benutzer können im Dropdown-Filter \"Kategorie\" über die Option \"Andere\" nach Schlagwörtern suchen oder im Suchfeld durch Voranstellen eines Rautezeichens (z.B. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Schlagwörter", "Admin.EditChallenge.form.blurb.description": "Eine Kurzbeschreibung der Kampagne. Knapp genug, dass sie z.B. für kleine Hinweisfenster auf der Karte geeignet ist. Dieses Feld unterstützt Markdown.", - "Admin.EditChallenge.form.instruction.label": "Anleitung", - "Admin.EditChallenge.form.instruction.description": "Die Anleitung erklärt einem Mapper, wie er die Kampagne lösen kann. Diese Information sehen die Mapper jedes Mal im Anleitungsfeld, wenn sie eine Aufgabe laden. Gleichzeitig ist sie die wichtigste Informationsquelle für den Mapper. Denke also sorgfältig über dieses Feld nach. Du kannst Links zum OSM Wiki oder andere Webseiten hinzufügen, da dieses Feld Markdown unterstützt. Du kannst außerdem auch auf Eigenschaften aus deiner GeoJSON mit Mustache Tags verweisen. Z. B. würde `'{{address}}'` mit dem Wert der `address` Eigenschaft ersetzt werden, was die Anpassung der Anleitung für einzelne Aufgaben ermöglicht. Dieses Feld ist erforderlich.", - "Admin.EditChallenge.form.checkinComment.label": "Beschreibung des Änderungssatzes", + "Admin.EditChallenge.form.blurb.label": "Klappentext", + "Admin.EditChallenge.form.category.description": "Die geeignete Kategorie für deine Kampagne hilft Benutzern, Kampagnen zu entdecken, die ihren Interessen entsprechen. Wenn du keine passende Kategorie findest, wähle Andere.", + "Admin.EditChallenge.form.category.label": "Kategorie", "Admin.EditChallenge.form.checkinComment.description": "Kommentar, der den Änderungen von Benutzern im Editor zugeordnet wird", - "Admin.EditChallenge.form.checkinSource.label": "Quelle des Änderungssatzes", + "Admin.EditChallenge.form.checkinComment.label": "Beschreibung des Änderungssatzes", "Admin.EditChallenge.form.checkinSource.description": "Quelle, die den Änderungen von Benutzern im Editor zugeordnet wird", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatisch den #maproulette Hashtag anhängen (empfohlen)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Hashtag auslassen", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Dem Änderungssatz einen Hashtag hinzuzufügen kann sehr hilfreich für Änderungssatzanalysen sein.", - "Admin.EditChallenge.form.difficulty.label": "Schwierigkeit", + "Admin.EditChallenge.form.checkinSource.label": "Quelle des Änderungssatzes", + "Admin.EditChallenge.form.customBasemap.description": "Füge hier die URL des eigenen Kartenhintergrunds ein; z. B. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Eigener Kartenhintergrund", + "Admin.EditChallenge.form.customTaskStyles.button": "Einrichten", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", + "Admin.EditChallenge.form.dataOriginDate.description": "Alter der Daten. Das Datum, an dem die Daten erzeugt oder heruntergeladen wurden.", + "Admin.EditChallenge.form.dataOriginDate.label": "Datum an dem die Daten erhoben wurden", + "Admin.EditChallenge.form.defaultBasemap.description": "Der Kartenhintergrund für die Kampagne überschreibt alle voreingestellten Kartenhintergründe der Benutzer.", + "Admin.EditChallenge.form.defaultBasemap.label": "Kartenhintergrund der Kampagne", + "Admin.EditChallenge.form.defaultPriority.description": "Bitte geben Sie die Standardpriorität für die Aufgaben dieser Kampagne an.", + "Admin.EditChallenge.form.defaultPriority.label": "Standardpriorität", + "Admin.EditChallenge.form.defaultZoom.description": "Wenn ein Benutzer mit einer Aufgabe beginnt, versucht MapRoulette, automatisch eine Zoomstufe zu wählen, die zum Umfang der Aufgabe passt. Wenn das nicht möglich ist, wird diese Standard-Zoomstufe verwendet. Sie sollte so gewählt werden, dass sie zu den meisten Aufgaben Ihrer Kampagne passt.", + "Admin.EditChallenge.form.defaultZoom.label": "Standard-Zoomstufe", + "Admin.EditChallenge.form.description.description": "Die primäre, ausführliche Beschreibung der Kampagne, die Beutzern angezeigt wird, wenn sie auf die Kampagne klicken, um mehr darüber zu erfahren. Dieses Feld unterstützt Markdown.", + "Admin.EditChallenge.form.description.label": "Beschreibung", "Admin.EditChallenge.form.difficulty.description": "Wähle die Schwierigkeit zwischen Einfach, Normal und Experte, um den Mappern zu zeigen, wie schwer deine Aufgabe ist. Einfache Aufgaben sollten für Einsteiger mit wenig oder gar keiner Erfahrung lösbar sein.", - "Admin.EditChallenge.form.category.label": "Kategorie", - "Admin.EditChallenge.form.category.description": "Die geeignete Kategorie für deine Kampagne hilft Benutzern, Kampagnen zu entdecken, die ihren Interessen entsprechen. Wenn du keine passende Kategorie findest, wähle Andere.", - "Admin.EditChallenge.form.additionalKeywords.label": "Schlüsselwörter", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Bevorzugte Tags", - "Admin.EditChallenge.form.preferredTags.description": "Du kannst optional empfohlene Tags auflisten, die Benutzer zur Bearbeitung der Aufgabe verwenden sollen.", - "Admin.EditChallenge.form.featured.label": "Empfohlen", + "Admin.EditChallenge.form.difficulty.label": "Schwierigkeit", + "Admin.EditChallenge.form.exportableProperties.description": "Alle Eigenschaften in dieser kommagetrennten Liste werden als Spalte im CSV-Export exportiert und mit der ersten entsprechenden Merkmal-Eigenschaft aus jeder Aufgabe ergänzt.", + "Admin.EditChallenge.form.exportableProperties.label": "Eigenschaften für CSV-Export", "Admin.EditChallenge.form.featured.description": "Empfohlene Kampagnen werden bei der Suche oben in der Liste angezeigt. Nur erfahrene Benutzer können Kampagnen als Empfohlen markieren.", - "Admin.EditChallenge.form.step2.label": "GeoJSON", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON Quelle", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Abfrage", + "Admin.EditChallenge.form.featured.label": "Empfohlen", + "Admin.EditChallenge.form.highPriorityRules.label": "Regeln mit hoher Priorität", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Fortfahren trotz festgestellter Fehler in den Quelldaten. Nur für erfahrene Benutzer, die die Auswirkungen vollständig verstehen.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Fehler ignorieren", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Dem Änderungssatz einen Hashtag hinzuzufügen kann sehr hilfreich für Änderungssatzanalysen sein.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Hashtag auslassen", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatisch den #maproulette Hashtag anhängen (empfohlen)", + "Admin.EditChallenge.form.instruction.description": "Die Anleitung erklärt, wie die Aufgaben der Kampagne gelöst werden können. Diese Anleitung sehen Mapper jedes Mal, wenn sie die Aufgabe laden. Gleichzeitig ist sie die wichtigste Informationsquelle für den Mapper. Denke also sorgfältig über dieses Feld nach. Du kannst Links zum OSM Wiki oder andere Webseiten hinzufügen, da dieses Feld Markdown unterstützt. Du kannst auch auf Eigenschaften aus deiner GeoJSON mit Mustache Tags verweisen; z. B. würde `'{{address}}'` mit dem Wert der `address` Eigenschaft ersetzt werden, was die Anpassung der Anleitung für einzelne Aufgaben ermöglicht. Dieses Feld ist erforderlich.", + "Admin.EditChallenge.form.instruction.label": "Anleitung", + "Admin.EditChallenge.form.localGeoJson.description": "Bitte laden Sie die GeoJSON-Datei hoch.", + "Admin.EditChallenge.form.localGeoJson.label": "GeoJSON-Datei hochladen", + "Admin.EditChallenge.form.lowPriorityRules.label": "Regeln mit niedriger Priorität", + "Admin.EditChallenge.form.maxZoom.description": "Die maximal erlaubte Zoomstufe für die Kampagne. Sie sollte so eingestellt werden, dass Benutzer für die Bearbeitung der Aufgaben weit genug hineinzoomen können, ohne eine Zoomstufe zu verwenden, die unpassend ist oder die verfügbare Auflösung der Karte/Luftbilder übersteigt.", + "Admin.EditChallenge.form.maxZoom.label": "Maximale Zoomstufe", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Regeln mit mittlerer Priorität", + "Admin.EditChallenge.form.minZoom.description": "Die minimal erlaubte Zoomstufe für die Kampagne. Sie sollte so eingestellt werden, dass Benutzer für die Bearbeitung der Aufgaben ausreichend herauszoomen können, ohne dass sie auf eine nicht brauchbare Zoomstufe verkleinert wird.", + "Admin.EditChallenge.form.minZoom.label": "Minimale Zoomstufe", + "Admin.EditChallenge.form.name.description": "Der Name deiner Kampagne, wie er an vielen Stellen in MapRoulette erscheint und wie über das Suchfeld gesucht werden kann. Dieses Feld ist erforderlich und unterstützt nur reinen Text.", + "Admin.EditChallenge.form.name.label": "Name", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Bitte gebe bei Overpass-Anfragen einen geeigneten Kartenausschnitt an, da sonst große Datenmengen generiert werden können, die das System überlasten.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Abfrage", "Admin.EditChallenge.form.overpassQL.placeholder": "Overpass API Abfrage hier eingeben...", - "Admin.EditChallenge.form.localGeoJson.label": "GeoJSON-Datei hochladen", - "Admin.EditChallenge.form.localGeoJson.description": "Bitte laden Sie die GeoJSON-Datei hoch.", - "Admin.EditChallenge.form.remoteGeoJson.label": "Remote-GeoJSON URL", - "Admin.EditChallenge.form.remoteGeoJson.description": "Bitte geben Sie die Adresse ein, von wo das GeoJSON geholt werden soll.", + "Admin.EditChallenge.form.preferredTags.description": "Du kannst optional Tags auflisten, die Benutzer zur Bearbeitung der Aufgabe verwenden sollen.", + "Admin.EditChallenge.form.preferredTags.label": "Bevorzugte Tags", + "Admin.EditChallenge.form.remoteGeoJson.description": "Externe URL, von der die GeoJSON Datei geladen werden soll.", + "Admin.EditChallenge.form.remoteGeoJson.label": "Externe URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.beispiel.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Datum an dem die Daten erhoben wurden", - "Admin.EditChallenge.form.dataOriginDate.description": "Alter der Daten. Das Datum, an dem die Daten erzeugt oder heruntergeladen wurden.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Fehler ignorieren", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Fortfahren trotz festgestellter Fehler in den Quelldaten. Nur für erfahrene Benutzer, die die Auswirkungen vollständig verstehen.", + "Admin.EditChallenge.form.requiresLocal.description": "Die Aufgaben benötigen lokales oder Vor-Ort-Wissen, um sie zu erledigen. Hinweis: Die Kampagne erscheint nicht in der Kampagnen-Suche.", + "Admin.EditChallenge.form.requiresLocal.label": "Ortskenntnisse erforderlich", + "Admin.EditChallenge.form.source.label": "GeoJSON Quelle", + "Admin.EditChallenge.form.step1.label": "Allgemein", + "Admin.EditChallenge.form.step2.description": "\nJede Aufgabe in MapRoulette besteht grundsätzlich aus einer Geometrie: einem Punkt, einer Linie oder\neinem Polygon, die auf der Karte angeben, was Mapper für Dich prüfen sollen.\nAuf diesem Bildschirm kann die Aufgaben für eine Kampagne definiert werden, indem Sie MapRoulette\nüber die Geometrien informieren.\n\nEs gibt drei Wege, Geometrien in die Kampagne einzugeben: Über eine Overpass\nAbfrage, über eine lokale GeoJSON-Datei oder über eine URL, die auf eine GeoJSON\nDatei im Internet verweist.\n\n##### Über Overpass\n\nDie Overpass-API ist eine leistungsstarke Abfrageschnittstelle für OpenStreetMap-Daten. Sie\ngreift nicht direkt auf die OSM-Datenbank zu, sondern auf eigene Daten, die\nmeist nur wenige Minuten alt sind. Bei Nutzung der\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nOverpass-Abfragesprache, kann definiert werden, welche OSM-Objekte\nals Aufgaben in die Kampagne geladen werden sollen.\nMehr Informationen dazu im [Wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n##### Über eine lokale GeoJSON-Datei\n\nDie andere Möglichkeit ist die Verwendung einer eigenen GeoJSON-Datei. Dies ist sehr nützlich.\nwenn externe Daten einer genehmigten Quelle zu OSM\nhinzugefügt werden sollen. Werkzeuge wie\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\noder [gdal](http://www.gdal.org/drv_geojson.html) ermöglichen diverse Konvertierungen, wie z.B.\nShapefiles zu GeoJSON. Hierbei ist sind\nlon/lat Werte in WGS84 (EPSG:4326) zu verwenden, was MapRoulette auch intern\nnutzt.\n\n> Hinweis: Für Kampagnen mit vielen Aufgaben wird die Verwendung eines\n[Zeilen] (https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nFormats empfohlen, das deutlich weniger speicherintensiv zu verarbeiten ist.\n\n##### Über ein externe GeoJSON URL\n\nDer einzige Unterschied zwischen einer lokalen GeoJSON-Datei und einer URL ist der Ort,\nvon dem MapRoulette die Datei laden soll. Bei der URL ist sicherzustellen, dass auf die originäre\nGeoJSON-Datei mit Rohdaten verwiesen wird und nicht auf eine Seite, die einen Link zur Datei enthält, oder bei der MapRoulette\nnicht in der Lage ist, die Daten zu interpretieren.", + "Admin.EditChallenge.form.step2.label": "GeoJSON Quelle", + "Admin.EditChallenge.form.step3.description": "Die Priorität von Aufgaben kann als Hoch, Mittel und Gering angegeben werden. Alle Aufgaben mit hoher Priorität werden zuerst angezeigt, dann Aufgaben mit mittlerer Priorität und zum Schluss Aufgaben mit niedriger Priorität. Die Priorität wird nach den von Dir unten angegebenen Regeln zugewiesen, welche sie jeweils mit den Eigenschaften der Aufgabe abgleicht (mit OSM-Tags, wenn eine Overpass-Abfrage verwendet wird, andernfalls mit den Eigenschaften, die für die Aufnahme in die GeoJSON gewählt wurden). Aufgaben, die keine Regeln durchlaufen, wird die Standardpriorität zugewiesen.", "Admin.EditChallenge.form.step3.label": "Prioritäten", - "Admin.EditChallenge.form.step3.description": "Die Priorität von Aufgaben kann als Hoch, Mittel und Gering angegeben werden. Alle Aufgaben mit Priorität Hoch werden zuerst angezeigt, dann Aufgaben mit Priorität Mittel und zum Schluss Aufgaben mit Priorität Niedrig. Das kann sinnvoll sein, wenn Sie eine große Anzahl von Aufgaben haben und gewisse Aufgaben zuerst anzeigen möchten.", - "Admin.EditChallenge.form.defaultPriority.label": "Standardpriorität", - "Admin.EditChallenge.form.defaultPriority.description": "Bitte geben Sie die Standardpriorität für die Aufgaben dieser Kampagne an.", - "Admin.EditChallenge.form.highPriorityRules.label": "Regeln mit hoher Priorität", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Regeln mit mittlerer Priorität", - "Admin.EditChallenge.form.lowPriorityRules.label": "Regeln mit niedriger Priorität", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Hier befinden sich zusätzliche Informationen, die eine Kampagne optional verwenden kann, um das Erlebnis für die Nutzer angepasst auf die speziellen Anforderungen einer Kampagne zu verbessern.", - "Admin.EditChallenge.form.updateTasks.label": "Veraltete Aufgaben entfernen", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Standard-Zoomstufe", - "Admin.EditChallenge.form.defaultZoom.description": "Setzen Sie die Standard-Zoomstufe für die Anzeige einer Aufgabe auf der Karte.", - "Admin.EditChallenge.form.minZoom.label": "Minimale Zoomstufe", - "Admin.EditChallenge.form.minZoom.description": "Setzen Sie die minimale Zoomstufe für die Anzeige einer Aufgabe auf der Karte.", - "Admin.EditChallenge.form.maxZoom.label": "Maximale Zoomstufe", - "Admin.EditChallenge.form.maxZoom.description": "Setzen Sie die maximale Zoomstufe für die Anzeige einer Aufgabe auf der Karte.", - "Admin.EditChallenge.form.defaultBasemap.label": "Kartenhintergrund der Kampagne", - "Admin.EditChallenge.form.defaultBasemap.description": "Der Kartenhintergrund für die Kampagne überschreibt alle voreingestellten Kartenhintergründe der Benutzer.", - "Admin.EditChallenge.form.customBasemap.label": "Eigener Kartenhintergrund", - "Admin.EditChallenge.form.customBasemap.description": "Füge hier die URL des eigenen Kartenhintergrunds ein. Zum Beispiel `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Eigenschaften für CSV-Export", - "Admin.EditChallenge.form.exportableProperties.description": "Alle Eigenschaften in dieser kommagetrennten Liste werden als Spalte im CSV-Export exportiert und mit der ersten entsprechenden Merkmal-Eigenschaft aus jeder Aufgabe ergänzt.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Einrichten", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Erledigt", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Löschen", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Erledigt", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Ortskenntnisse erforderlich", - "Admin.EditChallenge.form.requiresLocal.description": "Diese Aufgabe benötigt lokales oder Vor-Ort-Wissen, um sie zu erledigen.", - "Admin.ManageChallenges.header": "Kampagnen", - "Admin.ManageChallenges.help.info": "Eine Kampagne besteht aus vielen Aufgaben, welche ein spezifisches Problem oder einen Mangel in den OpenStreetMap Daten adressieren. Die Aufgaben werden automatisch von einer overpassQL Query erstellt. Sie können jedoch auch als GeoJSON von einer Datei oder URL geladen werden. Du kannst so viele Kampagnen erstellen, wie du willst.", - "Admin.ManageChallenges.search.placeholder": "Name", - "Admin.ManageChallenges.allProjectChallenge": "Alle", - "Admin.Challenge.fields.creationDate.label": "Erstellt", - "Admin.Challenge.fields.lastModifiedDate.label": "Bearbeitet", - "Admin.Challenge.fields.status.label": "Status", - "Admin.Challenge.fields.enabled.label": "Sichtbar:", - "Admin.Challenge.controls.startChallenge.label": "Starten", - "Admin.Challenge.activity.label": "Neueste Aktivität", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Löschen", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Veraltete Aufgaben entfernen", + "Admin.EditChallenge.form.visible.description": "Einstellen, dass die Kampagne für andere sichtbar und auffindbar ist (vorbehaltlich der Projektsichtbarkeit). Wenn Du bei Erstellung der Kampagne unsicher bist, setze die Sichtbarkeit zunächst auf Nein, insbesondere wenn das übergeordnete Projekt sichtbar ist. Setzt Du die Sichtbarkeit der Kampagne auf Ja, wird sie auf der Startseite, der Kampagnen-Suche und der Statistik angezeigt - jedoch nur, wenn das übergeordnete Projekt auch sichtbar ist.", + "Admin.EditChallenge.form.visible.label": "Sichtbar", + "Admin.EditChallenge.lineNumber": "Zeile {line, number}:", + "Admin.EditChallenge.new.header": "Neue Kampagne", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo-Kürzel werden nicht unterstützt. Wenn Du sie verwenden willst, besuche Overpass Turbo und teste Deine Abfrage, wähle Export -> Query -> Standalone -> Copy und füge es hier ein.", + "Admin.EditProject.controls.cancel.label": "Abbrechen", + "Admin.EditProject.controls.save.label": "Speichern", + "Admin.EditProject.edit.header": "Bearbeiten", + "Admin.EditProject.form.description.description": "Projektbeschreibung", + "Admin.EditProject.form.description.label": "Beschreibung", + "Admin.EditProject.form.displayName.description": "Projektname", + "Admin.EditProject.form.displayName.label": "Anzeigename", + "Admin.EditProject.form.enabled.description": "Setzt du das Projekt auf Sichtbar, werden alle zugehörigen Kampagne, die auch auf Sichtbar gesetzt sind, für andere Benutzer zugänglich sein. Damit werden auch alle zugehörigen Kampagnen veröffentlicht, sollten sie auf Sichtbar gesetzt sein. Du kannst trotzdem weiterhin an deinen eigenen Kampagnen arbeiten und diese mit anderen Personen teilen. Bis du ein Projekt auf Sichtbar setzt, kannst du es als eine Art Testfeld für deine Kampagnen ansehen.", + "Admin.EditProject.form.enabled.label": "Sichtbar", + "Admin.EditProject.form.featured.description": "Empfohlene Projekte werden auf der Homepage und oben auf der \"Kampagnen Suchen\" Seite angezeigt, um mehr Aufmerksamkeit auf sie zu lenken. Beachte, dass das Empfehlen eines Projektes **nicht** automatisch dessen Kampagnen vorstellt. Nur erfahrene Benutzer können ganze Projekte als Empfohlen markieren.", + "Admin.EditProject.form.featured.label": "Empfohlen", + "Admin.EditProject.form.isVirtual.description": "Wenn ein Projekt virtuell ist, können schon bestehende Kampagnen darin gruppiert werden. Diese Einstellung kann nach Erstellen des Projektes nicht mehr geändert werden. Berechtigungen der den Kampagnen übergeordneten Projekte werden übernommen.", + "Admin.EditProject.form.isVirtual.label": "Virtuell", + "Admin.EditProject.form.name.description": "Projektname", + "Admin.EditProject.form.name.label": "Name", + "Admin.EditProject.new.header": "Neues Projekt", + "Admin.EditProject.unavailable": "Projekt nicht verfügbar", + "Admin.EditTask.controls.cancel.label": "Abbrechen", + "Admin.EditTask.controls.save.label": "Speichern", "Admin.EditTask.edit.header": "Aufgabe bearbeiten", - "Admin.EditTask.new.header": "Neue Aufgabe", + "Admin.EditTask.form.additionalTags.description": "Du kannst zusätzliche MR-Tags angeben, die als Kommentar zur Aufgabe verwendet werden können.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Füge MR Tags hinzu", "Admin.EditTask.form.formTitle": "Aufgabendetails", - "Admin.EditTask.controls.save.label": "Speichern", - "Admin.EditTask.controls.cancel.label": "Abbrechen", - "Admin.EditTask.form.name.label": "Name", - "Admin.EditTask.form.name.description": "Aufgaben-Name", - "Admin.EditTask.form.instruction.label": "Anleitung", - "Admin.EditTask.form.instruction.description": "Bitte geben Sie die Anleitung zur Aufgabe ein. (erforderlich)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "Bitte geben Sie das GeoJSON für die Aufgabe an. (erforderlich)", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Bitte geben Sie die Anleitung zur Aufgabe ein. (erforderlich)", + "Admin.EditTask.form.instruction.label": "Anleitung", + "Admin.EditTask.form.name.description": "Aufgaben-Name", + "Admin.EditTask.form.name.label": "Name", "Admin.EditTask.form.priority.label": "Priorität", - "Admin.EditTask.form.status.label": "Status", "Admin.EditTask.form.status.description": "Bitte geben Sie das Status-Level für die Aufgabe ein", - "Admin.EditTask.form.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Füge MR Tags hinzu", - "Admin.Task.controls.editTask.tooltip": "Aufgabe bearbeiten", - "Admin.Task.controls.editTask.label": "Bearbeiten", - "Admin.manage.header": "Erstellen & Verwalten", - "Admin.manage.virtual": "Virtuell", - "Admin.ProjectCard.tabs.challenges.label": "Kampagnen", - "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Projektleiter", - "Admin.Project.fields.enabled.tooltip": "Aktiviert", - "Admin.Project.fields.disabled.tooltip": "Deaktiviert", - "Admin.ProjectCard.controls.editProject.tooltip": "Projekt bearbeiten", - "Admin.ProjectCard.controls.editProject.label": "Projekt bearbeiten", - "Admin.ProjectCard.controls.pinProject.label": "Projekt merken", - "Admin.ProjectCard.controls.unpinProject.label": "Projekt vergessen", + "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.new.header": "Neue Aufgabe", + "Admin.InspectTask.header": "Aufgaben analysieren", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Löschen", + "Admin.ManageChallenges.allProjectChallenge": "Alle", + "Admin.ManageChallenges.header": "Kampagnen", + "Admin.ManageChallenges.help.info": "Eine Kampagne besteht aus vielen Aufgaben, welche ein spezifisches Problem oder einen Mangel in den OpenStreetMap Daten adressieren. Die Aufgaben werden automatisch von einer overpassQL Query erstellt. Sie können jedoch auch als GeoJSON von einer Datei oder URL geladen werden. Du kannst so viele Kampagnen erstellen, wie du willst.", + "Admin.ManageChallenges.search.placeholder": "Name", + "Admin.ManageTasks.geographicIndexingNotice": "Beachte, dass es bis zu {delay} Stunden dauern kann, neue oder geänderte Kampagnen geografisch zu erfassen. Es kann sein, dass die Kampagne (oder Aufgabe) beim Suchen auf der Karte nicht erscheint, bis die Erfassung abgeschlossen ist.", + "Admin.ManageTasks.header": "Aufgaben", + "Admin.Project.challengesUndiscoverable": "Kampagnen nicht auffindbar", "Admin.Project.controls.addChallenge.label": "Neue Kampagne erstellen", + "Admin.Project.controls.addChallenge.tooltip": "Neue Kampagne", + "Admin.Project.controls.delete.label": "Projekt löschen", + "Admin.Project.controls.export.label": "Exportiere CSV", "Admin.Project.controls.manageChallengeList.label": "Kampagnenliste verwalten", + "Admin.Project.controls.visible.confirmation": "Bist Du sicher? Die Kampagnen dieses Projekts werden für Andere nicht auffindbar.", + "Admin.Project.controls.visible.label": "Sichtbar:", + "Admin.Project.fields.creationDate.label": "Erstellt:", + "Admin.Project.fields.disabled.tooltip": "Deaktiviert", + "Admin.Project.fields.enabled.tooltip": "Aktiviert", + "Admin.Project.fields.lastModifiedDate.label": "Bearbeitet", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtuell", - "Admin.Project.controls.export.label": "Exportiere CSV", - "Admin.ProjectDashboard.controls.edit.label": "Projekt bearbeiten", - "Admin.ProjectDashboard.controls.delete.label": "Projekt löschen", + "Admin.ProjectCard.controls.editProject.label": "Projekt bearbeiten", + "Admin.ProjectCard.controls.editProject.tooltip": "Projekt bearbeiten", + "Admin.ProjectCard.controls.pinProject.label": "Projekt merken", + "Admin.ProjectCard.controls.unpinProject.label": "Projekt vergessen", + "Admin.ProjectCard.tabs.challenges.label": "Kampagnen", + "Admin.ProjectCard.tabs.details.label": "Details", + "Admin.ProjectCard.tabs.managers.label": "Projektleiter", "Admin.ProjectDashboard.controls.addChallenge.label": "Kampagne hinzufügen", + "Admin.ProjectDashboard.controls.delete.label": "Projekt löschen", + "Admin.ProjectDashboard.controls.edit.label": "Projekt bearbeiten", "Admin.ProjectDashboard.controls.manageChallenges.label": "Kampagnen verwalten", - "Admin.Project.fields.creationDate.label": "Erstellt:", - "Admin.Project.fields.lastModifiedDate.label": "Bearbeitet", - "Admin.Project.controls.delete.label": "Projekt löschen", - "Admin.Project.controls.visible.label": "Sichtbar:", - "Admin.Project.controls.visible.confirmation": "Bist Du sicher? Die Kampagnen dieses Projekts werden für Andere nicht auffindbar.", - "Admin.Project.challengesUndiscoverable": "Kampagnen nicht auffindbar", - "ProjectPickerModal.chooseProject": "Wähle ein Projekt", - "ProjectPickerModal.noProjects": "Keine Projekte gefunden", - "Admin.ProjectsDashboard.newProject": "Projekt hinzufügen", + "Admin.ProjectManagers.addManager": "Projektleiter hinzufügen", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Teamname", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Bist Du sicher, dass Du den Projektleiter aus dem Projekt entfernen willst?", + "Admin.ProjectManagers.controls.removeManager.label": "Projektleiter entfernen", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Wähle eine Rolle", + "Admin.ProjectManagers.noManagers": "Kein Projektleiter", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "Benutzer", + "Admin.ProjectManagers.projectOwner": "Eigentümer", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Verwandte Kampagnen können in einem Projekt zusammengefasst werden. Jede Kampagne muss einem Projekt zugewiesen werden.", - "Admin.ProjectsDashboard.search.placeholder": "Name", - "Admin.Project.controls.addChallenge.tooltip": "Neue Kampagne", + "Admin.ProjectsDashboard.newProject": "Projekt hinzufügen", "Admin.ProjectsDashboard.regenerateHomeProject": "Bitte ab- und wieder anmelden, um ein neues Projekt zu aktualisieren.", - "RebuildTasksControl.label": "Aufgaben wiederherstellen", - "RebuildTasksControl.modal.title": "Aufgaben der Kampagne wiederherstellen", - "RebuildTasksControl.modal.intro.overpass": "Beim Neuaufbau werden die Overpass-Abfrage wiederholt und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", - "RebuildTasksControl.modal.intro.remote": "Beim Neuaufbau werden die GeoJSON-Daten erneut von der externen URL der Kampagne heruntergeladen und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", - "RebuildTasksControl.modal.intro.local": "Beim Neuaufbau kann eine neue lokale Datei mit den neuesten GeoJSON-Daten hochgeladen und die Aufgaben der Kampagne aktualisiert werden:", - "RebuildTasksControl.modal.explanation": "* Vorhandene Aufgaben, die in den neuesten Daten enthalten sind, werden aktualisiert\n* Neue Aufgaben werden hinzugefügt.\n* Bei der Auswahl, zuerst unvollständige Aufgaben (unten) zu entfernen, werden bestehende __unvollständige__ Aufgaben zuerst entfernt\n* Bei der Auswahl, unvollständige Aufgaben nicht zuerst entfernen, werden sie so belassen, wie sie sind, und möglicherweise bereits erledigte Aufgaben außerhalb von MapRoulette belassen.", - "RebuildTasksControl.modal.warning": "Warnung: Ein Neuaufbau kann zur Doppelung von Aufgaben führen, wenn Objekt-IDs nicht richtig eingerichtet sind oder wenn der Abgleich alter Daten mit neuen Daten nicht erfolgreich ist. Dieser Vorgang kann nicht rückgängig gemacht werden!", - "RebuildTasksControl.modal.moreInfo": "[Mehr erfahren](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "Zuerst nicht erledigte Aufgaben entfernen", - "RebuildTasksControl.modal.controls.cancel.label": "Abbrechen", - "RebuildTasksControl.modal.controls.proceed.label": "Weiter", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Datum an dem die Daten erhoben wurden", - "StepNavigation.controls.cancel.label": "Abbrechen", - "StepNavigation.controls.next.label": "Nächste", - "StepNavigation.controls.prev.label": "Vorherige", - "StepNavigation.controls.finish.label": "Speichern", + "Admin.ProjectsDashboard.search.placeholder": "Name", + "Admin.Task.controls.editTask.label": "Bearbeiten", + "Admin.Task.controls.editTask.tooltip": "Aufgabe bearbeiten", + "Admin.Task.fields.name.label": "Aufgabe:", + "Admin.Task.fields.status.label": "Status:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Aktionen", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Kommentare", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Bearbeiten", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Analyse", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Prüfung", + "Admin.TaskAnalysisTable.controls.startTask.label": "Start", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Gezeigt", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Ausgewählt: {selectedCount} Aufgaben", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Angezeigt: {countShown} Aufgaben", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Angezeigt: {percentShown}% ({countShown}) von {countTotal} Aufgaben", "Admin.TaskDeletingProgress.deletingTasks.header": "Lösche Aufgaben", "Admin.TaskDeletingProgress.tasksDeleting.label": "Aufgaben gelöscht", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Regel löschen", - "Admin.TaskPropertyStyleRules.addRule": "Weitere Regel hinzufügen", + "Admin.TaskInspect.controls.editTask.label": "Aufgabe bearbeiten", + "Admin.TaskInspect.controls.modifyTask.label": "Aufgabe bearbeiten", + "Admin.TaskInspect.controls.nextTask.label": "Nächste", + "Admin.TaskInspect.controls.previousTask.label": "Vorherige", + "Admin.TaskInspect.readonly.message": "Vorschau der Aufgabe im schreibgeschützten Modus", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Hinzufügen", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Weiteren Stil hinzufügen", + "Admin.TaskPropertyStyleRules.addRule": "Weitere Regel hinzufügen", + "Admin.TaskPropertyStyleRules.deleteRule": "Regel löschen", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Stil entfernen", "Admin.TaskPropertyStyleRules.styleName": "Stilname", "Admin.TaskPropertyStyleRules.styleValue": "Stilwert", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "Wert", - "Admin.TaskUploadProgress.uploadingTasks.header": "Aufgaben erstellen", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Bestätigen", + "Admin.TaskReview.controls.approvedWithFixes": "Bestätigen (mit Korrekturen)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Prüfstatus:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Aufgabenstatus:", + "Admin.TaskReview.controls.rejected": "Verwerfen", + "Admin.TaskReview.controls.resubmit": "Wiedervorlage zur Prüfung", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Diese Aufgabe wird derzeit von jemand anderem geprüft.", + "Admin.TaskReview.controls.reviewNotRequested": "Keine Prüfung für diese Aufgabe angefragt.", + "Admin.TaskReview.controls.skipReview": "Prüfung überspringen", + "Admin.TaskReview.controls.startReview": "Prüfung starten", + "Admin.TaskReview.controls.taskNotCompleted": "Diese Aufgabe kann noch nicht geprüft werden, weil sie noch nicht erledigt wurde.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Prüfstatus aktualisieren", + "Admin.TaskReview.controls.userNotReviewer": "Du bist noch nicht als Prüfer eingerichtet. Die Einrichtung als Prüfer erfolgt in den Benutzereinstellungen.", + "Admin.TaskReview.reviewerIsMapper": "Du kannst keine Aufgaben prüfen, die du selbst bearbeitet hast.", "Admin.TaskUploadProgress.tasksUploaded.label": "Aufgaben hochgeladen", - "Admin.Challenge.tasksBuilding": "Aufgaben werden erstellt...", - "Admin.Challenge.tasksFailed": "Erstellen von Aufgaben fehlgeschlagen", - "Admin.Challenge.tasksNone": "Keine Aufgaben", - "Admin.Challenge.tasksCreatedCount": "Bisher erstellte Aufgaben.", - "Admin.Challenge.totalCreationTime": "Insgesamt verstrichene Zeit:", - "Admin.Challenge.controls.refreshStatus.label": "Status aktualisieren in", - "Admin.ManageTasks.header": "Aufgaben", - "Admin.ManageTasks.geographicIndexingNotice": "Beachte, dass es bis zu {delay} Stunden dauern kann, neue oder geänderte Kampagnen geografisch zu erfassen. Es kann sein, dass die Kampagne (oder Aufgabe) beim Suchen auf der Karte nicht erscheint, bis die Erfassung abgeschlossen ist.", - "Admin.manageTasks.controls.changePriority.label": "Priorität ändern", - "Admin.manageTasks.priorityLabel": "Priorität", - "Admin.manageTasks.controls.clearFilters.label": "Filter Löschen", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Aufgabe analysieren", - "Admin.ChallengeTaskMap.controls.editTask.label": "Aufgabe bearbeiten", - "Admin.Task.fields.name.label": "Aufgabe:", - "Admin.Task.fields.status.label": "Status:", - "Admin.VirtualProject.manageChallenge.label": "Kampagnen verwalten", - "Admin.VirtualProject.controls.done.label": "Erledigt", - "Admin.VirtualProject.controls.addChallenge.label": "Kampagne hinzufügen", + "Admin.TaskUploadProgress.uploadingTasks.header": "Aufgaben erstellen", "Admin.VirtualProject.ChallengeList.noChallenges": "Keine Kampagnen", "Admin.VirtualProject.ChallengeList.search.placeholder": "Suchen", - "Admin.VirtualProject.currentChallenges.label": "Kampagnen in", - "Admin.VirtualProject.findChallenges.label": "Kampagnen suchen", "Admin.VirtualProject.controls.add.label": "Hinzufügen", + "Admin.VirtualProject.controls.addChallenge.label": "Kampagne hinzufügen", + "Admin.VirtualProject.controls.done.label": "Erledigt", "Admin.VirtualProject.controls.remove.label": "Entfernen", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Verbleibende Aufgaben: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Tägliche Heatmap: Vervollständigung der Aufgabe", - "Widgets.ChallengeListWidget.label": "Kampagnen", - "Widgets.ChallengeListWidget.title": "Kampagnen", - "Widgets.ChallengeListWidget.search.placeholder": "Suchen", + "Admin.VirtualProject.currentChallenges.label": "Kampagnen in", + "Admin.VirtualProject.findChallenges.label": "Kampagnen suchen", + "Admin.VirtualProject.manageChallenge.label": "Kampagnen verwalten", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Prüfdauer", + "Admin.fields.reviewedAt.label": "Geprüft am", + "Admin.manage.header": "Erstellen & Verwalten", + "Admin.manage.virtual": "Virtuell", "Admin.manageProjectChallenges.controls.exportCSV.label": "Exportiere CSV", - "Widgets.ChallengeOverviewWidget.label": "Kampagnenübersicht", - "Widgets.ChallengeOverviewWidget.title": "Übersicht", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Erstellt:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Bearbeitet:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Aufgaben aktualisiert:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Aufgaben erstellt:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Aufgaben erstellt am {refreshDate} mit Daten vom {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Sichtbar:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Schlüsselwörter:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "Projekt nicht sichtbar", - "Widgets.ChallengeTasksWidget.label": "Aufgaben", - "Widgets.ChallengeTasksWidget.title": "Aufgaben", - "Widgets.CommentsWidget.label": "Kommentare", - "Widgets.CommentsWidget.title": "Kommentare", - "Widgets.CommentsWidget.controls.export.label": "Exportieren", - "Widgets.LeaderboardWidget.label": "Bestenliste", - "Widgets.LeaderboardWidget.title": "Bestenliste", - "Widgets.ProjectAboutWidget.label": "Über das Projekt", - "Widgets.ProjectAboutWidget.title": "Über das Projekt", - "Widgets.ProjectAboutWidget.content": "Verwandte Kampagnen können in einem Projekt zusammengefasst werden.\nJede Kampagne muss einem Projekt zugewiesen werden.\n\nErstelle so viele Projekte wie benötigt, um Deine Kampagne zu organisieren.\nLade andere MapRoulette-Benutzer ein, Dir bei der Verwaltung zu helfen.\n\nProjekte müssen auf sichtbar gestellt werden, damit deren Kampagnen\nin der Suche oder auf der Karte angezeigt werden.", - "Widgets.ProjectListWidget.label": "Projektliste", - "Widgets.ProjectListWidget.title": "Projekte", - "Widgets.ProjectListWidget.search.placeholder": "Suchen", - "Widgets.ProjectManagersWidget.label": "Projektleiter", - "Admin.ProjectManagers.noManagers": "Kein Projektleiter", - "Admin.ProjectManagers.addManager": "Projektleiter hinzufügen", - "Admin.ProjectManagers.projectOwner": "Eigentümer", - "Admin.ProjectManagers.controls.removeManager.label": "Projektleiter entfernen", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Bist Du sicher, dass Du den Projektleiter aus dem Projekt entfernen willst?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Wähle eine Rolle", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Teamname", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "Benutzer", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Übersicht", - "Widgets.ProjectOverviewWidget.title": "Übersicht", - "Widgets.RecentActivityWidget.label": "Neueste Aktivität", - "Widgets.RecentActivityWidget.title": "Neueste Aktivität", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Von Benutzern evaluierte Aufgaben", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Aufgaben auswählen", + "Admin.manageTasks.controls.changePriority.label": "Priorität ändern", + "Admin.manageTasks.controls.changeReviewStatus.label": "Aus Prüfliste entfernen", + "Admin.manageTasks.controls.changeStatusTo.label": "Status ändern zu", + "Admin.manageTasks.controls.chooseStatus.label": "Wähle ...", + "Admin.manageTasks.controls.clearFilters.label": "Filter Löschen", + "Admin.manageTasks.controls.configureColumns.label": "Spalten verwalten", + "Admin.manageTasks.controls.exportCSV.label": "Exportiere CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Exportiere GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Prüfung als CSV exportieren", + "Admin.manageTasks.controls.hideReviewColumns.label": "Prüfspalten ausblenden", + "Admin.manageTasks.controls.showReviewColumns.label": "Prüfspalten einblenden", + "Admin.manageTasks.priorityLabel": "Priorität", "AutosuggestTextBox.labels.noResults": "Keine Treffer", - "Form.textUpload.prompt": "GeoJSON Datei hier ablegen oder klicken zur Dateiauswahl", - "Form.textUpload.readonly": "Vorhandene Datei wird verwendet", - "Form.controls.addPriorityRule.label": "Eine Regel hinzufügen", - "Form.controls.addMustachePreview.note": "Hinweis: Alle mustache Eigenschafts-Tags werden in der Vorschau als leer angezeigt.", + "BoundsSelectorModal.control.dismiss.label": "Grenzen wählen", + "BoundsSelectorModal.header": "Grenzen wählen", + "BoundsSelectorModal.primaryMessage": "Grenzen zur Auswahl markieren.", + "BurndownChart.heading": "Noch verfügbare Aufgaben: {taskCount, number}", + "BurndownChart.tooltip": "Noch verfügbare Aufgaben", + "CalendarHeatmap.heading": "Tägliche Heatmap: Vervollständigung der Aufgabe", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Benutzerdefiniert", + "Challenge.basemap.none": "Keine", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OSM", + "Challenge.controls.clearFilters.label": "Filter Löschen", + "Challenge.controls.loadMore.label": "Mehr Ergebnisse", + "Challenge.controls.save.label": "Speichern", + "Challenge.controls.start.label": "Start", + "Challenge.controls.taskLoadBy.label": "Lade Aufgaben nach:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Aus Favoritenliste entfernen", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "Keine", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Egal", + "Challenge.difficulty.easy": "Leicht", + "Challenge.difficulty.expert": "Experte", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Schwierigkeit", "Challenge.fields.lastTaskRefresh.label": "Aufgaben von", "Challenge.fields.viewLeaderboard.label": "Bestenliste anzeigen", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "Bestenliste anzeigen", - "Project.indicator.label": "Projekt", - "ChallengeDetails.controls.goBack.label": "Zurück", - "ChallengeDetails.controls.start.label": "Start", - "ChallengeDetails.controls.favorite.label": "Als Favorit", - "ChallengeDetails.controls.favorite.tooltip": "In Favoritenliste speichern", - "ChallengeDetails.controls.unfavorite.label": "Von Favoritenliste entfernen", - "ChallengeDetails.controls.unfavorite.tooltip": "Aus Favoritenliste entfernen", - "ChallengeDetails.management.controls.manage.label": "Verwalten", - "ChallengeDetails.Task.fields.featured.label": "Empfohlen", - "ChallengeDetails.fields.difficulty.label": "Schwierigkeit", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Aufgaben von", - "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Aufgaben erstellt am {refreshDate} mit Daten vom {sourceDate}.", + "Challenge.fields.vpList.label": "Auch {count,plural, one{im passenden virtuellen Projekt} other{in passenden virtuellen Projekten}}:", + "Challenge.keywords.any": "Alles", + "Challenge.keywords.buildings": "Gebäude", + "Challenge.keywords.landUse": "Landnutzung und Grenzen", + "Challenge.keywords.navigation": "Straßen und Wege", + "Challenge.keywords.other": "Andere", + "Challenge.keywords.pointsOfInterest": "Interessante Orte", + "Challenge.keywords.transit": "Verkehr", + "Challenge.keywords.water": "Wasser", + "Challenge.location.any": "Überall", + "Challenge.location.intersectingMapBounds": "im Kartenausschnitt", + "Challenge.location.nearMe": "In der Nähe", + "Challenge.location.withinMapBounds": "Innerhalb der Kartengrenze", + "Challenge.management.controls.manage.label": "Verwalten", + "Challenge.results.heading": "Kampagnen", + "Challenge.results.noResults": "Keine Kampagnen gefunden", + "Challenge.signIn.label": "Bitte melde dich an, um zu starten", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Neu", + "Challenge.sort.default": "Standard", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Älteste", + "Challenge.sort.popularity": "Beliebt", + "Challenge.status.building": "Erstelle", + "Challenge.status.deletingTasks": "Lösche Aufgaben", + "Challenge.status.failed": "Fehlgeschlagen", + "Challenge.status.finished": "Abgeschlossen", + "Challenge.status.none": "Nicht zutreffend", + "Challenge.status.partiallyLoaded": "Teilweise geladen", + "Challenge.status.ready": "Bereit", + "Challenge.type.challenge": "Kampagne", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Kampagnensichtbarkeit ändern", + "ChallengeCard.totalTasks": "Aufgabenanzahl", + "ChallengeDetails.Task.fields.featured.label": "Empfohlen", + "ChallengeDetails.controls.favorite.label": "Als Favorit", + "ChallengeDetails.controls.favorite.tooltip": "In Favoritenliste speichern", + "ChallengeDetails.controls.goBack.label": "Zurück", + "ChallengeDetails.controls.start.label": "Start", + "ChallengeDetails.controls.unfavorite.label": "Von Favoritenliste entfernen", + "ChallengeDetails.controls.unfavorite.tooltip": "Aus Favoritenliste entfernen", + "ChallengeDetails.fields.difficulty.label": "Schwierigkeit", + "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Aufgaben erstellt am {refreshDate} mit Daten vom {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Aufgaben von", "ChallengeDetails.fields.viewLeaderboard.label": "Bestenliste anzeigen", "ChallengeDetails.fields.viewReviews.label": "Prüfung", + "ChallengeDetails.management.controls.manage.label": "Verwalten", + "ChallengeEndModal.control.dismiss.label": "Weiter", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "Du hast alle verbliebenen Aufgaben der Kampagne übersprungen oder als zu schwierig eingestuft.", - "ChallengeEndModal.control.dismiss.label": "Weiter", - "Task.controls.contactOwner.label": "Ersteller kontaktieren", - "Task.controls.contactLink.label": "{owner} via OSM benachrichtigen", - "ChallengeFilterSubnav.header": "Kampagnen", + "ChallengeFilterSubnav.controls.sortBy.label": "Sortieren nach", "ChallengeFilterSubnav.filter.difficulty.label": "Schwierigkeit", "ChallengeFilterSubnav.filter.keyword.label": "Bearbeite", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Andere:", "ChallengeFilterSubnav.filter.location.label": "Ort", "ChallengeFilterSubnav.filter.search.label": "Suche nach Name", - "Challenge.controls.clearFilters.label": "Filter Löschen", - "ChallengeFilterSubnav.controls.sortBy.label": "Sortieren nach", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Andere:", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Speichern", - "Challenge.controls.start.label": "Start", - "Challenge.management.controls.manage.label": "Verwalten", - "Challenge.signIn.label": "Bitte melde dich an, um zu starten", - "Challenge.results.heading": "Kampagnen", - "Challenge.results.noResults": "Keine Kampagnen gefunden", - "VirtualChallenge.controls.tooMany.label": "Hineinzoomen, um Aufgaben zu bearbeiten", - "VirtualChallenge.controls.tooMany.tooltip": "Eine \"virtuelle\" Kampagne kann maximal {maxTasks, number} Aufgaben beinhalten.", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Gebe deiner \"virtuellen\" Kampagne einen Namen", - "Challenge.controls.loadMore.label": "Mehr Ergebnisse", + "ChallengeFilterSubnav.header": "Kampagnen", + "ChallengeFilterSubnav.query.searchType.challenge": "Kampagnen", + "ChallengeFilterSubnav.query.searchType.project": "Projekte", "ChallengePane.controls.startChallenge.label": "Kampagne starten", - "Task.fauxStatus.available": "Verfügbar", - "ChallengeProgress.tooltip.label": "Aufgaben", - "ChallengeProgress.tasks.remaining": "Verbleibende Aufgaben: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "von {totalCount, number}", - "ChallengeProgress.priority.toggle": "Nach Priorität sortiert", - "ChallengeProgress.priority.label": "Aufgabe hat {priority} Priorität", - "ChallengeProgress.reviewStatus.label": "Prüfstatus", "ChallengeProgress.metrics.averageTime.label": "Durchschn. Zeit pro Aufgabe:", "ChallengeProgress.metrics.excludesSkip.label": "(ohne übersprungene Aufgaben)", + "ChallengeProgress.priority.label": "Aufgabe hat {priority} Priorität", + "ChallengeProgress.priority.toggle": "Nach Priorität sortiert", + "ChallengeProgress.reviewStatus.label": "Prüfstatus", + "ChallengeProgress.tasks.remaining": "Verbleibende Aufgaben: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": "von {totalCount, number}", + "ChallengeProgress.tooltip.label": "Aufgaben", + "ChallengeProgressBorder.available": "Verfügbar", "CommentList.controls.viewTask.label": "Aufgabe ansehen", "CommentList.noComments.label": "Keine Kommentare", - "ConfigureColumnsModal.header": "Spalten zur Anzeige auswählen", + "CompletionRadar.heading": "Aufgaben erledigt: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Verfügbare Spalten", - "ConfigureColumnsModal.showingColumns.header": "Angezeigte Spalten", "ConfigureColumnsModal.controls.add": "Hinzufügen", - "ConfigureColumnsModal.controls.remove": "Entfernen", "ConfigureColumnsModal.controls.done.label": "Erledigt", - "ConfirmAction.title": "Bist du sicher?", - "ConfirmAction.prompt": "Diese Aktion kann nicht rückgängig gemacht werden", + "ConfigureColumnsModal.controls.remove": "Entfernen", + "ConfigureColumnsModal.header": "Spalten zur Anzeige auswählen", + "ConfigureColumnsModal.showingColumns.header": "Angezeigte Spalten", "ConfirmAction.cancel": "Abbrechen", "ConfirmAction.proceed": "Weiter", + "ConfirmAction.prompt": "Diese Aktion kann nicht rückgängig gemacht werden", + "ConfirmAction.title": "Bist du sicher?", + "CongratulateModal.control.dismiss.label": "Weiter", "CongratulateModal.header": "Glückwunsch!", "CongratulateModal.primaryMessage": "Kampagne fertiggestellt", - "CongratulateModal.control.dismiss.label": "Weiter", - "CountryName.ALL": "Weltweit", + "CooperativeWorkControls.controls.confirm.label": "Ja", + "CooperativeWorkControls.controls.moreOptions.label": "Andere", + "CooperativeWorkControls.controls.reject.label": "Nein", + "CooperativeWorkControls.prompt": "Sind die vorgeschlagenen Änderungen der OSM Tags korrekt?", + "CountryName.AE": "Vereinigte Arabische Emirate", "CountryName.AF": "Afghanistan", - "CountryName.AO": "Angola", "CountryName.AL": "Albanien", - "CountryName.AE": "Vereinigte Arabische Emirate", - "CountryName.AR": "Argentinien", + "CountryName.ALL": "Weltweit", "CountryName.AM": "Armenien", + "CountryName.AO": "Angola", "CountryName.AQ": "Antarktis", - "CountryName.TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", - "CountryName.AU": "Australien", + "CountryName.AR": "Argentinien", "CountryName.AT": "\u00d6sterreich", + "CountryName.AU": "Australien", "CountryName.AZ": "Aserbaidschan", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosnien und Herzegowina", + "CountryName.BD": "Bangladesch", "CountryName.BE": "Belgien", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesch", "CountryName.BG": "Bulgarien", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bosnien und Herzegowina", - "CountryName.BY": "Belarus", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunei Darussalam", "CountryName.BO": "Bolivien", "CountryName.BR": "Brasilien", - "CountryName.BN": "Brunei Darussalam", + "CountryName.BS": "Bahamas", "CountryName.BT": "Bhutan", "CountryName.BW": "Botsuana", - "CountryName.CF": "Zentralafrikanische Republik", + "CountryName.BY": "Belarus", + "CountryName.BZ": "Belize", "CountryName.CA": "Kanada", + "CountryName.CD": "Kongo-Kinshasa", + "CountryName.CF": "Zentralafrikanische Republik", + "CountryName.CG": "Kongo-Brazzaville", "CountryName.CH": "Schweiz", - "CountryName.CL": "Chile", - "CountryName.CN": "China", "CountryName.CI": "C\u00f4te d\u2019Ivoire", + "CountryName.CL": "Chile", "CountryName.CM": "Kamerun", - "CountryName.CD": "Kongo-Kinshasa", - "CountryName.CG": "Kongo-Brazzaville", + "CountryName.CN": "China", "CountryName.CO": "Kolumbien", "CountryName.CR": "Costa Rica", "CountryName.CU": "Kuba", @@ -415,10 +485,10 @@ "CountryName.DO": "Dominikanische Republik", "CountryName.DZ": "Algerien", "CountryName.EC": "Ecuador", + "CountryName.EE": "Estland", "CountryName.EG": "\u00c4gypten", "CountryName.ER": "Eritrea", "CountryName.ES": "Spanien", - "CountryName.EE": "Estland", "CountryName.ET": "\u00c4thiopien", "CountryName.FI": "Finnland", "CountryName.FJ": "Fidschi", @@ -428,57 +498,58 @@ "CountryName.GB": "Vereinigtes K\u00f6nigreich", "CountryName.GE": "Georgien", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinea", + "CountryName.GL": "Gr\u00f6nland", "CountryName.GM": "Gambia", - "CountryName.GW": "Guinea-Bissau", + "CountryName.GN": "Guinea", "CountryName.GQ": "\u00c4quatorialguinea", "CountryName.GR": "Griechenland", - "CountryName.GL": "Gr\u00f6nland", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinea-Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Kroatien", "CountryName.HT": "Haiti", "CountryName.HU": "Ungarn", "CountryName.ID": "Indonesien", - "CountryName.IN": "Indien", "CountryName.IE": "Irland", - "CountryName.IR": "Iran", + "CountryName.IL": "Israel", + "CountryName.IN": "Indien", "CountryName.IQ": "Irak", + "CountryName.IR": "Iran", "CountryName.IS": "Island", - "CountryName.IL": "Israel", "CountryName.IT": "Italien", "CountryName.JM": "Jamaika", "CountryName.JO": "Jordanien", "CountryName.JP": "Japan", - "CountryName.KZ": "Kasachstan", "CountryName.KE": "Kenia", "CountryName.KG": "Kirgisistan", "CountryName.KH": "Kambodscha", + "CountryName.KP": "Nordkorea", "CountryName.KR": "S\u00fcdkorea", "CountryName.KW": "Kuwait", + "CountryName.KZ": "Kasachstan", "CountryName.LA": "Laos", "CountryName.LB": "Libanon", - "CountryName.LR": "Liberia", - "CountryName.LY": "Libyen", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Liberia", "CountryName.LS": "Lesotho", "CountryName.LT": "Litauen", "CountryName.LU": "Luxemburg", "CountryName.LV": "Lettland", + "CountryName.LY": "Libyen", "CountryName.MA": "Marokko", "CountryName.MD": "Republik Moldau", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagaskar", - "CountryName.MX": "Mexiko", "CountryName.MK": "Mazedonien", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongolei", - "CountryName.MZ": "Mosambik", "CountryName.MR": "Mauretanien", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexiko", "CountryName.MY": "Malaysia", + "CountryName.MZ": "Mosambik", "CountryName.NA": "Namibia", "CountryName.NC": "Neukaledonien", "CountryName.NE": "Niger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "Neuseeland", "CountryName.OM": "Oman", - "CountryName.PK": "Pakistan", "CountryName.PA": "Panama", "CountryName.PE": "Peru", - "CountryName.PH": "Philippinen", "CountryName.PG": "Papua-Neuguinea", + "CountryName.PH": "Philippinen", + "CountryName.PK": "Pakistan", "CountryName.PL": "Polen", "CountryName.PR": "Puerto Rico", - "CountryName.KP": "Nordkorea", + "CountryName.PS": "Pal\u00e4stinensische Autonomiegebiete", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Katar", "CountryName.RO": "Rum\u00e4nien", + "CountryName.RS": "Serbien", "CountryName.RU": "Russland", "CountryName.RW": "Ruanda", "CountryName.SA": "Saudi-Arabien", - "CountryName.SD": "Sudan", - "CountryName.SS": "S\u00fcdsudan", - "CountryName.SN": "Senegal", "CountryName.SB": "Salomonen", + "CountryName.SD": "Sudan", + "CountryName.SE": "Schweden", + "CountryName.SI": "Slowenien", + "CountryName.SK": "Slowakei", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somalia", - "CountryName.RS": "Serbien", "CountryName.SR": "Suriname", - "CountryName.SK": "Slowakei", - "CountryName.SI": "Slowenien", - "CountryName.SE": "Schweden", - "CountryName.SZ": "Swasiland", + "CountryName.SS": "S\u00fcdsudan", + "CountryName.SV": "El Salvador", "CountryName.SY": "Syrien", + "CountryName.SZ": "Swasiland", "CountryName.TD": "Tschad", + "CountryName.TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", "CountryName.TG": "Togo", "CountryName.TH": "Thailand", "CountryName.TJ": "Tadschikistan", - "CountryName.TM": "Turkmenistan", "CountryName.TL": "Osttimor", - "CountryName.TT": "Trinidad und Tobago", + "CountryName.TM": "Turkmenistan", "CountryName.TN": "Tunesien", "CountryName.TR": "T\u00fcrkei", + "CountryName.TT": "Trinidad und Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tansania", - "CountryName.UG": "Uganda", "CountryName.UA": "Ukraine", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "Vereinigte Staaten", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Usbekistan", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Pal\u00e4stinensische Autonomiegebiete", "CountryName.YE": "Jemen", "CountryName.ZA": "S\u00fcdafrika", "CountryName.ZM": "Sambia", "CountryName.ZW": "Simbabwe", - "FitBoundsControl.tooltip": "Bitte Prüfkonflikt bestätigen", - "LayerToggle.controls.showTaskFeatures.label": "Aufgabendetails", - "LayerToggle.controls.showOSMData.label": "OSM Daten", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "Mehr", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {keine Bilder} other {# Bilder}})", - "LayerToggle.loading": "(lädt...)", - "PropertyList.title": "Eigenschaften", - "PropertyList.noProperties": "Keine Eigenschaften", - "EnhancedMap.SearchControl.searchLabel": "Suchen", + "Dashboard.ChallengeFilter.pinned.label": "Angeheftet", + "Dashboard.ChallengeFilter.visible.label": "Sichtbar", + "Dashboard.ProjectFilter.owner.label": "Im Besitz", + "Dashboard.ProjectFilter.pinned.label": "Angeheftet", + "Dashboard.ProjectFilter.visible.label": "Sichtbar", + "Dashboard.header": "Übersicht", + "Dashboard.header.completedTasks": "{completedTasks, number} Aufgaben", + "Dashboard.header.completionPrompt": "Mit", + "Dashboard.header.controls.findChallenge.label": "Neue Kampagnen entdecken", + "Dashboard.header.controls.latestChallenge.label": "Bringe mich zur Kampagne", + "Dashboard.header.encouragement": "Weiter so!", + "Dashboard.header.find": "Oder finde", + "Dashboard.header.getStarted": "Sammle Punkte, indem Du Kampagnen-Aufgaben löst!", + "Dashboard.header.globalRank": "Platz #{rank, number}", + "Dashboard.header.globally": "der weltweiten Bestenliste.", + "Dashboard.header.jumpBackIn": "Steig' wieder ein!", + "Dashboard.header.pointsPrompt": ", hast Du", + "Dashboard.header.rankPrompt": ", und bist auf", + "Dashboard.header.resume": "Zur letzten Kampagne zurückgehen", + "Dashboard.header.somethingNew": "etwas Neues", + "Dashboard.header.userScore": "{points, number} Punkte", + "Dashboard.header.welcomeBack": "Willkommen zurück, {username}!", + "Editor.id.label": "iD", + "Editor.josm.label": "JOSM", + "Editor.josmFeatures.label": "Nur das Merkmal in JOSM bearbeiten", + "Editor.josmLayer.label": "JOSM mit neuer Ebene", + "Editor.level0.label": "In Level0 bearbeiten", + "Editor.none.label": "Keine", + "Editor.rapid.label": "In RapiD bearbeiten", "EnhancedMap.SearchControl.noResults": "Keine Ergebnisse", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Suchanfrage", + "EnhancedMap.SearchControl.searchLabel": "Suchen", "ErrorModal.title": "Hoppla!", - "FeaturedChallenges.header": "Höhepunkte der Kampagne", - "FeaturedChallenges.noFeatured": "Aktuell keine Empfehlungen", - "FeaturedChallenges.projectIndicator.label": "Projekt", - "FeaturedChallenges.browse": "Entdecken", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "enthält", - "FeatureStyleLegend.comparators.missing.label": "fehlt", - "FeatureStyleLegend.comparators.exists.label": "existiert", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Hilfe", - "Footer.reportBug": "Fehler melden", - "Footer.joinNewsletter": "Abonniere den Newsletter!", - "Footer.followUs": "Folge uns", - "Footer.email.placeholder": "Email Adresse", - "Footer.email.submit.label": "Abschicken", - "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", + "Errors.boundedTask.fetchFailure": "Kartengebundene Aufgaben können nicht geladen werden", + "Errors.challenge.deleteFailure": "Die Kampagne konnte nicht gelöscht werden.", + "Errors.challenge.doesNotExist": "Diese Kampagne existiert nicht.", + "Errors.challenge.fetchFailure": "Die neuesten Daten der Kampagne konnten nicht vom Server geladen werden.", + "Errors.challenge.rebuildFailure": "Aufgaben der Kampagne können nicht wiederhergestellt werden", + "Errors.challenge.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", + "Errors.challenge.searchFailure": "Die Kampagnen konnten nicht auf dem Server gefunden werden.", + "Errors.clusteredTask.fetchFailure": "Aufgabengruppen können nicht geladen werden", + "Errors.josm.missingFeatureIds": "Diese Aufgabenmerkmale besitzen nicht die erforderlichen OSM Identifikationsmerkmale, um sie in JOSM zu öffnen. Bitte wähle eine andere Editieroption.", + "Errors.josm.noResponse": "Die OSM Fernsteuerung antwortet nicht. Läuft bei dir JOSM mit aktivierter Fernsteuerung?", + "Errors.leaderboard.fetchFailure": "Bestenliste konnte nicht geladen werden.", + "Errors.map.placeNotFound": "Nominatim hat keine Ergebnisse gefunden.", + "Errors.map.renderFailure": "Nicht in der Lage, die Karte zu erstellen{details}. Versuche in die Standardkartenebene zurückzugehen.", + "Errors.mapillary.fetchFailure": "Die Daten von Mapillary konnten nicht geladen werden.", + "Errors.nominatim.fetchFailure": "Die Daten von Nominatim konnten nicht geladen werden.", + "Errors.openStreetCam.fetchFailure": "Die Daten von OpenStreetCam konnten nicht geladen werden.", + "Errors.osm.bandwidthExceeded": "Zulässige OpenStreetMap Bandbreite überschritten", + "Errors.osm.elementMissing": "Das Element wurde nicht auf dem OpenStreetMap Server gefunden.", + "Errors.osm.fetchFailure": "Die Daten von Openstreetmap konnten nicht geladen werden.", + "Errors.osm.requestTooLarge": "OpenStreetMap Datenabfrage zu groß", + "Errors.project.deleteFailure": "Das Projekt konnte nicht gelöscht werden.", + "Errors.project.fetchFailure": "Die neuesten Projektdaten konnten nicht vom Server geladen werden.", + "Errors.project.notManager": "Du musst Projektmanager sein, um fortfahren zu können.", + "Errors.project.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", + "Errors.project.searchFailure": "Das Projekt konnte nicht gefunden werden.", + "Errors.reviewTask.alreadyClaimed": "Diese Aufgabe wird bereits von jemand anderem geprüft.", + "Errors.reviewTask.fetchFailure": "Prüfaufgaben konnten nicht geladen werden.", + "Errors.reviewTask.notClaimedByYou": "Die Prüfung kann nicht abgebrochen werden.", + "Errors.task.alreadyLocked": "Die Aufgabe wurde bereits von jemand anderem gesperrt.", + "Errors.task.bundleFailure": "Aufgaben können nicht gruppiert werden", + "Errors.task.deleteFailure": "Aufgabe konnte nicht gelöscht werden.", + "Errors.task.doesNotExist": "Diese Aufgabe existiert nicht.", + "Errors.task.fetchFailure": "Es konnte keine Aufgabe zur Bearbeitung geladen werden.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "Keine weiteren Aufgaben in dieser Kampagne.", + "Errors.task.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", + "Errors.task.updateFailure": "Deine Änderungen konnten nicht gespeichert werden.", + "Errors.team.genericFailure": "Fehler{details}", + "Errors.user.fetchFailure": "Benutzerdaten konnten nicht vom Server geladen werden.", + "Errors.user.genericFollowFailure": "Fehler{details}", + "Errors.user.missingHomeLocation": "Kein Standort gefunden. Bitte entweder die Standortfreigabe durch den Browser ermöglichen oder den Standort in den Benutzereinstellungen unter openstreetmap.org festlegen. (Um Änderungen der OpenStreetMap-Einstellungen zu übernehmen ist eine neue Anmeldung bei MapRoulette erforderlich).", + "Errors.user.notFound": "Benutzer nicht gefunden.", + "Errors.user.unauthenticated": "Bitte melde dich an, um fortzufahren.", + "Errors.user.unauthorized": "Du hast leider nicht die Berechtigung, das zu tun.", + "Errors.user.updateFailure": "Benutzer konnte nicht auf dem Server aktualisiert werden.", + "Errors.virtualChallenge.createFailure": "Es konnte keine virtuelle Kampagne erstellt werden{details}", + "Errors.virtualChallenge.expired": "Virtuelle kampagne ist abgelaufen.", + "Errors.virtualChallenge.fetchFailure": "Die neuesten Daten der virtuellen Kampagne konnten nicht vom Server geladen werden.", + "Errors.widgetWorkspace.importFailure": "Ansicht kann nicht importiert werden{details}", + "Errors.widgetWorkspace.renderFailure": "Arbeitsbereich kann nicht angezeigt werden. Ansicht wird gewechselt.", + "FeatureStyleLegend.comparators.contains.label": "enthält", + "FeatureStyleLegend.comparators.exists.label": "existiert", + "FeatureStyleLegend.comparators.missing.label": "fehlt", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Entdecken", + "FeaturedChallenges.header": "Höhepunkte der Kampagne", + "FeaturedChallenges.noFeatured": "Aktuell keine Empfehlungen", + "FeaturedChallenges.projectIndicator.label": "Projekt", + "FitBoundsControl.tooltip": "Bitte Prüfkonflikt bestätigen", + "Followers.ViewFollowers.blockedHeader": "Gesperrte Follower", + "Followers.ViewFollowers.followersNotAllowed": "Follower sind nicht zugelassen (kann in den Benutzereinstellungen geändert werden)", + "Followers.ViewFollowers.header": "Deine Follower", + "Followers.ViewFollowers.indicator.following": "folgen", + "Followers.ViewFollowers.noBlockedFollowers": "Du hast keine Follower blockiert", + "Followers.ViewFollowers.noFollowers": "Keiner folgt Dir", + "Followers.controls.block.label": "Sperren", + "Followers.controls.followBack.label": "Zurückfolgen", + "Followers.controls.unblock.label": "Entsperren", + "Following.Activity.controls.loadMore.label": "Mehr laden", + "Following.ViewFollowing.header": "Du folgst", + "Following.ViewFollowing.notFollowing": "Du folgst niemandem", + "Following.controls.stopFollowing.label": "Folgen beenden von", + "Footer.email.placeholder": "Email Adresse", + "Footer.email.submit.label": "Abschicken", + "Footer.followUs": "Folge uns", + "Footer.getHelp": "Hilfe", + "Footer.joinNewsletter": "Abonniere den Newsletter!", + "Footer.reportBug": "Fehler melden", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Hinweis: Alle mustache Eigenschafts-Tags werden in der Vorschau als leer angezeigt.", + "Form.controls.addPriorityRule.label": "Eine Regel hinzufügen", + "Form.textUpload.prompt": "GeoJSON Datei hier ablegen oder klicken zur Dateiauswahl", + "Form.textUpload.readonly": "Vorhandene Datei wird verwendet", + "General.controls.moreResults.label": "Mehr Ergebnisse", + "GlobalActivity.title": "Weltweite Aktivität", + "Grant.Role.admin": "Administrator", + "Grant.Role.read": "Lesen", + "Grant.Role.write": "Schreiben", + "HelpPopout.control.label": "Help", + "Home.Featured.browse": "Entdecken", + "Home.Featured.header": "Empfohlene Kampagnen", + "HomePane.createChallenges": "Erstelle Aufgaben für andere, um die Kartendaten zu verbessern.", "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Finde Aufgaben zu Themen, die Dir wichtig sind.", - "HomePane.filterLocationIntro": "Verbessere Fehler in Gegenden, die dir wichtig sind.", "HomePane.filterDifficultyIntro": "Aufgaben in verschiedenen Schwierigkeiten, vom Anfänger bis zum Experten.", - "HomePane.createChallenges": "Erstelle Aufgaben für andere, um die Kartendaten zu verbessern.", + "HomePane.filterLocationIntro": "Verbessere Fehler in Gegenden, die dir wichtig sind.", + "HomePane.filterTagIntro": "Finde Aufgaben zu Themen, die Dir wichtig sind.", + "HomePane.header": "Werde in wenigen Klicks zum Kartographen offener Weltkarten", "HomePane.subheader": "Los geht's", - "Admin.TaskInspect.controls.previousTask.label": "Vorherige", - "Admin.TaskInspect.controls.nextTask.label": "Nächste", - "Admin.TaskInspect.controls.editTask.label": "Aufgabe bearbeiten", - "Admin.TaskInspect.controls.modifyTask.label": "Aufgabe bearbeiten", - "Admin.TaskInspect.readonly.message": "Vorschau der Aufgabe im schreibgeschützten Modus", + "Inbox.actions.openNotification.label": "Öffnen", + "Inbox.challengeCompleteNotification.lead": "Eine von dir verwaltete Kampagne wurde fertiggestellt.", + "Inbox.controls.deleteSelected.label": "Löschen", + "Inbox.controls.groupByTask.label": "Nach Aufgabe gruppieren", + "Inbox.controls.manageSubscriptions.label": "Benachrichtigungen verwalten", + "Inbox.controls.markSelectedRead.label": "Als gelesen markieren", + "Inbox.controls.refreshNotifications.label": "Aktualisieren", + "Inbox.followNotification.followed.lead": "Du hast neue Follower", + "Inbox.header": "Nachrichten", + "Inbox.mentionNotification.lead": "Du wurdest in einem Kommentar erwähnt:", + "Inbox.noNotifications": "Keine Nachrichten", + "Inbox.notification.controls.deleteNotification.label": "Löschen", + "Inbox.notification.controls.manageChallenge.label": "Kampagne verwalten", + "Inbox.notification.controls.reviewTask.label": "Aufgabe prüfen", + "Inbox.notification.controls.viewTask.label": "Aufgabe ansehen", + "Inbox.notification.controls.viewTeams.label": "Teams ansehen", + "Inbox.reviewAgainNotification.lead": "Die Kartierung wurde überarbeitet und eine neue Prüfung angefragt.", + "Inbox.reviewApprovedNotification.lead": "Gute Nachrichten! Deine Aufgaben wurden geprüft und bestätigt.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Deine Aufgabe wurde (mit kleineren Korrekturen des Prüfers) bestätigt.", + "Inbox.reviewRejectedNotification.lead": "Nach Prüfung deiner Aufgabe hat der Prüfer entschieden, dass deine Aufgabe noch zusätzliche Arbeit benötigt.", + "Inbox.tableHeaders.challengeName": "Kampagne", + "Inbox.tableHeaders.controls": "Aktionen", + "Inbox.tableHeaders.created": "Gesendet", + "Inbox.tableHeaders.fromUsername": "Von", + "Inbox.tableHeaders.isRead": "Lesen", + "Inbox.tableHeaders.notificationType": "Typ", + "Inbox.tableHeaders.taskId": "Aufgabe", + "Inbox.teamNotification.invited.lead": "Du wurdest zu einem Team eingeladen!", + "KeyMapping.layers.layerMapillary": "Umschalten Mapillaryebene", + "KeyMapping.layers.layerOSMData": "Umschalten OSM-Datenebene", + "KeyMapping.layers.layerTaskFeatures": "Umschalten Merkmalebene", + "KeyMapping.openEditor.editId": "In iD bearbeiten", + "KeyMapping.openEditor.editJosm": "In JOSM bearbeiten", + "KeyMapping.openEditor.editJosmFeatures": "Nur das Merkmal in JOSM bearbeiten", + "KeyMapping.openEditor.editJosmLayer": "In neuer JOSM Ebene bearbeiten", + "KeyMapping.openEditor.editLevel0": "In Level0 bearbeiten", + "KeyMapping.openEditor.editRapid": "In RapiD bearbeiten", + "KeyMapping.taskCompletion.alreadyFixed": "War bereits behoben", + "KeyMapping.taskCompletion.confirmSubmit": "Abschicken", + "KeyMapping.taskCompletion.falsePositive": "Falsch Positiv", + "KeyMapping.taskCompletion.fixed": "Ich habe es behoben!", + "KeyMapping.taskCompletion.skip": "Überspringen", + "KeyMapping.taskCompletion.tooHard": "Zu schwierig", + "KeyMapping.taskEditing.cancel": "Stoppe das Editieren", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Skaliere Karte auf die Aufgabe", + "KeyMapping.taskInspect.nextTask": "Nächste", + "KeyMapping.taskInspect.prevTask": "Vorherige", + "KeyboardShortcuts.control.label": "Tastenkombinationen", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Schlagwort hinzufügen", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Tags filtern", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Tags wählen", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Tags filtern", "KeywordAutosuggestInput.controls.search.placeholder": "Suchen", - "General.controls.moreResults.label": "Mehr Ergebnisse", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "Mehr", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Daten", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Vorrangige Grenzen", + "LayerToggle.controls.showTaskFeatures.label": "Aufgabendetails", + "LayerToggle.imageCount": "({count, plural, =0 {keine Bilder} other {# Bilder}})", + "LayerToggle.loading": "(lädt...)", + "Leaderboard.controls.loadMore.label": "Weiter anzeigen", + "Leaderboard.global": "Weltweite", + "Leaderboard.scoringMethod.explanation": "\n##### Punkte pro erledigter Aufgabe werden wie folgt vergeben:\n\n| Status | Punkte |\n| :------------ | -----: |\n| Behoben | 5 |\n| Falsch Positiv | 3 |\n| Bereits behoben | 3 |\n| Zu schwierig | 1 |\n| Übersprungen | 0 |\n", + "Leaderboard.scoringMethod.label": "Zählmethode", + "Leaderboard.title": "Bestenliste", + "Leaderboard.updatedDaily": "Aktualisierung alle 24 Stunden", + "Leaderboard.updatedFrequently": "Aktualisierung alle 15 Minuten", + "Leaderboard.user.points": "Punkte", + "Leaderboard.user.topChallenges": "Top-Kampagnen", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Tschechisch - Tschechische Republik)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persisch - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (niederländisch)", + "Locale.pt-BR.label": "pt-BR (Brasilianisches Portugiesisch)", + "Locale.ru-RU.label": "ru-RU (Russisch - Russland)", + "Locale.uk.label": "uk (Ukrainisch)", + "Metrics.completedTasksTitle": "Erledigte Aufgaben", + "Metrics.leaderboard.globalRank.label": "Weltweite Platzierung", + "Metrics.leaderboard.topChallenges.label": "Top-Kampagnen", + "Metrics.leaderboard.totalPoints.label": "Gesamtpunkte", + "Metrics.leaderboardTitle": "Bestenliste", + "Metrics.reviewStats.approved.label": "Aufgaben nach Prüfung bestätigt", + "Metrics.reviewStats.asReviewer.approved.label": "Aufgaben nach Prüfung bestätigt", + "Metrics.reviewStats.asReviewer.assisted.label": "Aufgaben nach Prüfung bestätigt mit Änderungen", + "Metrics.reviewStats.asReviewer.awaiting.label": "Aufgaben, die eine Nachbearbeitung erfordern", + "Metrics.reviewStats.asReviewer.disputed.label": "Aufgaben mit aktuellen Konflikten", + "Metrics.reviewStats.asReviewer.rejected.label": "Aufgaben nach Prüfung nicht bestätigt", + "Metrics.reviewStats.assisted.label": "Aufgaben nach Prüfung bestätigt mit Änderungen", + "Metrics.reviewStats.averageReviewTime.label": "Durchschnittliche Prüfdauer:", + "Metrics.reviewStats.awaiting.label": "Aufgaben, die eine Prüfung benötigen", + "Metrics.reviewStats.disputed.label": "Aufgaben nach Prüfung mit Konflikt", + "Metrics.reviewStats.rejected.label": "Aufgaben die nicht bestätigt wurden", + "Metrics.reviewedTasksTitle": "Prüfstatus", + "Metrics.reviewedTasksTitle.asReviewer": "Aufgaben geprüft von {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Aufgaben geprüft von Dir", + "Metrics.tasks.evaluatedByUser.label": "Von Benutzern evaluierte Aufgaben", + "Metrics.totalCompletedTasksTitle": "Alle erledigten Aufgaben", + "Metrics.userOptedOut": "Dieser Benutzer hat die Veröffentlichung seiner Statistiken abgelehnt.", + "Metrics.userSince": "Benutzer seit:", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Das tut uns leid, MapRoulette unterstützt derzeit keine mobilen Geräte.", "MobileNotSupported.pageMessage": "Das tut uns leid, diese Seite ist noch nicht verfügbar auf mobilen Geräten und kleineren Bildschirmen.", "MobileNotSupported.widenDisplay": "Wenn Du einen Computer benutzt, vergrößere bitte das Fenster oder verwende einen größeren Bildschirm.", - "Navbar.links.dashboard": "Übersicht", + "MobileTask.subheading.instructions": "Anleitung", + "Navbar.links.admin": "Erstellen & Verwalten", "Navbar.links.challengeResults": "Kampagnen suchen", - "Navbar.links.leaderboard": "Bestenliste", + "Navbar.links.dashboard": "Übersicht", + "Navbar.links.globalActivity": "Weltweite Aktivität", + "Navbar.links.help": "Mehr erfahren", "Navbar.links.inbox": "Posteingang", + "Navbar.links.leaderboard": "Bestenliste", "Navbar.links.review": "Prüfung", - "Navbar.links.admin": "Erstellen & Verwalten", - "Navbar.links.help": "Mehr erfahren", - "Navbar.links.userProfile": "Benutzereinstellungen", - "Navbar.links.userMetrics": "Benutzerstatistik", "Navbar.links.signout": "Abmelden", - "PageNotFound.message": "Hoppla! Die Seite, die Du suchst, ist nicht mehr verfügbar.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "Benutzerstatistik", + "Navbar.links.userProfile": "Benutzereinstellungen", + "Notification.type.challengeCompleted": "Fertiggestellt", + "Notification.type.challengeCompletedLong": "Kampagne fertiggestellt", + "Notification.type.follow": "Folgen", + "Notification.type.mention": "Erwähnen", + "Notification.type.review.again": "Prüfung", + "Notification.type.review.approved": "Bestätigt", + "Notification.type.review.rejected": "Überarbeiten", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Letzte(n) {months, plural, one {Monat} =12 {Jahr} other {# Monate}}", - "PastDurationSelector.currentMonth.selectOption": "Diesen Monat", + "PageNotFound.message": "Hoppla! Die Seite, die Du suchst, ist nicht mehr verfügbar.", + "Pages.SignIn.modal.prompt": "Bitte melde dich an, um fortzufahren", + "Pages.SignIn.modal.title": "Willkommen zurück!", "PastDurationSelector.allTime.selectOption": "Gesamt", + "PastDurationSelector.currentMonth.selectOption": "Diesen Monat", + "PastDurationSelector.customRange.controls.search.label": "Suchen", + "PastDurationSelector.customRange.endDate": "Ende", "PastDurationSelector.customRange.selectOption": "Benutzerdefiniert", "PastDurationSelector.customRange.startDate": "Beginn", - "PastDurationSelector.customRange.endDate": "Ende", - "PastDurationSelector.customRange.controls.search.label": "Suchen", + "PastDurationSelector.pastMonths.selectOption": "Letzte(n) {months, plural, one {Monat} =12 {Jahr} other {# Monate}}", "PointsTicker.label": "Meine Punkte", "PopularChallenges.header": "Beliebte Kampagnen", "PopularChallenges.none": "Keine Kampagnen", + "Profile.apiKey.controls.copy.label": "Kopieren", + "Profile.apiKey.controls.reset.label": "Zurücksetzen", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "Bei Nein können Benutzer Deinen Aktivitäten nicht folgen.", + "Profile.form.allowFollowing.label": "Folgen zulassen", + "Profile.form.customBasemap.description": "Füge hier die URL des eigenen Kartenhintergrunds ein; z. B. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Eigener Kartenhintergrund", + "Profile.form.defaultBasemap.description": "Wähle den Standard Kartenhintergrund. Nur ein definierter Kartenhintergrund einer Kampagne kann die hier ausgewählte Option überschreiben.", + "Profile.form.defaultBasemap.label": "Standard Kartenhintergrund", + "Profile.form.defaultEditor.description": "Wählen Sie den Standardeditor, den Sie verwenden möchten wenn Sie Aufgaben lösen. Durch Auswahl dieser Option können Sie die Editorauswahl überspringen, nachdem Sie auf Bearbeiten geklickt haben.", + "Profile.form.defaultEditor.label": "Standardeditor", + "Profile.form.email.description": "E-Mail Nachrichten werden an diese Adresse gesendet.\n\nWähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als Email versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", + "Profile.form.email.label": "E-Mail Adresse", + "Profile.form.isReviewer.description": "Hilf mit Aufgaben zu prüfen, bei denen eine Überprüfung angefragt wurde", + "Profile.form.isReviewer.label": "Als Prüfer mithelfen", + "Profile.form.leaderboardOptOut.description": "Wenn ja wirst du **nicht** auf der öffentlichen Bestenliste erscheinen.", + "Profile.form.leaderboardOptOut.label": "Von der Bestenliste abmelden", + "Profile.form.locale.description": "Benutzersprache für die MapRoulette Benutzeroberfläche.", + "Profile.form.locale.label": "Sprache", + "Profile.form.mandatory.label": "Obligatorisch", + "Profile.form.needsReview.description": "Für alle erledigten Aufgaben automatisch eine Prüfung anfragen", + "Profile.form.needsReview.label": "Prüfung für alle Aufgaben anfragen", + "Profile.form.no.label": "Nein", + "Profile.form.notification.label": "Nachricht", + "Profile.form.notificationSubscriptions.description": "Wähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als E-Mail versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", + "Profile.form.notificationSubscriptions.label": "Nachrichten Abonnements", + "Profile.form.yes.label": "Ja", + "Profile.noUser": "Benutzer nicht gefunden oder Du bist nicht berechtigt, diesen Benutzer zu betrachten.", + "Profile.page.title": "Benutzereinstellungen", + "Profile.settings.header": "Allgemein", + "Profile.userSince": "Beutzer seit:", + "Project.fields.viewLeaderboard.label": "Bestenliste anzeigen", + "Project.indicator.label": "Projekt", "ProjectDetails.controls.goBack.label": "Zurück", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Speichern", - "ProjectDetails.management.controls.manage.label": "Verwalten", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Empfohlen", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{Keine Kampagnen} one{# Kampagne} other{# Kampagnen}} verbleiben im {isVirtual,select, true{virtuellen } other{}}Projekt", "ProjectDetails.fields.created.label": "Erstellt", + "ProjectDetails.fields.featured.label": "Empfohlen", "ProjectDetails.fields.modified.label": "Bearbeitet", "ProjectDetails.fields.viewLeaderboard.label": "Bestenliste anzeigen", "ProjectDetails.fields.viewReviews.label": "Prüfung", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Prüfstatus aktualisieren", - "Admin.TaskReview.controls.currentTaskStatus.label": "Aufgabenstatus:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Prüfstatus:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "Keine Prüfung für diese Aufgabe angefragt.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Diese Aufgabe wird derzeit von jemand anderem geprüft.", - "Admin.TaskReview.controls.userNotReviewer": "Du bist noch nicht als Prüfer eingerichtet. Die Einrichtung als Prüfer erfolgt in den Benutzereinstellungen.", - "Admin.TaskReview.reviewerIsMapper": "Du kannst keine Aufgaben prüfen, die du selbst bearbeitet hast.", - "Admin.TaskReview.controls.taskNotCompleted": "Diese Aufgabe kann noch nicht geprüft werden, weil sie noch nicht erledigt wurde.", - "Admin.TaskReview.controls.approved": "Bestätigen", - "Admin.TaskReview.controls.rejected": "Verwerfen", - "Admin.TaskReview.controls.approvedWithFixes": "Bestätigen (mit Korrekturen)", - "Admin.TaskReview.controls.startReview": "Prüfung starten", - "Admin.TaskReview.controls.skipReview": "Prüfung überspringen", - "Admin.TaskReview.controls.resubmit": "Wiedervorlage zur Prüfung", - "ReviewTaskPane.indicators.locked.label": "Aufgabe gesperrt", + "ProjectDetails.management.controls.manage.label": "Verwalten", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Wähle ein Projekt", + "ProjectPickerModal.noProjects": "Keine Projekte gefunden", + "PropertyList.noProperties": "Keine Eigenschaften", + "PropertyList.title": "Eigenschaften", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Aufgaben wiederherstellen", + "RebuildTasksControl.modal.controls.cancel.label": "Abbrechen", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Datum an dem die Daten erhoben wurden", + "RebuildTasksControl.modal.controls.proceed.label": "Weiter", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "Zuerst nicht erledigte Aufgaben entfernen", + "RebuildTasksControl.modal.explanation": "* Vorhandene Aufgaben, die in den neuesten Daten enthalten sind, werden aktualisiert\n* Neue Aufgaben werden hinzugefügt.\n* Bei der Auswahl, zuerst unvollständige Aufgaben (unten) zu entfernen, werden bestehende __unvollständige__ Aufgaben zuerst entfernt\n* Bei der Auswahl, unvollständige Aufgaben nicht zuerst entfernen, werden sie so belassen, wie sie sind, und möglicherweise bereits erledigte Aufgaben außerhalb von MapRoulette belassen.", + "RebuildTasksControl.modal.intro.local": "Beim Neuaufbau kann eine neue lokale Datei mit den neuesten GeoJSON-Daten hochgeladen und die Aufgaben der Kampagne aktualisiert werden:", + "RebuildTasksControl.modal.intro.overpass": "Beim Neuaufbau werden die Overpass-Abfrage wiederholt und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", + "RebuildTasksControl.modal.intro.remote": "Beim Neuaufbau werden die GeoJSON-Daten erneut von der externen URL der Kampagne heruntergeladen und die Aufgaben der Kampagne mit den neuesten Daten aktualisiert:", + "RebuildTasksControl.modal.moreInfo": "[Mehr erfahren](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Aufgaben der Kampagne wiederherstellen", + "RebuildTasksControl.modal.warning": "Warnung: Ein Neuaufbau kann zur Doppelung von Aufgaben führen, wenn Objekt-IDs nicht richtig eingerichtet sind oder wenn der Abgleich alter Daten mit neuen Daten nicht erfolgreich ist. Dieser Vorgang kann nicht rückgängig gemacht werden!", + "Review.Dashboard.allReviewedTasks": "Alle prüfungsbezogenen Aufgaben", + "Review.Dashboard.goBack.label": "Prüfungen überarbeiten", + "Review.Dashboard.myReviewTasks": "Meine geprüften Aufgaben", + "Review.Dashboard.tasksReviewedByMe": "Von mir geprüfte Aufgaben", + "Review.Dashboard.tasksToBeReviewed": "Aufgaben zur Prüfung", + "Review.Dashboard.volunteerAsReviewer.label": "Als Prüfer mithelfen", + "Review.Task.fields.id.label": "Interne ID", + "Review.TaskAnalysisTable.allReviewedTasks": "Alle prüfungsbezogenen Aufgaben", + "Review.TaskAnalysisTable.columnHeaders.actions": "Aktionen", + "Review.TaskAnalysisTable.columnHeaders.comments": "Kommentare", + "Review.TaskAnalysisTable.configureColumns": "Spalten verwalten", + "Review.TaskAnalysisTable.controls.fixTask.label": "Beheben", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Lösen", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Überarbeitung prüfen", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Prüfung", + "Review.TaskAnalysisTable.controls.viewTask.label": "Ansehen", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Anderen zugewiesene Prüfungen ausschließen", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Aktionen", + "Review.TaskAnalysisTable.myReviewTasks": "Meine Aufgaben nach Prüfung", + "Review.TaskAnalysisTable.noTasks": "Keine Aufgaben gefunden", + "Review.TaskAnalysisTable.noTasksReviewed": "Keine deiner bearbeiteten Aufgaben wurde geprüft.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "Du hast keine Aufgaben geprüft.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Nur Kampagnen aus Favoritenliste", + "Review.TaskAnalysisTable.refresh": "Aktualisieren", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Aktionen", + "Review.TaskAnalysisTable.reviewerControls.label": "Aktionen", + "Review.TaskAnalysisTable.startReviewing": "Diese Aufgaben prüfen", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Von mir geprüfte Aufgaben", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Aufgaben zur Prüfung", + "Review.TaskAnalysisTable.totalTasks": "Gesamt: {countShown}", + "Review.fields.challenge.label": "Kampagne", + "Review.fields.mappedOn.label": "Kartiert am", + "Review.fields.priority.label": "Priorität", + "Review.fields.project.label": "Projekt", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Prüfstatus", + "Review.fields.reviewedAt.label": "geprüft am", + "Review.fields.reviewedBy.label": "Prüfer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Mehrere gruppierte Aufgaben", + "Review.tableFilter.reviewByAllChallenges": "Alle Kampagnen", + "Review.tableFilter.reviewByAllProjects": "Alle Projekte", + "Review.tableFilter.reviewByChallenge": "Prüfung nach Kampagne", + "Review.tableFilter.reviewByProject": "Prüfung nach Projekt", + "Review.tableFilter.viewAllTasks": "Alle Aufgaben ansehen", + "Review.tablefilter.chooseFilter": "Wähle ein Projekt oder eine Kampagne", + "ReviewMap.metrics.title": "Karte prüfen", + "ReviewStatus.metrics.alreadyFixed": "BEREITS GELÖST", + "ReviewStatus.metrics.approvedReview": "Aufgaben nach Prüfung bestätigt", + "ReviewStatus.metrics.assistedReview": "Aufgaben nach Prüfung bestätigt mit Korrekturen", + "ReviewStatus.metrics.averageTime.label": "Durchschn. Prüfdauer:", + "ReviewStatus.metrics.awaitingReview": "Aufgaben zur Prüfung", + "ReviewStatus.metrics.byTaskStatus.toggle": "Nach Status der Aufgabe sortieren", + "ReviewStatus.metrics.disputedReview": "Aufgaben nach Prüfung mit Konflikt", + "ReviewStatus.metrics.falsePositive": "KEIN FEHLER", + "ReviewStatus.metrics.fixed": "GELÖST", + "ReviewStatus.metrics.priority.label": "{priority} Priorität der Aufgabe", + "ReviewStatus.metrics.priority.toggle": "Nach Priorität der Aufgabe sortieren", + "ReviewStatus.metrics.rejectedReview": "Aufgaben nach Prüfung nicht bestätigt", + "ReviewStatus.metrics.taskStatus.label": "{status} Aufgaben", + "ReviewStatus.metrics.title": "Prüfstatus", + "ReviewStatus.metrics.tooHard": "ZU SCHWIERIG", "ReviewTaskPane.controls.unlock.label": "Freischalten", + "ReviewTaskPane.indicators.locked.label": "Aufgabe gesperrt", "RolePicker.chooseRole.label": "Wähle eine Rolle", - "UserProfile.favoriteChallenges.header": "Favoritenliste", - "Challenge.controls.unsave.tooltip": "Aus Favoritenliste entfernen", "SavedChallenges.widget.noChallenges": "Keine Kampagnen", "SavedChallenges.widget.startChallenge": "Kampagne starten", - "UserProfile.savedTasks.header": "Verfolgte Aufgaben", - "Task.unsave.control.tooltip": "Stop Tracking", "SavedTasks.widget.noTasks": "Keine Aufgaben", "SavedTasks.widget.viewTask": "Aufgabe ansehen", "ScreenTooNarrow.header": "Bitte vergrößere das Browserfenster", "ScreenTooNarrow.message": "Diese Seite ist noch nicht kompatibel mit kleinen Bildschirmen. Bitte das Browser-Fenster vergrößern oder zu einem größeren Gerät oder Bildschirm wechseln.", - "ChallengeFilterSubnav.query.searchType.project": "Projekte", - "ChallengeFilterSubnav.query.searchType.challenge": "Kampagnen", "ShareLink.controls.copy.label": "Kopieren", "SignIn.control.label": "Anmelden", "SignIn.control.longLabel": "Bitte melde dich an, um zu starten", - "TagDiffVisualization.justChangesHeader": "Änderungsvorschläge der OSM Tags", - "TagDiffVisualization.header": "Vorgeschlagene OSM Tags", - "TagDiffVisualization.current.label": "Aktuell", - "TagDiffVisualization.proposed.label": "Vorgeschlagen", - "TagDiffVisualization.noChanges": "Keine Änderungen der OSM Tags", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", + "StartFollowing.controls.follow.label": "Folgen", + "StartFollowing.header": "Einem Benutzer folgen", + "StepNavigation.controls.cancel.label": "Abbrechen", + "StepNavigation.controls.finish.label": "Speichern", + "StepNavigation.controls.next.label": "Nächste", + "StepNavigation.controls.prev.label": "Vorherige", + "Subscription.type.dailyEmail": "Nachrichten nur einmal täglich als E-Mail versenden", + "Subscription.type.ignore": "Keine Nachrichten", + "Subscription.type.immediateEmail": "Nachrichten direkt als E-Mail versenden", + "Subscription.type.noEmail": "Nachrichten nicht als E-Mail versenden", + "TagDiffVisualization.controls.addTag.label": "Tag hinzufügen", + "TagDiffVisualization.controls.cancelEdits.label": "Abbrechen", "TagDiffVisualization.controls.changeset.tooltip": "Als OSM Änderungssatz anzeigen", + "TagDiffVisualization.controls.deleteTag.tooltip": "Tag löschen", "TagDiffVisualization.controls.editTags.tooltip": "Tags bearbeiten", "TagDiffVisualization.controls.keepTag.label": "Tag behalten", - "TagDiffVisualization.controls.addTag.label": "Tag hinzufügen", - "TagDiffVisualization.controls.deleteTag.tooltip": "Tag löschen", - "TagDiffVisualization.controls.saveEdits.label": "Erledigt", - "TagDiffVisualization.controls.cancelEdits.label": "Abbrechen", "TagDiffVisualization.controls.restoreFix.label": "Bearbeitung verwerfen", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Erledigt", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Aktionen", - "TasksTable.invert.abel": "umkehren", - "TasksTable.inverted.label": "umgekehrt", - "Task.fields.id.label": "Task Id", - "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "Status", - "Task.fields.priority.label": "Priorität", - "Task.fields.mappedOn.label": "Kartiert am", - "Task.fields.reviewStatus.label": "Prüfstatus", - "Task.fields.completedBy.label": "Erledigt von", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapper", - "Task.fields.reviewedBy.label": "Prüfer", - "Admin.fields.reviewedAt.label": "Geprüft am", - "Admin.fields.reviewDuration.label": "Prüfdauer", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Kommentare", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Analyse", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Prüfung", - "Admin.TaskAnalysisTable.controls.editTask.label": "Bearbeiten", - "Admin.TaskAnalysisTable.controls.startTask.label": "Start", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Aufgaben auswählen", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Angezeigt: {countShown} Aufgaben", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Ausgewählt: {selectedCount} Aufgaben", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Angezeigt: {percentShown}% ({countShown}) von {countTotal} Aufgaben", - "Admin.manageTasks.controls.changeStatusTo.label": "Status ändern zu", - "Admin.manageTasks.controls.chooseStatus.label": "Wähle ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Aus Prüfliste entfernen", - "Admin.manageTasks.controls.showReviewColumns.label": "Prüfspalten einblenden", - "Admin.manageTasks.controls.hideReviewColumns.label": "Prüfspalten ausblenden", - "Admin.manageTasks.controls.configureColumns.label": "Spalten verwalten", - "Admin.manageTasks.controls.exportCSV.label": "Exportiere CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Exportiere GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Prüfung als CSV exportieren", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Gezeigt", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Karte prüfen", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoome hinein, um Aufgaben zu sehen", - "TaskClusterMap.message.nearMe.label": "In der Nähe", - "TaskClusterMap.message.or.label": "oder", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {Keine Aufgaben gefunden} one {# Aufgabe gefunden} other {# Aufgaben gefunden}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Klicke, um Aufgaben anzuzeigen", - "Task.controls.completionComment.placeholder": "Dein Kommentar", - "Task.comments.comment.controls.submit.label": "Abschicken", - "Task.controls.completionComment.write.label": "Schreiben", - "Task.controls.completionComment.preview.label": "Vorschau", - "TaskCommentsModal.header": "Kommentare", - "TaskConfirmationModal.header": "Bitte bestätigen", - "TaskConfirmationModal.submitRevisionHeader": "Überarbeitung bestätigen", - "TaskConfirmationModal.disputeRevisionHeader": "Prüfkonflikt bestätigen", - "TaskConfirmationModal.inReviewHeader": "Prüfung bestätigen", - "TaskConfirmationModal.comment.label": "Kommentieren (optional)", - "TaskConfirmationModal.review.label": "Nicht ganz sicher? Hier klicken, um die Aufgabe prüfen zu lassen", - "TaskConfirmationModal.loadBy.label": "Nächste Aufgabe:", - "TaskConfirmationModal.loadNextReview.label": "Weiter mit:", - "TaskConfirmationModal.cancel.label": "Abbrechen", - "TaskConfirmationModal.submit.label": "Abschicken", - "TaskConfirmationModal.osmUploadNotice": "Diese Änderungen werden unter deinem Nutzernamen auf OpenStreetMap hochgeladen", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Kampagne analysieren", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Kommentar (optional)", - "TaskConfirmationModal.comment.placeholder": "Dein Kommentar (optional)", - "TaskConfirmationModal.nextNearby.label": "Nächstliegende Aufgabe auswählen (optional)", - "TaskConfirmationModal.addTags.placeholder": "MR Tags hinzufügen", - "TaskConfirmationModal.adjustFilters.label": "Filter einstellen", - "TaskConfirmationModal.done.label": "Erledigt", - "TaskConfirmationModal.useChallenge.label": "Aktuelle Kampagne verwenden", - "TaskConfirmationModal.reviewStatus.label": "Prüfstatus:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priorität:", - "TaskConfirmationModal.challenge.label": "Kampagne:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Nach Eigenschaft filtern", - "TaskPriorityFilter.label": "Nach Priorität filtern", - "TaskStatusFilter.label": "Nach Status filtern", - "TaskReviewStatusFilter.label": "Nach Prüfstatus filtern", - "TaskHistory.fields.startedOn.label": "Mit Aufgabe begonnen", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Sind die vorgeschlagenen Änderungen der OSM Tags korrekt?", - "CooperativeWorkControls.controls.confirm.label": "Ja", - "CooperativeWorkControls.controls.reject.label": "Nein", - "CooperativeWorkControls.controls.moreOptions.label": "Andere", - "Task.markedAs.label": "Aufgabe markiert als", - "Task.requestReview.label": "Prüfung anfordern?", + "TagDiffVisualization.current.label": "Aktuell", + "TagDiffVisualization.header": "Vorgeschlagene OSM Tags", + "TagDiffVisualization.justChangesHeader": "Änderungsvorschläge der OSM Tags", + "TagDiffVisualization.noChanges": "Keine Änderungen der OSM Tags", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Vorgeschlagen", "Task.awaitingReview.label": "Aufgabe benötigt Prüfung.", - "Task.readonly.message": "Vorschau der Aufgabe im schreibgeschützten Modus", - "Task.controls.viewChangeset.label": "Änderungssatz ansehen", - "Task.controls.moreOptions.label": "Mehr Optionen", + "Task.comments.comment.controls.submit.label": "Abschicken", "Task.controls.alreadyFixed.label": "Bereits behoben", "Task.controls.alreadyFixed.tooltip": "Bereits behoben", "Task.controls.cancelEditing.label": "Schon gut, schließe das hier", - "Task.controls.step1.revisionNeeded": "Diese Aufgabe benötigt eine Überarbeitung. Siehe Kommentare für weitere Details.", - "ActiveTask.controls.fixed.label": "Ich habe es behoben!", - "ActiveTask.controls.notFixed.label": "Zu schwierig/Konnte es nicht erkennen", - "ActiveTask.controls.aleadyFixed.label": "Bereits behoben", - "ActiveTask.controls.cancelEditing.label": "Zurück", + "Task.controls.completionComment.placeholder": "Dein Kommentar", + "Task.controls.completionComment.preview.label": "Vorschau", + "Task.controls.completionComment.write.label": "Schreiben", + "Task.controls.contactLink.label": "{owner} via OSM benachrichtigen", + "Task.controls.contactOwner.label": "Ersteller kontaktieren", "Task.controls.edit.label": "Bearbeiten", "Task.controls.edit.tooltip": "Bearbeiten", "Task.controls.falsePositive.label": "Falsch Positiv", "Task.controls.falsePositive.tooltip": "Falsch Positiv", "Task.controls.fixed.label": "Ich habe es behoben!", "Task.controls.fixed.tooltip": "Ich habe es behoben!", + "Task.controls.moreOptions.label": "Mehr Optionen", "Task.controls.next.label": "Nächste", - "Task.controls.next.tooltip": "Nächste", "Task.controls.next.loadBy.label": "Lade nächste:", + "Task.controls.next.tooltip": "Nächste", "Task.controls.nextNearby.label": "Nächste nahegelegene Aufgabe auswählen", + "Task.controls.revised.dispute": "Prüfung beanstanden", "Task.controls.revised.label": "Überarbeitung abgeschlossen", - "Task.controls.revised.tooltip": "Überarbeitung abgeschlossen", "Task.controls.revised.resubmit": "Wiedervorlage zur Prüfung", - "Task.controls.revised.dispute": "Prüfung beanstanden", + "Task.controls.revised.tooltip": "Überarbeitung abgeschlossen", "Task.controls.skip.label": "Überspringen", "Task.controls.skip.tooltip": "Überspringen", - "Task.controls.tooHard.label": "Zu schwierig/Konnte es nicht erkennen", - "Task.controls.tooHard.tooltip": "Zu schwierig/Konnte es nicht erkennen", - "KeyboardShortcuts.control.label": "Tastenkombinationen", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Aufgabendetails", - "ActiveTask.controls.comments.tooltip": "Kommentare ansehen", - "ActiveTask.subheading.comments": "Kommentare", - "ActiveTask.heading": "Informationen zur Kampagne", - "ActiveTask.subheading.instructions": "Anleitung", - "ActiveTask.subheading.location": "Ort", - "ActiveTask.subheading.progress": "Kampagnenfortschritt", - "ActiveTask.subheading.social": "Teilen", - "Task.pane.controls.inspect.label": "Analyse", - "Task.pane.indicators.locked.label": "Aufgabe gesperrt", - "Task.pane.indicators.readOnly.label": "Vorschau im Lesemodus", - "Task.pane.controls.unlock.label": "Freischalten", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Vorschau der Aufgabe", + "Task.controls.step1.revisionNeeded": "Diese Aufgabe benötigt eine Überarbeitung. Siehe Kommentare für weitere Details.", + "Task.controls.tooHard.label": "Zu schwierig", + "Task.controls.tooHard.tooltip": "Zu schwierig", + "Task.controls.track.label": "Verfolge diese Aufgabe", + "Task.controls.untrack.label": "Diese Aufgabe nicht mehr verfolgen", + "Task.controls.viewChangeset.label": "Änderungssatz ansehen", + "Task.fauxStatus.available": "Verfügbar", + "Task.fields.completedBy.label": "Erledigt von", + "Task.fields.featureId.label": "Feature Id", + "Task.fields.id.label": "Task Id", + "Task.fields.mappedOn.label": "Kartiert am", + "Task.fields.priority.label": "Priorität", + "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Prüfstatus", + "Task.fields.reviewedBy.label": "Prüfer", + "Task.fields.status.label": "Status", + "Task.loadByMethod.proximity": "Proximity", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Analyse", + "Task.management.controls.modify.label": "Bearbeiten", + "Task.management.heading": "Optionen verwalten", + "Task.markedAs.label": "Aufgabe markiert als", "Task.pane.controls.browseChallenge.label": "Kampagnen durchsuchen", + "Task.pane.controls.inspect.label": "Analyse", + "Task.pane.controls.preview.label": "Vorschau der Aufgabe", "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Aufgabe kann nicht gesperrt werden", - "Task.pane.lockFailedDialog.prompt": "Die Aufgabensperre konnte nicht aktiviert werden. Eine schreibgeschützte Vorschau ist verfügbar.", "Task.pane.controls.saveChanges.label": "Änderungen speichern", - "MobileTask.subheading.instructions": "Anleitung", - "Task.management.heading": "Optionen verwalten", - "Task.management.controls.inspect.label": "Analyse", - "Task.management.controls.modify.label": "Bearbeiten", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Aktuelle Aufgabe", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "Es sind keine Aufgaben in der Nähe verfügbar. ", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priorität:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", - "Task.controls.track.label": "Verfolge diese Aufgabe", - "Task.controls.untrack.label": "Diese Aufgabe nicht mehr verfolgen", - "TaskPropertyQueryBuilder.controls.search": "Suchen", - "TaskPropertyQueryBuilder.controls.clear": "Löschen", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Freischalten", + "Task.pane.indicators.locked.label": "Aufgabe gesperrt", + "Task.pane.indicators.readOnly.label": "Vorschau im Lesemodus", + "Task.pane.lockFailedDialog.prompt": "Die Aufgabensperre konnte nicht aktiviert werden. Eine schreibgeschützte Vorschau ist verfügbar.", + "Task.pane.lockFailedDialog.title": "Aufgabe kann nicht gesperrt werden", + "Task.priority.high": "Hoch", + "Task.priority.low": "Niedrig", + "Task.priority.medium": "Mittel", + "Task.property.operationType.and": "und", + "Task.property.operationType.or": "oder", + "Task.property.searchType.contains": "enthält", + "Task.property.searchType.equals": "gleich", + "Task.property.searchType.exists": "existiert", + "Task.property.searchType.missing": "fehlt", + "Task.property.searchType.notEqual": "ungleich", + "Task.readonly.message": "Vorschau der Aufgabe im schreibgeschützten Modus", + "Task.requestReview.label": "Prüfung anfordern?", + "Task.review.loadByMethod.all": "Zurück zu \"Alle Prüfen\"", + "Task.review.loadByMethod.inbox": "Zurück zum Posteingang", + "Task.review.loadByMethod.nearby": "Aufgabe in der Nähe", + "Task.review.loadByMethod.next": "Nächste gefilterte Aufgabe", + "Task.reviewStatus.approved": "Bestätigt", + "Task.reviewStatus.approvedWithFixes": "Überprüft mit Korrekturen", + "Task.reviewStatus.disputed": "Beanstandet", + "Task.reviewStatus.needed": "Prüfung beantragt", + "Task.reviewStatus.rejected": "Überarbeitung erforderlich", + "Task.reviewStatus.unnecessary": "Nicht benötigt", + "Task.reviewStatus.unset": "Prüfung noch nicht beantragt", + "Task.status.alreadyFixed": "Bereits behoben", + "Task.status.created": "Erstellt", + "Task.status.deleted": "Gelöscht", + "Task.status.disabled": "Deaktiviert", + "Task.status.falsePositive": "Falsch Positiv", + "Task.status.fixed": "Behoben", + "Task.status.skipped": "Übersprungen", + "Task.status.tooHard": "Zu schwierig", + "Task.taskTags.add.label": "MR Tags hinzufügen", + "Task.taskTags.addTags.placeholder": "MR Tags hinzufügen", + "Task.taskTags.cancel.label": "Abbrechen", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "MR Tags bearbeiten", + "Task.taskTags.save.label": "Speichern", + "Task.taskTags.update.label": "MR Tags aktualisieren", + "Task.unsave.control.tooltip": "Stop Tracking", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Klicke, um Aufgaben anzuzeigen", + "TaskClusterMap.message.nearMe.label": "In der Nähe", + "TaskClusterMap.message.or.label": "oder", + "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {Keine Aufgaben gefunden} one {# Aufgabe gefunden} other {# Aufgaben gefunden}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoome hinein, um Aufgaben zu sehen", + "TaskCommentsModal.header": "Kommentare", + "TaskConfirmationModal.addTags.placeholder": "MR Tags hinzufügen", + "TaskConfirmationModal.adjustFilters.label": "Filter einstellen", + "TaskConfirmationModal.cancel.label": "Abbrechen", + "TaskConfirmationModal.challenge.label": "Kampagne:", + "TaskConfirmationModal.comment.header": "MapRoulette Kommentar (optional)", + "TaskConfirmationModal.comment.label": "Kommentieren (optional)", + "TaskConfirmationModal.comment.placeholder": "Dein Kommentar (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Kampagne analysieren", + "TaskConfirmationModal.disputeRevisionHeader": "Prüfkonflikt bestätigen", + "TaskConfirmationModal.done.label": "Erledigt", + "TaskConfirmationModal.header": "Bitte bestätigen", + "TaskConfirmationModal.inReviewHeader": "Prüfung bestätigen", + "TaskConfirmationModal.invert.label": "umkehren", + "TaskConfirmationModal.inverted.label": "umgekehrt", + "TaskConfirmationModal.loadBy.label": "Nächste Aufgabe:", + "TaskConfirmationModal.loadNextReview.label": "Weiter mit:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Nächste Aufgabe wählen (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "Diese Änderungen werden unter deinem Nutzernamen auf OpenStreetMap hochgeladen", + "TaskConfirmationModal.priority.label": "Priorität:", + "TaskConfirmationModal.review.label": "Nicht ganz sicher? Hier klicken, um die Aufgabe prüfen zu lassen", + "TaskConfirmationModal.reviewStatus.label": "Prüfstatus:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Abschicken", + "TaskConfirmationModal.submitRevisionHeader": "Überarbeitung bestätigen", + "TaskConfirmationModal.useChallenge.label": "Aktuelle Kampagne verwenden", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Mit Aufgabe begonnen", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Nach Priorität filtern", + "TaskPropertyFilter.label": "Nach Eigenschaft filtern", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "durch Komma getrennte Werte", "TaskPropertyQueryBuilder.controls.addValue": "Wert hinzufügen", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Löschen", + "TaskPropertyQueryBuilder.controls.search": "Suchen", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "Du musst einen Wert eingeben.", + "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": "Du musst einen Wert eingeben.", "TaskPropertyQueryBuilder.error.notNumericValue": "Property value given is not a valid number.", - "TaskPropertyQueryBuilder.propertyType.stringType": "Text", - "TaskPropertyQueryBuilder.propertyType.numberType": "Zahl", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "durch Komma getrennte Werte", - "ActiveTask.subheading.status": "Aktueller Status", - "ActiveTask.controls.status.tooltip": "Aktueller Status", - "ActiveTask.controls.viewChangset.label": "Änderungssatz ansehen", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "MR Tags hinzufügen", - "Task.taskTags.update.label": "MR Tags aktualisieren", - "Task.taskTags.save.label": "Speichern", - "Task.taskTags.cancel.label": "Abbrechen", - "Task.taskTags.modify.label": "MR Tags bearbeiten", - "Task.taskTags.addTags.placeholder": "MR Tags hinzufügen", + "TaskPropertyQueryBuilder.propertyType.numberType": "Zahl", + "TaskPropertyQueryBuilder.propertyType.stringType": "Text", + "TaskReviewStatusFilter.label": "Nach Prüfstatus filtern", + "TaskStatusFilter.label": "Nach Status filtern", + "TasksTable.invert.abel": "umkehren", + "TasksTable.inverted.label": "umgekehrt", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "In Favoritenliste speichern", + "Taxonomy.indicators.featured.label": "Vorgestellt", "Taxonomy.indicators.newest.label": "Neuste", "Taxonomy.indicators.popular.label": "Beliebt", - "Taxonomy.indicators.featured.label": "Vorgestellt", - "Taxonomy.indicators.favorite.label": "In Favoritenliste speichern", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Wähle eine Rolle", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap-Benutzername", - "Team.name.label": "Name", - "Team.name.description": "Der eindeutige Name des Teams", - "Team.description.label": "Beschreibung", - "Team.description.description": "Eine Kurzbeschreibung des Teams", - "Team.controls.save.label": "Speichern", + "Team.Status.invited": "Eingeladen", + "Team.Status.member": "Mitglied", + "Team.activeMembers.header": "Aktive Mitglieder", + "Team.addMembers.header": "Neues Mitglied einladen", + "Team.controls.acceptInvite.label": "Team beitreten", "Team.controls.cancel.label": "Abbrechen", + "Team.controls.declineInvite.label": "Einladung ablehnen", + "Team.controls.delete.label": "Team löschen", + "Team.controls.edit.label": "Team bearbeiten", + "Team.controls.leave.label": "Team verlassen", + "Team.controls.save.label": "Speichern", + "Team.controls.view.label": "Team ansehen", + "Team.description.description": "Eine Kurzbeschreibung des Teams", + "Team.description.label": "Beschreibung", + "Team.invitedMembers.header": "Ausstehende Einladungen", "Team.member.controls.acceptInvite.label": "Team beitreten", "Team.member.controls.declineInvite.label": "Einladung ablehnen", "Team.member.controls.delete.label": "Benutzer entfernen", "Team.member.controls.leave.label": "Team verlassen", "Team.members.indicator.you.label": "(Du)", + "Team.name.description": "Der eindeutige Name des Teams", + "Team.name.label": "Name", "Team.noTeams": "Du bist kein Mitglied eines Teams", - "Team.controls.view.label": "Team ansehen", - "Team.controls.edit.label": "Team bearbeiten", - "Team.controls.delete.label": "Team löschen", - "Team.controls.acceptInvite.label": "Team beitreten", - "Team.controls.declineInvite.label": "Einladung ablehnen", - "Team.controls.leave.label": "Team verlassen", - "Team.activeMembers.header": "Aktive Mitglieder", - "Team.invitedMembers.header": "Ausstehende Einladungen", - "Team.addMembers.header": "Neues Mitglied einladen", - "UserProfile.topChallenges.header": "Deine Top-Kampagnen", "TopUserChallenges.widget.label": "Deine Top-Kampagnen", "TopUserChallenges.widget.noChallenges": "Keine Kampagnen", "UserEditorSelector.currentEditor.label": "Aktueller Editor", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtuelle Kampagne", + "UserProfile.favoriteChallenges.header": "Favoritenliste", + "UserProfile.savedTasks.header": "Verfolgte Aufgaben", + "UserProfile.topChallenges.header": "Deine Top-Kampagnen", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Hineinzoomen, um Aufgaben zu bearbeiten", + "VirtualChallenge.controls.tooMany.tooltip": "Eine \"virtuelle\" Kampagne kann maximal {maxTasks, number} Aufgaben beinhalten.", + "VirtualChallenge.fields.name.label": "Gebe deiner \"virtuellen\" Kampagne einen Namen", "WidgetPicker.menuLabel": "Widget hinzufügen", + "WidgetWorkspace.controls.addConfiguration.label": "Neue Ansicht hinzufügen", + "WidgetWorkspace.controls.deleteConfiguration.label": "Ansicht löschen", + "WidgetWorkspace.controls.editConfiguration.label": "Ansicht bearbeiten", + "WidgetWorkspace.controls.exportConfiguration.label": "Ansicht exportieren", + "WidgetWorkspace.controls.importConfiguration.label": "Ansicht importieren", + "WidgetWorkspace.controls.resetConfiguration.label": "Ansicht zurücksetzen", + "WidgetWorkspace.controls.saveConfiguration.label": "Bearbeiten beenden", + "WidgetWorkspace.exportModal.controls.cancel.label": "Abbrechen", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name der Ansicht", + "WidgetWorkspace.exportModal.header": "Exportiere deine Ansicht", + "WidgetWorkspace.fields.configurationName.label": "Ansichtsname", + "WidgetWorkspace.importModal.controls.upload.label": "Klicken um Datei hochzuladen", + "WidgetWorkspace.importModal.header": "Eine Ansicht importieren", + "WidgetWorkspace.labels.currentlyUsing": "Aktuelle Ansicht:", + "WidgetWorkspace.labels.switchTo": "Wechseln zu:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Exaktes Datum anzeigen", + "Widgets.ActivityListingWidget.title": "Aktivitätsliste", + "Widgets.ActivityMapWidget.title": "Aktivitätskarte", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Verbleibende Aufgaben: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Tägliche Heatmap: Vervollständigung der Aufgabe", + "Widgets.ChallengeListWidget.label": "Kampagnen", + "Widgets.ChallengeListWidget.search.placeholder": "Suchen", + "Widgets.ChallengeListWidget.title": "Kampagnen", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Erstellt:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Aufgaben erstellt am {refreshDate} mit Daten vom {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Sichtbar:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Schlüsselwörter:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Bearbeitet:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Aufgaben erstellt:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Aufgaben aktualisiert:", + "Widgets.ChallengeOverviewWidget.label": "Kampagnenübersicht", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "Projekt nicht sichtbar", + "Widgets.ChallengeOverviewWidget.title": "Übersicht", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Teilen", + "Widgets.ChallengeTasksWidget.label": "Aufgaben", + "Widgets.ChallengeTasksWidget.title": "Aufgaben", + "Widgets.CommentsWidget.controls.export.label": "Exportieren", + "Widgets.CommentsWidget.label": "Kommentare", + "Widgets.CommentsWidget.title": "Kommentare", "Widgets.CompletionProgressWidget.label": "Fertigstellungsfortschritt", - "Widgets.CompletionProgressWidget.title": "Fertigstellungsfortschritt", "Widgets.CompletionProgressWidget.noTasks": "Kampagne hat keine Aufgaben", + "Widgets.CompletionProgressWidget.title": "Fertigstellungsfortschritt", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Aktivität", + "Widgets.FollowersWidget.controls.followers.label": "Follower", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Exaktes Datum anzeigen", + "Widgets.FollowingWidget.controls.following.label": "folgen", + "Widgets.FollowingWidget.header.activity": "Aktivitäten, denen Du folgst", + "Widgets.FollowingWidget.header.followers": "Deine Follower", + "Widgets.FollowingWidget.header.following": "Du folgst", + "Widgets.FollowingWidget.label": "Folgen", "Widgets.KeyboardShortcutsWidget.label": "Tastenkombinationen", "Widgets.KeyboardShortcutsWidget.title": "Tastenkombinationen", + "Widgets.LeaderboardWidget.label": "Bestenliste", + "Widgets.LeaderboardWidget.title": "Bestenliste", + "Widgets.ProjectAboutWidget.content": "Verwandte Kampagnen können in einem Projekt zusammengefasst werden.\nJede Kampagne muss einem Projekt zugewiesen werden.\n\nErstelle so viele Projekte wie benötigt, um Deine Kampagne zu organisieren.\nLade andere MapRoulette-Benutzer ein, Dir bei der Verwaltung zu helfen.\n\nProjekte müssen auf sichtbar gestellt werden, damit deren Kampagnen\nin der Suche oder auf der Karte angezeigt werden.", + "Widgets.ProjectAboutWidget.label": "Über das Projekt", + "Widgets.ProjectAboutWidget.title": "Über das Projekt", + "Widgets.ProjectListWidget.label": "Projektliste", + "Widgets.ProjectListWidget.search.placeholder": "Suchen", + "Widgets.ProjectListWidget.title": "Projekte", + "Widgets.ProjectManagersWidget.label": "Projektleiter", + "Widgets.ProjectOverviewWidget.label": "Übersicht", + "Widgets.ProjectOverviewWidget.title": "Übersicht", + "Widgets.RecentActivityWidget.label": "Neueste Aktivität", + "Widgets.RecentActivityWidget.title": "Neueste Aktivität", "Widgets.ReviewMap.label": "Karte prüfen", "Widgets.ReviewStatusMetricsWidget.label": "Statuseinstellung prüfen", "Widgets.ReviewStatusMetricsWidget.title": "Status überprüfen", "Widgets.ReviewTableWidget.label": "Prüftabelle", "Widgets.ReviewTaskMetricsWidget.label": "Aufgabenstatistik prüfen", "Widgets.ReviewTaskMetricsWidget.title": "Aufgabenstatus", - "Widgets.SnapshotProgressWidget.label": "Fortschritt bisher", - "Widgets.SnapshotProgressWidget.title": "Fortschritt bisher", "Widgets.SnapshotProgressWidget.current.label": "Aktuell", "Widgets.SnapshotProgressWidget.done.label": "Erledigt", "Widgets.SnapshotProgressWidget.exportCSV.label": "Exportiere CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Fortschritt bisher", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Fortschritt bisher", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Zeige alle Tags", "Widgets.TagDiffWidget.label": "Cooperativees", "Widgets.TagDiffWidget.title": "Vorgeschlagene Änderungen der OSM Tags", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Zeige alle Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Filter Löschen", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Interne ID:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Objekt ID:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priorität:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "ausgewählt", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Filter Löschen", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Gruppierung auflösen", "Widgets.TaskBundleWidget.currentTask": "(aktuelle Aufgabe)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "ausgewählt", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Objekt ID:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priorität:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Interne ID:", "Widgets.TaskBundleWidget.readOnly": "Vorschau der Aufgabe im schreibgeschützten Modus", - "Widgets.TaskCompletionWidget.label": "Fertigstellung", - "Widgets.TaskCompletionWidget.title": "Fertigstellung", - "Widgets.TaskCompletionWidget.inspectTitle": "Analyse", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Auswahl abbrechen", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Vorgeschlagene Änderungen", + "Widgets.TaskCompletionWidget.inspectTitle": "Analyse", + "Widgets.TaskCompletionWidget.label": "Fertigstellung", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Auswahl abbrechen", - "Widgets.TaskHistoryWidget.label": "Aufgabenvergangenheit", - "Widgets.TaskHistoryWidget.title": "Verlauf", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Fertigstellung", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "OSM Cha ansehen", + "Widgets.TaskHistoryWidget.label": "Aufgabenvergangenheit", + "Widgets.TaskHistoryWidget.title": "Verlauf", "Widgets.TaskInstructionsWidget.label": "Anleitung", "Widgets.TaskInstructionsWidget.title": "Anleitung", "Widgets.TaskLocationWidget.label": "Ort", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Aufgabe", "Widgets.TaskMoreOptionsWidget.label": "Mehr Optionen", "Widgets.TaskMoreOptionsWidget.title": "Mehr Optionen", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Aktuelle Aufgabe", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "Es sind keine Aufgaben in der Nähe verfügbar. ", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priorität:", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", "Widgets.TaskPropertiesWidget.label": "Aufgabeneigenschaften", - "Widgets.TaskPropertiesWidget.title": "Aufgabeneigenschaften", "Widgets.TaskPropertiesWidget.task.label": "Aufgabe {taskId}", + "Widgets.TaskPropertiesWidget.title": "Aufgabeneigenschaften", "Widgets.TaskReviewWidget.label": "Aufgabenprüfung", "Widgets.TaskReviewWidget.reviewTaskTitle": "Prüfung", - "Widgets.review.simultaneousTasks": "Prüfe {taskCount, number} Aufgaben insgesamt", "Widgets.TaskStatusWidget.label": "Aufgabenstatus", "Widgets.TaskStatusWidget.title": "Aufgabenstatus", + "Widgets.TeamsWidget.controls.createTeam.label": "Erstelle ein Team", + "Widgets.TeamsWidget.controls.myTeams.label": "Meine Teams", + "Widgets.TeamsWidget.createTeamTitle": "Neues Team erstellen", + "Widgets.TeamsWidget.editTeamTitle": "Team bearbeiten", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "Meine Teams", - "Widgets.TeamsWidget.editTeamTitle": "Team bearbeiten", - "Widgets.TeamsWidget.createTeamTitle": "Neues Team erstellen", "Widgets.TeamsWidget.viewTeamTitle": "Teamdetails", - "Widgets.TeamsWidget.controls.myTeams.label": "Meine Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Erstelle ein Team", - "WidgetWorkspace.controls.editConfiguration.label": "Ansicht bearbeiten", - "WidgetWorkspace.controls.saveConfiguration.label": "Bearbeiten beenden", - "WidgetWorkspace.fields.configurationName.label": "Ansichtsname", - "WidgetWorkspace.controls.addConfiguration.label": "Neue Ansicht hinzufügen", - "WidgetWorkspace.controls.deleteConfiguration.label": "Ansicht löschen", - "WidgetWorkspace.controls.resetConfiguration.label": "Ansicht zurücksetzen", - "WidgetWorkspace.controls.exportConfiguration.label": "Ansicht exportieren", - "WidgetWorkspace.controls.importConfiguration.label": "Ansicht importieren", - "WidgetWorkspace.labels.currentlyUsing": "Aktuelle Ansicht:", - "WidgetWorkspace.labels.switchTo": "Wechseln zu:", - "WidgetWorkspace.exportModal.header": "Exportiere deine Ansicht", - "WidgetWorkspace.exportModal.fields.name.label": "Name der Ansicht", - "WidgetWorkspace.exportModal.controls.cancel.label": "Abbrechen", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Eine Ansicht importieren", - "WidgetWorkspace.importModal.controls.upload.label": "Klicken um Datei hochzuladen", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Übersicht", - "Dashboard.header.welcomeBack": "Willkommen zurück, {username}!", - "Dashboard.header.completionPrompt": "Mit", - "Dashboard.header.completedTasks": "{completedTasks, number} Aufgaben", - "Dashboard.header.pointsPrompt": ", hast Du", - "Dashboard.header.userScore": "{points, number} Punkte", - "Dashboard.header.rankPrompt": ", und bist auf", - "Dashboard.header.globalRank": "Platz #{rank, number}", - "Dashboard.header.globally": "der weltweiten Bestenliste.", - "Dashboard.header.encouragement": "Weiter so!", - "Dashboard.header.getStarted": "Sammle Punkte, indem Du Kampagnen-Aufgaben löst!", - "Dashboard.header.jumpBackIn": "Steig' wieder ein!", - "Dashboard.header.resume": "Zur letzten Kampagne zurückgehen", - "Dashboard.header.controls.latestChallenge.label": "Bringe mich zur Kampagne", - "Dashboard.header.find": "Oder finde", - "Dashboard.header.somethingNew": "etwas Neues", - "Dashboard.header.controls.findChallenge.label": "Neue Kampagnen entdecken", - "Home.Featured.browse": "Entdecken", - "Home.Featured.header": "Vorgestellt", - "Inbox.header": "Nachrichten", - "Inbox.controls.refreshNotifications.label": "Aktualisieren", - "Inbox.controls.groupByTask.label": "Nach Aufgabe gruppieren", - "Inbox.controls.manageSubscriptions.label": "Benachrichtigungen verwalten", - "Inbox.controls.markSelectedRead.label": "Als gelesen markieren", - "Inbox.controls.deleteSelected.label": "Löschen", - "Inbox.tableHeaders.notificationType": "Typ", - "Inbox.tableHeaders.created": "Gesendet", - "Inbox.tableHeaders.fromUsername": "Von", - "Inbox.tableHeaders.challengeName": "Kampagne", - "Inbox.tableHeaders.isRead": "Lesen", - "Inbox.tableHeaders.taskId": "Aufgabe", - "Inbox.tableHeaders.controls": "Aktionen", - "Inbox.actions.openNotification.label": "Öffnen", - "Inbox.noNotifications": "Keine Nachrichten", - "Inbox.mentionNotification.lead": "Du wurdest in einem Kommentar erwähnt:", - "Inbox.reviewApprovedNotification.lead": "Gute Nachrichten! Deine Aufgaben wurden geprüft und bestätigt.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Deine Aufgabe wurde (mit kleineren Korrekturen des Prüfers) bestätigt.", - "Inbox.reviewRejectedNotification.lead": "Nach Prüfung deiner Aufgabe hat der Prüfer entschieden, dass deine Aufgabe noch zusätzliche Arbeit benötigt.", - "Inbox.reviewAgainNotification.lead": "Die Kartierung wurde überarbeitet und eine neue Prüfung angefragt.", - "Inbox.challengeCompleteNotification.lead": "Eine von dir verwaltete Kampagne wurde fertiggestellt.", - "Inbox.notification.controls.deleteNotification.label": "Löschen", - "Inbox.notification.controls.viewTask.label": "Aufgabe ansehen", - "Inbox.notification.controls.reviewTask.label": "Aufgabe prüfen", - "Inbox.notification.controls.manageChallenge.label": "Kampagne verwalten", - "Leaderboard.title": "Bestenliste", - "Leaderboard.global": "Weltweite", - "Leaderboard.scoringMethod.label": "Zählmethode", - "Leaderboard.scoringMethod.explanation": "##### Punkte pro erledigter Aufgabe werden wie folgt vergeben:\n\n| Status | Punkte |\n| :------------ | -----: |\n| Behoben | 5 |\n| Falsch Positiv | 3 |\n| Bereits behoben | 3 |\n| Zu schwierig | 1 |\n| Übersprungen | 0 |", - "Leaderboard.user.points": "Punkte", - "Leaderboard.user.topChallenges": "Top-Kampagnen", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Weiter anzeigen", - "Leaderboard.updatedFrequently": "Aktualisierung alle 15 Minuten", - "Leaderboard.updatedDaily": "Aktualisierung alle 24 Stunden", - "Metrics.userOptedOut": "Dieser Benutzer hat die Veröffentlichung seiner Statistiken abgelehnt.", - "Metrics.userSince": "Benutzer seit:", - "Metrics.totalCompletedTasksTitle": "Alle erledigten Aufgaben", - "Metrics.completedTasksTitle": "Erledigte Aufgaben", - "Metrics.reviewedTasksTitle": "Prüfstatus", - "Metrics.leaderboardTitle": "Bestenliste", - "Metrics.leaderboard.globalRank.label": "Weltweite Platzierung", - "Metrics.leaderboard.totalPoints.label": "Gesamtpunkte", - "Metrics.leaderboard.topChallenges.label": "Top-Kampagnen", - "Metrics.reviewStats.approved.label": "Aufgaben nach Prüfung bestätigt", - "Metrics.reviewStats.rejected.label": "Aufgaben die nicht bestätigt wurden", - "Metrics.reviewStats.assisted.label": "Aufgaben nach Prüfung bestätigt mit Änderungen", - "Metrics.reviewStats.disputed.label": "Aufgaben nach Prüfung mit Konflikt", - "Metrics.reviewStats.awaiting.label": "Aufgaben, die eine Prüfung benötigen", - "Metrics.reviewStats.averageReviewTime.label": "Durchschnittliche Prüfdauer:", - "Metrics.reviewedTasksTitle.asReviewer": "Aufgaben geprüft von {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Aufgaben geprüft von Dir", - "Metrics.reviewStats.asReviewer.approved.label": "Aufgaben nach Prüfung bestätigt", - "Metrics.reviewStats.asReviewer.rejected.label": "Aufgaben nach Prüfung nicht bestätigt", - "Metrics.reviewStats.asReviewer.assisted.label": "Aufgaben nach Prüfung bestätigt mit Änderungen", - "Metrics.reviewStats.asReviewer.disputed.label": "Aufgaben mit aktuellen Konflikten", - "Metrics.reviewStats.asReviewer.awaiting.label": "Aufgaben, die eine Nachbearbeitung erfordern", - "Profile.page.title": "Benutzereinstellungen", - "Profile.settings.header": "Allgemein", - "Profile.noUser": "Benutzer nicht gefunden oder Du bist nicht berechtigt, diesen Benutzer zu betrachten.", - "Profile.userSince": "Beutzer seit:", - "Profile.form.defaultEditor.label": "Standardeditor", - "Profile.form.defaultEditor.description": "Wählen Sie den Standardeditor, den Sie verwenden möchten wenn Sie Aufgaben lösen. Durch Auswahl dieser Option können Sie die Editorauswahl überspringen, nachdem Sie auf Bearbeiten geklickt haben.", - "Profile.form.defaultBasemap.label": "Standard Kartenhintergrund", - "Profile.form.defaultBasemap.description": "Wähle den Standard Kartenhintergrund. Nur ein definierter Kartenhintergrund einer Kampagne kann die hier ausgewählte Option überschreiben.", - "Profile.form.customBasemap.label": "Eigener Kartenhintergrund", - "Profile.form.customBasemap.description": "Fügen Sie eine eigene Basiskarte hier ein. Zum Beispiel `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Sprache", - "Profile.form.locale.description": "Benutzersprache für die MapRoulette Benutzeroberfläche.", - "Profile.form.leaderboardOptOut.label": "Von der Bestenliste abmelden", - "Profile.form.leaderboardOptOut.description": "Wenn ja wirst du **nicht** auf der öffentlichen Bestenliste erscheinen.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Kopieren", - "Profile.apiKey.controls.reset.label": "Zurücksetzen", - "Profile.form.needsReview.label": "Prüfung für alle Aufgaben anfragen", - "Profile.form.needsReview.description": "Für alle erledigten Aufgaben automatisch eine Prüfung anfragen", - "Profile.form.isReviewer.label": "Als Prüfer mithelfen", - "Profile.form.isReviewer.description": "Hilf mit Aufgaben zu prüfen, bei denen eine Überprüfung angefragt wurde", - "Profile.form.email.label": "E-Mail Adresse", - "Profile.form.email.description": "E-Mail Nachrichten werden an diese Adresse gesendet.\n\nWähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als Email versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", - "Profile.form.notification.label": "Nachricht", - "Profile.form.notificationSubscriptions.label": "Nachrichten Abonnements", - "Profile.form.notificationSubscriptions.description": "Wähle aus, welche MapRoulette Nachrichten du empfangen willst, und ob die Nachrichten als E-Mail versandt werden sollen (entweder direkt oder als tägliche Zusammenfassung).", - "Profile.form.yes.label": "Ja", - "Profile.form.no.label": "Nein", - "Profile.form.mandatory.label": "Obligatorisch", - "Review.Dashboard.tasksToBeReviewed": "Aufgaben zur Prüfung", - "Review.Dashboard.tasksReviewedByMe": "Von mir geprüfte Aufgaben", - "Review.Dashboard.myReviewTasks": "Meine geprüften Aufgaben", - "Review.Dashboard.allReviewedTasks": "Alle prüfungsbezogenen Aufgaben", - "Review.Dashboard.volunteerAsReviewer.label": "Als Prüfer mithelfen", - "Review.Dashboard.goBack.label": "Prüfungen überarbeiten", - "ReviewStatus.metrics.title": "Prüfstatus", - "ReviewStatus.metrics.awaitingReview": "Aufgaben zur Prüfung", - "ReviewStatus.metrics.approvedReview": "Aufgaben nach Prüfung bestätigt", - "ReviewStatus.metrics.rejectedReview": "Aufgaben nach Prüfung nicht bestätigt", - "ReviewStatus.metrics.assistedReview": "Aufgaben nach Prüfung bestätigt mit Korrekturen", - "ReviewStatus.metrics.disputedReview": "Aufgaben nach Prüfung mit Konflikt", - "ReviewStatus.metrics.fixed": "GELÖST", - "ReviewStatus.metrics.falsePositive": "KEIN FEHLER", - "ReviewStatus.metrics.alreadyFixed": "BEREITS GELÖST", - "ReviewStatus.metrics.tooHard": "ZU SCHWIERIG", - "ReviewStatus.metrics.priority.toggle": "Nach Priorität der Aufgabe sortieren", - "ReviewStatus.metrics.priority.label": "{priority} Priorität der Aufgabe", - "ReviewStatus.metrics.byTaskStatus.toggle": "Nach Status der Aufgabe sortieren", - "ReviewStatus.metrics.taskStatus.label": "{status} Aufgaben", - "ReviewStatus.metrics.averageTime.label": "Durchschn. Prüfdauer:", - "Review.TaskAnalysisTable.noTasks": "Keine Aufgaben gefunden", - "Review.TaskAnalysisTable.refresh": "Aktualisieren", - "Review.TaskAnalysisTable.startReviewing": "Diese Aufgaben prüfen", - "Review.TaskAnalysisTable.onlySavedChallenges": "Nur Kampagnen aus Favoritenliste", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Anderen zugewiesene Prüfungen ausschließen", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "Du hast keine Aufgaben geprüft.", - "Review.TaskAnalysisTable.noTasksReviewed": "Keine deiner bearbeiteten Aufgaben wurde geprüft.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Aufgaben zur Prüfung", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Von mir geprüfte Aufgaben", - "Review.TaskAnalysisTable.myReviewTasks": "Meine Aufgaben nach Prüfung", - "Review.TaskAnalysisTable.allReviewedTasks": "Alle prüfungsbezogenen Aufgaben", - "Review.TaskAnalysisTable.totalTasks": "Gesamt: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Spalten verwalten", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Aktionen", - "Review.TaskAnalysisTable.columnHeaders.comments": "Kommentare", - "Review.TaskAnalysisTable.mapperControls.label": "Aktionen", - "Review.TaskAnalysisTable.reviewerControls.label": "Aktionen", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Aktionen", - "Review.Task.fields.id.label": "Interne ID", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priorität", - "Review.fields.reviewStatus.label": "Prüfstatus", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Prüfer", - "Review.fields.mappedOn.label": "Kartiert am", - "Review.fields.reviewedAt.label": "geprüft am", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Prüfung", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Überarbeitung prüfen", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Lösen", - "Review.TaskAnalysisTable.controls.viewTask.label": "Ansehen", - "Review.TaskAnalysisTable.controls.fixTask.label": "Beheben", - "Review.fields.challenge.label": "Kampagne", - "Review.fields.project.label": "Projekt", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Mehrere gruppierte Aufgaben", - "Review.tableFilter.viewAllTasks": "Alle Aufgaben ansehen", - "Review.tablefilter.chooseFilter": "Wähle ein Projekt oder eine Kampagne", - "Review.tableFilter.reviewByProject": "Prüfung nach Projekt", - "Review.tableFilter.reviewByChallenge": "Prüfung nach Kampagne", - "Review.tableFilter.reviewByAllChallenges": "Alle Kampagnen", - "Review.tableFilter.reviewByAllProjects": "Alle Projekte", - "Pages.SignIn.modal.title": "Willkommen zurück!", - "Pages.SignIn.modal.prompt": "Bitte melde dich an, um fortzufahren", - "Activity.action.updated": "Aktualisiert", - "Activity.action.created": "Erstellt", - "Activity.action.deleted": "Gelöscht", - "Activity.action.taskViewed": "Gesehen", - "Activity.action.taskStatusSet": "Setze Status der", - "Activity.action.tagAdded": "Tag hinzugefügt nach", - "Activity.action.tagRemoved": "Tag gelöscht von", - "Activity.action.questionAnswered": "Beantwortete Frage", - "Activity.item.project": "Project", - "Activity.item.challenge": "Kampagne", - "Activity.item.task": "Aufgabe", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "Benutzer", - "Activity.item.group": "Gruppe", - "Activity.item.virtualChallenge": "Virtuelle Kampagne", - "Activity.item.bundle": "Gruppe", - "Activity.item.grant": "Förderung", - "Challenge.basemap.none": "Keine", - "Admin.Challenge.basemap.none": "Benutzer Standard", - "Challenge.basemap.openStreetMap": "OSM", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Benutzerdefiniert", - "Challenge.difficulty.easy": "Leicht", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Experte", - "Challenge.difficulty.any": "Egal", - "Challenge.keywords.navigation": "Straßen und Wege", - "Challenge.keywords.water": "Wasser", - "Challenge.keywords.pointsOfInterest": "Interessante Orte", - "Challenge.keywords.buildings": "Gebäude", - "Challenge.keywords.landUse": "Landnutzung und Grenzen", - "Challenge.keywords.transit": "Verkehr", - "Challenge.keywords.other": "Andere", - "Challenge.keywords.any": "Alles", - "Challenge.location.nearMe": "In der Nähe", - "Challenge.location.withinMapBounds": "Innerhalb der Kartengrenze", - "Challenge.location.intersectingMapBounds": "im Kartenausschnitt", - "Challenge.location.any": "Überall", - "Challenge.status.none": "Nicht zutreffend", - "Challenge.status.building": "Erstelle", - "Challenge.status.failed": "Fehlgeschlagen", - "Challenge.status.ready": "Bereit", - "Challenge.status.partiallyLoaded": "Teilweise geladen", - "Challenge.status.finished": "Abgeschlossen", - "Challenge.status.deletingTasks": "Lösche Aufgaben", - "Challenge.type.challenge": "Kampagne", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "Keine", - "Editor.id.label": "iD", - "Editor.josm.label": "JOSM", - "Editor.josmLayer.label": "JOSM mit neuer Ebene", - "Editor.josmFeatures.label": "Nur das Merkmal in JOSM bearbeiten", - "Editor.level0.label": "In Level0 bearbeiten", - "Editor.rapid.label": "In RapiD bearbeiten", - "Errors.user.missingHomeLocation": "Kein Standort gefunden. Bitte entweder die Standortfreigabe durch den Browser ermöglichen oder den Standort in den Benutzereinstellungen unter openstreetmap.org festlegen. (Um Änderungen der OpenStreetMap-Einstellungen zu übernehmen ist eine neue Anmeldung bei MapRoulette erforderlich).", - "Errors.user.unauthenticated": "Bitte melde dich an, um fortzufahren.", - "Errors.user.unauthorized": "Du hast leider nicht die Berechtigung, das zu tun.", - "Errors.user.updateFailure": "Benutzer konnte nicht auf dem Server aktualisiert werden.", - "Errors.user.fetchFailure": "Benutzerdaten konnten nicht vom Server geladen werden.", - "Errors.user.notFound": "Benutzer nicht gefunden.", - "Errors.leaderboard.fetchFailure": "Bestenliste konnte nicht geladen werden.", - "Errors.task.none": "Keine weiteren Aufgaben in dieser Kampagne.", - "Errors.task.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", - "Errors.task.updateFailure": "Deine Änderungen konnten nicht gespeichert werden.", - "Errors.task.deleteFailure": "Aufgabe konnte nicht gelöscht werden.", - "Errors.task.fetchFailure": "Es konnte keine Aufgabe zur Bearbeitung geladen werden.", - "Errors.task.doesNotExist": "Diese Aufgabe existiert nicht.", - "Errors.task.alreadyLocked": "Die Aufgabe wurde bereits von jemand anderem gesperrt.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Aufgaben können nicht gruppiert werden", - "Errors.osm.requestTooLarge": "OpenStreetMap Datenabfrage zu groß", - "Errors.osm.bandwidthExceeded": "Zulässige OpenStreetMap Bandbreite überschritten", - "Errors.osm.elementMissing": "Das Element wurde nicht auf dem OpenStreetMap Server gefunden.", - "Errors.osm.fetchFailure": "Die Daten von Openstreetmap konnten nicht geladen werden.", - "Errors.mapillary.fetchFailure": "Die Daten von Mapillary konnten nicht geladen werden.", - "Errors.openStreetCam.fetchFailure": "Die Daten von OpenStreetCam konnten nicht geladen werden.", - "Errors.nominatim.fetchFailure": "Die Daten von Nominatim konnten nicht geladen werden.", - "Errors.clusteredTask.fetchFailure": "Aufgabengruppen können nicht geladen werden", - "Errors.boundedTask.fetchFailure": "Kartengebundene Aufgaben können nicht geladen werden", - "Errors.reviewTask.fetchFailure": "Prüfaufgaben konnten nicht geladen werden.", - "Errors.reviewTask.alreadyClaimed": "Diese Aufgabe wird bereits von jemand anderem geprüft.", - "Errors.reviewTask.notClaimedByYou": "Die Prüfung kann nicht abgebrochen werden.", - "Errors.challenge.fetchFailure": "Die neuesten Daten der Kampagne konnten nicht vom Server geladen werden.", - "Errors.challenge.searchFailure": "Die Kampagnen konnten nicht auf dem Server gefunden werden.", - "Errors.challenge.deleteFailure": "Die Kampagne konnte nicht gelöscht werden.", - "Errors.challenge.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", - "Errors.challenge.rebuildFailure": "Aufgaben der Kampagne können nicht wiederhergestellt werden", - "Errors.challenge.doesNotExist": "Diese Kampagne existiert nicht.", - "Errors.virtualChallenge.fetchFailure": "Die neuesten Daten der virtuellen Kampagne konnten nicht vom Server geladen werden.", - "Errors.virtualChallenge.createFailure": "Es konnte keine virtuelle Kampagne erstellt werden{details}", - "Errors.virtualChallenge.expired": "Virtuelle kampagne ist abgelaufen.", - "Errors.project.saveFailure": "Deine Änderungen konnten nicht gespeichert werden{details}", - "Errors.project.fetchFailure": "Die neuesten Projektdaten konnten nicht vom Server geladen werden.", - "Errors.project.searchFailure": "Das Projekt konnte nicht gefunden werden.", - "Errors.project.deleteFailure": "Das Projekt konnte nicht gelöscht werden.", - "Errors.project.notManager": "Du musst Projektmanager sein, um fortfahren zu können.", - "Errors.map.renderFailure": "Nicht in der Lage, die Karte zu erstellen{details}. Versuche in die Standardkartenebene zurückzugehen.", - "Errors.map.placeNotFound": "Nominatim hat keine Ergebnisse gefunden.", - "Errors.widgetWorkspace.renderFailure": "Arbeitsbereich kann nicht angezeigt werden. Ansicht wird gewechselt.", - "Errors.widgetWorkspace.importFailure": "Ansicht kann nicht importiert werden{details}", - "Errors.josm.noResponse": "Die OSM Fernsteuerung antwortet nicht. Läuft bei dir JOSM mit aktivierter Fernsteuerung?", - "Errors.josm.missingFeatureIds": "Diese Aufgabenmerkmale besitzen nicht die erforderlichen OSM Identifikationsmerkmale, um sie in JOSM zu öffnen. Bitte wähle eine andere Editieroption.", - "Errors.team.genericFailure": "Fehler{details}", - "Grant.Role.admin": "Administrator", - "Grant.Role.write": "Schreiben", - "Grant.Role.read": "Lesen", - "KeyMapping.openEditor.editId": "In iD bearbeiten", - "KeyMapping.openEditor.editJosm": "In JOSM bearbeiten", - "KeyMapping.openEditor.editJosmLayer": "In neuer JOSM Ebene bearbeiten", - "KeyMapping.openEditor.editJosmFeatures": "Nur das Merkmal in JOSM bearbeiten", - "KeyMapping.openEditor.editLevel0": "In Level0 bearbeiten", - "KeyMapping.openEditor.editRapid": "In RapiD bearbeiten", - "KeyMapping.layers.layerOSMData": "Umschalten OSM-Datenebene", - "KeyMapping.layers.layerTaskFeatures": "Umschalten Merkmalebene", - "KeyMapping.layers.layerMapillary": "Umschalten Mapillaryebene", - "KeyMapping.taskEditing.cancel": "Stoppe das Editieren", - "KeyMapping.taskEditing.fitBounds": "Skaliere Karte auf die Aufgabe", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Überspringen", - "KeyMapping.taskCompletion.falsePositive": "Falsch Positiv", - "KeyMapping.taskCompletion.fixed": "Ich habe es behoben!", - "KeyMapping.taskCompletion.tooHard": "Zu schwierig/Konnte es nicht erkennen", - "KeyMapping.taskCompletion.alreadyFixed": "Bereits behoben", - "KeyMapping.taskInspect.nextTask": "Nächste", - "KeyMapping.taskInspect.prevTask": "Vorherige", - "KeyMapping.taskCompletion.confirmSubmit": "Abschicken", - "Subscription.type.ignore": "Keine Nachrichten", - "Subscription.type.noEmail": "Nachrichten nicht als E-Mail versenden", - "Subscription.type.immediateEmail": "Nachrichten direkt als E-Mail versenden", - "Subscription.type.dailyEmail": "Nachrichten nur einmal täglich als E-Mail versenden", - "Notification.type.system": "System", - "Notification.type.mention": "Erwähnen", - "Notification.type.review.approved": "Bestätigt", - "Notification.type.review.rejected": "Überarbeiten", - "Notification.type.review.again": "Prüfung", - "Notification.type.challengeCompleted": "Fertiggestellt", - "Notification.type.challengeCompletedLong": "Kampagne fertiggestellt", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Neu", - "Challenge.sort.oldest": "Älteste", - "Challenge.sort.popularity": "Beliebt", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Standard", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Proximity", - "Task.priority.high": "Hoch", - "Task.priority.medium": "Mittel", - "Task.priority.low": "Niedrig", - "Task.property.searchType.equals": "gleich", - "Task.property.searchType.notEqual": "ungleich", - "Task.property.searchType.contains": "enthält", - "Task.property.searchType.exists": "existiert", - "Task.property.searchType.missing": "fehlt", - "Task.property.operationType.and": "und", - "Task.property.operationType.or": "oder", - "Task.reviewStatus.needed": "Prüfung beantragt", - "Task.reviewStatus.approved": "Bestätigt", - "Task.reviewStatus.rejected": "Überarbeitung erforderlich", - "Task.reviewStatus.approvedWithFixes": "Überprüft mit Korrekturen", - "Task.reviewStatus.disputed": "Beanstandet", - "Task.reviewStatus.unnecessary": "Nicht benötigt", - "Task.reviewStatus.unset": "Prüfung noch nicht beantragt", - "Task.review.loadByMethod.next": "Nächste gefilterte Aufgabe", - "Task.review.loadByMethod.all": "Zurück zu \"Alle Prüfen\"", - "Task.review.loadByMethod.inbox": "Zurück zum Posteingang", - "Task.status.created": "Erstellt", - "Task.status.fixed": "Behoben", - "Task.status.falsePositive": "Falsch Positiv", - "Task.status.skipped": "Übersprungen", - "Task.status.deleted": "Gelöscht", - "Task.status.disabled": "Deaktiviert", - "Task.status.alreadyFixed": "Bereits behoben", - "Task.status.tooHard": "Zu schwierig", - "Team.Status.member": "Mitglied", - "Team.Status.invited": "Eingeladen", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (niederländisch)", - "Locale.pt-BR.label": "pt-BR (Brasilianisches Portugiesisch)", - "Locale.fa-IR.label": "fa-IR (Persisch - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Tschechisch - Tschechische Republik)", - "Locale.ru-RU.label": "ru-RU (Russisch - Russland)", - "Dashboard.ChallengeFilter.visible.label": "Sichtbar", - "Dashboard.ChallengeFilter.pinned.label": "Angeheftet", - "Dashboard.ProjectFilter.visible.label": "Sichtbar", - "Dashboard.ProjectFilter.owner.label": "Im Besitz", - "Dashboard.ProjectFilter.pinned.label": "Angeheftet" + "Widgets.review.simultaneousTasks": "Prüfe {taskCount, number} Aufgaben insgesamt" } diff --git a/src/lang/es.json b/src/lang/es.json index cd12725f1..98e9b59a1 100644 --- a/src/lang/es.json +++ b/src/lang/es.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Su actividad reciente", - "BurndownChart.heading": "Tareas restantes: {taskCount, number}", - "BurndownChart.tooltip": "Tareas restantes", - "CalendarHeatmap.heading": "Mapa de calor diario: finalización de tareas", + "ActiveTask.controls.aleadyFixed.label": "Ya estaba arreglado", + "ActiveTask.controls.cancelEditing.label": "Regresar", + "ActiveTask.controls.comments.tooltip": "Ver comentarios", + "ActiveTask.controls.fixed.label": "¡Lo arreglé!", + "ActiveTask.controls.info.tooltip": "Detalles de la tarea", + "ActiveTask.controls.notFixed.label": "Demasiado difícil / No pude verlo bien", + "ActiveTask.controls.status.tooltip": "Estado existente", + "ActiveTask.controls.viewChangset.label": "Ver conjunto de cambios", + "ActiveTask.heading": "Información del desafío", + "ActiveTask.indicators.virtualChallenge.tooltip": "Desafío virtual", + "ActiveTask.keyboardShortcuts.label": "Ver atajos de teclado", + "ActiveTask.subheading.comments": "Comentarios", + "ActiveTask.subheading.instructions": "Instrucciones", + "ActiveTask.subheading.location": "Ubicación", + "ActiveTask.subheading.progress": "Progreso del desafío", + "ActiveTask.subheading.social": "Compartir", + "ActiveTask.subheading.status": "Estado existente", + "Activity.action.created": "Creado", + "Activity.action.deleted": "Eliminado", + "Activity.action.questionAnswered": "Pregunta respondida sobre", + "Activity.action.tagAdded": "Etiqueta agregada a", + "Activity.action.tagRemoved": "Etiqueta eliminada de", + "Activity.action.taskStatusSet": "Establecer estado en", + "Activity.action.taskViewed": "Visto", + "Activity.action.updated": "Actualizado", + "Activity.item.bundle": "Paquete", + "Activity.item.challenge": "Desafío", + "Activity.item.grant": "Conceder", + "Activity.item.group": "Grupo", + "Activity.item.project": "Proyecto", + "Activity.item.survey": "Encuesta", + "Activity.item.tag": "Etiqueta", + "Activity.item.task": "Tarea", + "Activity.item.user": "Usuario", + "Activity.item.virtualChallenge": "Desafío virtual", + "ActivityListing.controls.group.label": "Grupo", + "ActivityListing.noRecentActivity": "Sin actividad reciente", + "ActivityListing.statusTo": "como", + "ActivityMap.noTasksAvailable.label": "No hay tareas cercanas disponibles.", + "ActivityMap.tooltip.priorityLabel": "Prioridad:", + "ActivityMap.tooltip.statusLabel": "Estado:", + "ActivityTimeline.UserActivityTimeline.header": "Sus contribuciones recientes", + "AddTeamMember.controls.chooseOSMUser.placeholder": "Nombre de usuario de OpenStreetMap", + "AddTeamMember.controls.chooseRole.label": "Elegir rol", + "Admin.Challenge.activity.label": "Actividad reciente", + "Admin.Challenge.basemap.none": "Predeterminado del usuario", + "Admin.Challenge.controls.clone.label": "Clonar desafío", + "Admin.Challenge.controls.delete.label": "Eliminar desafío", + "Admin.Challenge.controls.edit.label": "Editar desafío", + "Admin.Challenge.controls.move.label": "Mover desafío", + "Admin.Challenge.controls.move.none": "No hay proyectos permitidos.", + "Admin.Challenge.controls.refreshStatus.label": "Refrescando estado en", + "Admin.Challenge.controls.start.label": "Iniciar desafío", + "Admin.Challenge.controls.startChallenge.label": "Iniciar desafío", + "Admin.Challenge.fields.creationDate.label": "Creado:", + "Admin.Challenge.fields.enabled.label": "Visible:", + "Admin.Challenge.fields.lastModifiedDate.label": "Modificado:", + "Admin.Challenge.fields.status.label": "Estado:", + "Admin.Challenge.tasksBuilding": "Construyendo tareas...", + "Admin.Challenge.tasksCreatedCount": "tareas creadas hasta ahora.", + "Admin.Challenge.tasksFailed": "Tareas que no se pudieron construir", + "Admin.Challenge.tasksNone": "Sin tareas", + "Admin.Challenge.totalCreationTime": "Tiempo total transcurrido:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Opciones", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nombre del desafío", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Hecho", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Progreso de finalización", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Visible", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Última actividad", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Gestionar", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Editar", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Comenzar", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nombre del desafío", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Progreso de finalización", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Clonar", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Incluir columnas de estado", - "ChallengeCard.totalTasks": "Tareas totales", - "ChallengeCard.controls.visibilityToggle.tooltip": "Alternar la visibilidad del desafío", - "Admin.Challenge.controls.start.label": "Iniciar desafío", - "Admin.Challenge.controls.edit.label": "Editar desafío", - "Admin.Challenge.controls.move.label": "Mover desafío", - "Admin.Challenge.controls.move.none": "No hay proyectos permitidos.", - "Admin.Challenge.controls.clone.label": "Clonar desafío", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copiar URL", - "Admin.Challenge.controls.delete.label": "Eliminar desafío", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Editar", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Gestionar", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Incluir columnas de estado", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Comenzar", "Admin.ChallengeList.noChallenges": "Sin desafíos", - "ChallengeProgressBorder.available": "Disponible", - "CompletionRadar.heading": "Tareas completadas: {taskCount, number}", - "Admin.EditProject.unavailable": "Proyecto no disponible", - "Admin.EditProject.edit.header": "Editar", - "Admin.EditProject.new.header": "Nuevo proyecto", - "Admin.EditProject.controls.save.label": "Guardar", - "Admin.EditProject.controls.cancel.label": "Cancelar", - "Admin.EditProject.form.name.label": "Nombre", - "Admin.EditProject.form.name.description": "Nombre del proyecto", - "Admin.EditProject.form.displayName.label": "Nombre a mostrar", - "Admin.EditProject.form.displayName.description": "Nombre mostrado del proyecto", - "Admin.EditProject.form.enabled.label": "Visible", - "Admin.EditProject.form.enabled.description": "Si configura su proyecto en Visible, todos los Desafíos que también están configurados en Visible estarán disponibles, serán detectables y podrán ser buscados por otros usuarios. Efectivamente, hacer que su Proyecto sea visible publica cualquier Desafío que también sea Visible. Todavía puede trabajar en sus propios desafíos y compartir las URL estáticas del desafío para cualquiera de sus desafíos con las personas y funcionará. Entonces, hasta que establezca su Proyecto en Visible, puede ver su Proyecto como terreno de prueba para los Desafíos.", - "Admin.EditProject.form.featured.label": "Destacados", - "Admin.EditProject.form.featured.description": "Los proyectos destacados se muestran en la página de inicio y en la parte superior de la página Buscar desafíos para llamar la atención sobre ellos. Tenga en cuenta que destacar un proyecto **no** destaca sus desafíos. Solo los superusuarios pueden marcar un proyecto como destacado.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "Si un proyecto es virtual, puede agregar desafíos existentes como un medio de agrupación. Esta configuración no se puede cambiar después de crear el proyecto. Los permisos siguen vigentes a partir de los proyectos originales originales de los desafíos.", - "Admin.EditProject.form.description.label": "Descripción", - "Admin.EditProject.form.description.description": "Descripción del proyecto", - "Admin.InspectTask.header": "Inspeccionar tareas", - "Admin.EditChallenge.edit.header": "Editar", + "Admin.ChallengeTaskMap.controls.editTask.label": "Editar tarea", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspeccionar tarea", "Admin.EditChallenge.clone.header": "Clonar", - "Admin.EditChallenge.new.header": "Nuevo reto", - "Admin.EditChallenge.lineNumber": "Línea {line, number}:", + "Admin.EditChallenge.edit.header": "Editar", "Admin.EditChallenge.form.addMRTags.placeholder": "Agregar etiquetas MR", - "Admin.EditChallenge.form.step1.label": "General", - "Admin.EditChallenge.form.visible.label": "Visible", - "Admin.EditChallenge.form.visible.description": "Permite que su desafío sea visible y reconocible para otros usuarios (sujeto a la visibilidad del proyecto). A menos que esté realmente seguro de crear nuevos desafíos, le recomendamos que deje este en No al principio, especialmente si el Proyecto principal se ha hecho visible. Si configura la visibilidad de su Desafío en Sí, aparecerá en la página de inicio, en la búsqueda del Desafío y en las métricas, pero solo si el Proyecto principal también es visible.", - "Admin.EditChallenge.form.name.label": "Nombre", - "Admin.EditChallenge.form.name.description": "Su nombre de desafío, ya que aparecerá en muchos lugares a lo largo de la aplicación. Esto también es lo que se podrá buscar en su desafío mediante el cuadro de búsqueda. Este campo es obligatorio y solo admite texto sin formato.", - "Admin.EditChallenge.form.description.label": "Descripción", - "Admin.EditChallenge.form.description.description": "La descripción principal y más larga de su desafío que se muestra a los usuarios cuando hacen clic en el desafío para obtener más información al respecto. Este campo es compatible con Markdown.", - "Admin.EditChallenge.form.blurb.label": "Propaganda", + "Admin.EditChallenge.form.additionalKeywords.description": "Opcionalmente, puede proporcionar palabras clave adicionales que se pueden utilizar para ayudar a descubrir su desafío. Los usuarios pueden buscar por palabra clave desde la opción Otro del filtro desplegable Categoría, o en el cuadro Buscar al anteponer un signo hash (por ejemplo, #turismo).", + "Admin.EditChallenge.form.additionalKeywords.label": "Palabras clave", "Admin.EditChallenge.form.blurb.description": "Una descripción muy breve de su desafío adecuada para espacios pequeños, como una ventana emergente de marcador de mapa. Este campo es compatible con Markdown.", - "Admin.EditChallenge.form.instruction.label": "Instrucciones", - "Admin.EditChallenge.form.instruction.description": "La instrucción le dice a un mapeador cómo resolver una Tarea en su Desafío. Esto es lo que los mapeadores ven en el cuadro de Instrucciones cada vez que se carga una tarea, y es la información principal para el mapeador sobre cómo resolver la tarea, así que piense cuidadosamente en este campo. Puede incluir enlaces a la wiki de OSM o cualquier otro hipervínculo si lo desea, porque este campo admite Markdown. También puede hacer referencia a propiedades de características de su GeoJSON con etiquetas de llaves simples: por ejemplo, `'{{address}}'` se reemplazaría con el valor de la propiedad `address`, lo que permite la personalización básica de instrucciones para cada tarea. Este campo es requerido.", - "Admin.EditChallenge.form.checkinComment.label": "Descripción del conjunto de cambios", + "Admin.EditChallenge.form.blurb.label": "Propaganda", + "Admin.EditChallenge.form.category.description": "Seleccionar una categoría de alto nivel apropiada para su desafío puede ayudar a los usuarios a descubrir rápidamente desafíos que coincidan con sus intereses. Elija la categoría Otro si nada parece apropiado.", + "Admin.EditChallenge.form.category.label": "Categoría", "Admin.EditChallenge.form.checkinComment.description": "Comentario que se asociará con los cambios realizados por los usuarios en el editor", - "Admin.EditChallenge.form.checkinSource.label": "Origen del conjunto de cambios", + "Admin.EditChallenge.form.checkinComment.label": "Descripción del conjunto de cambios", "Admin.EditChallenge.form.checkinSource.description": "Fuente que se asociará con los cambios realizados por los usuarios en el editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Agregar automáticamente el hashtag #maproulette (muy recomendable)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Omitir hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Permitir que se agregue el hashtag a los comentarios del conjunto de cambios es muy útil para el análisis del conjunto de cambios.", - "Admin.EditChallenge.form.difficulty.label": "Dificultad", + "Admin.EditChallenge.form.checkinSource.label": "Origen del conjunto de cambios", + "Admin.EditChallenge.form.customBasemap.description": "Inserte una URL de mapa base personalizada aquí. P.ej. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Mapa base personalizado", + "Admin.EditChallenge.form.customTaskStyles.button": "Configurar", + "Admin.EditChallenge.form.customTaskStyles.description": "Habilite el estilo de tareas personalizadas en función de las propiedades de las características de tareas específicas.", + "Admin.EditChallenge.form.customTaskStyles.error": "Las reglas de estilo de propiedad de tarea no son válidas. Por favor arregle antes de continuar.", + "Admin.EditChallenge.form.customTaskStyles.label": "Personalizar estilos de propiedad de tarea", + "Admin.EditChallenge.form.dataOriginDate.description": "Edad de los datos. La fecha en que los datos se descargaron, generaron, etc.", + "Admin.EditChallenge.form.dataOriginDate.label": "Fecha de origen de los datos", + "Admin.EditChallenge.form.defaultBasemap.description": "El mapa base predeterminado para usar para el desafío, anulando cualquier configuración de usuario que defina un mapa base predeterminado", + "Admin.EditChallenge.form.defaultBasemap.label": "Mapa base del desafío", + "Admin.EditChallenge.form.defaultPriority.description": "Nivel de prioridad predeterminado para tareas en este desafío", + "Admin.EditChallenge.form.defaultPriority.label": "Prioridad predeterminada", + "Admin.EditChallenge.form.defaultZoom.description": "Cuando un usuario comienza a trabajar en una tarea, MapRoulette intentará usar automáticamente un nivel de zoom que se ajuste a los límites del elemento de la tarea. Pero si eso no es posible, se utilizará este nivel de zoom predeterminado. Debe establecerse en un nivel generalmente adecuado para trabajar en la mayoría de las tareas en su desafío.", + "Admin.EditChallenge.form.defaultZoom.label": "Nivel de zoom predeterminado", + "Admin.EditChallenge.form.description.description": "La descripción principal y más larga de su desafío que se muestra a los usuarios cuando hacen clic en el desafío para obtener más información al respecto. Este campo es compatible con Markdown.", + "Admin.EditChallenge.form.description.label": "Descripción", "Admin.EditChallenge.form.difficulty.description": "Elija entre Fácil, Normal y Experto para indicar a los mapeadores qué nivel de habilidad se requiere para resolver las Tareas en su Desafío. Los desafíos fáciles deberían ser adecuados para principiantes con poca o sin experiencia.", - "Admin.EditChallenge.form.category.label": "Categoría", - "Admin.EditChallenge.form.category.description": "Seleccionar una categoría de alto nivel apropiada para su desafío puede ayudar a los usuarios a descubrir rápidamente desafíos que coincidan con sus intereses. Elija la categoría Otro si nada parece apropiado.", - "Admin.EditChallenge.form.additionalKeywords.label": "Palabras clave", - "Admin.EditChallenge.form.additionalKeywords.description": "Opcionalmente, puede proporcionar palabras clave adicionales que se pueden utilizar para ayudar a descubrir su desafío. Los usuarios pueden buscar por palabra clave desde la opción Otro del filtro desplegable Categoría, o en el cuadro Buscar al anteponer un signo hash (por ejemplo, #turismo).", - "Admin.EditChallenge.form.preferredTags.label": "Etiquetas preferidas", - "Admin.EditChallenge.form.preferredTags.description": "Opcionalmente, puede proporcionar una lista de etiquetas preferidas que desea que use el usuario al completar una tarea.", - "Admin.EditChallenge.form.featured.label": "Destacados", + "Admin.EditChallenge.form.difficulty.label": "Dificultad", + "Admin.EditChallenge.form.exportableProperties.description": "Cualquier propiedad incluida en esta lista separada por comas se exportará como una columna en la exportación CSV y se completará con la primera propiedad de función coincidente de cada tarea.", + "Admin.EditChallenge.form.exportableProperties.label": "Propiedades para exportar en CSV", "Admin.EditChallenge.form.featured.description": "Los desafíos destacados se muestran en la parte superior de la lista al navegar y buscar desafíos. Solo los superusuarios pueden marcar un desafío tal como aparece.", - "Admin.EditChallenge.form.step2.label": "Fuente GeoJSON", - "Admin.EditChallenge.form.step2.description": "Cada tarea en MapRoulette consiste básicamente en una geometría: un punto, línea o\npolígono que indica en el mapa qué es lo que desea que evalúe el mapeador.\nEsta pantalla le permite definir las tareas para su desafío diciéndole a MapRoulette\nabout las geometrías .\n\nHay tres formas de alimentar las geometrías en su desafío: a través de un Overpass\nquery, a través de un archivo GeoJSON en su computadora, o mediante una URL que apunta a un archivo GeoJSON\n en Internet.\n\n #### Via Overpass\n\nLa API Overpass es una potente interfaz de consulta para datos de OpenStreetMap.\nno funciona en la base de datos OSM en vivo, pero los datos que obtiene de Overpass tienen\nusualmente solo unos minutos de antigüedad. Usando\n [Overpass QL] (https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nel Overpass Query Language, puede definir exactamente qué objetos OSM desea\n cargar en su Challenge como Tareas.\n [Obtenga más información en la wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n #### a través del archivo GeoJSON local\n\n La otra opción es usar un archivo GeoJSON que ya tienes. Esto podría ser excelente si tiene una fuente aprobada de datos externos que le gustaría agregar manualmente a OSM. Herramientas como\n [QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) puede convertir cosas como\nShapefiles a GeoJSON. Al realizar la conversión, asegúrese de usar\nlon / lat no proyectado en el dato WGS84 (EPSG: 4326), porque esto es lo que MapRoulette usa\ninternalmente.\n\n> Nota: para desafíos con una gran cantidad de tareas, se recomienda usar un formato\n [línea por línea](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\n, que requiere mucho menos memoria para procesar.\n\n#### A través de la URL remota de GeoJSON\n\nLa única diferencia entre usar un archivo GeoJSON local y una URL es de cómo\nle dice a MapRoulette para obtenerlo. Si usa una URL, asegúrese de apuntar al archivo\nraw GeoJSON, no a una página que contenga un enlace al archivo, o MapRoulette\nno podrá darle sentido.", - "Admin.EditChallenge.form.source.label": "Fuente GeoJSON", - "Admin.EditChallenge.form.overpassQL.label": "Consulta API Overpass", + "Admin.EditChallenge.form.featured.label": "Destacados", + "Admin.EditChallenge.form.highPriorityRules.label": "Reglas de alta prioridad", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Continúe a pesar de los errores detectados en los datos de origen. Solo los usuarios expertos que entiendan completamente las implicaciones deberían intentarlo.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorar errores", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Permitir que se agregue el hashtag a los comentarios del conjunto de cambios es muy útil para el análisis del conjunto de cambios.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Omitir hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Agregar automáticamente el hashtag #maproulette (muy recomendable)", + "Admin.EditChallenge.form.instruction.description": "La instrucción le dice a un mapeador cómo resolver una Tarea en su Desafío. Esto es lo que los mapeadores ven en el cuadro de Instrucciones cada vez que se carga una tarea, y es la información principal para el mapeador sobre cómo resolver la tarea, así que piense en este campo cuidadosamente. Puede incluir enlaces a la wiki de OSM o cualquier otro hipervínculo si lo desea, porque este campo admite Markdown. También puede hacer referencia a propiedades de características de su GeoJSON con etiquetas de bigote simples: p. `'{{address}}'` se reemplazaría con el valor de la propiedad `address`, lo que permite la personalización básica de las instrucciones para cada tarea. Este campo es requerido.", + "Admin.EditChallenge.form.instruction.label": "Instrucciones", + "Admin.EditChallenge.form.localGeoJson.description": "Cargue el archivo GeoJSON local de su computadora", + "Admin.EditChallenge.form.localGeoJson.label": "Subir archivo", + "Admin.EditChallenge.form.lowPriorityRules.label": "Reglas de baja prioridad", + "Admin.EditChallenge.form.maxZoom.description": "El nivel de zoom máximo permitido para tu desafío. Esto debe establecerse en un nivel que permita al usuario acercarse lo suficiente como para trabajar en las tareas mientras evita que se acerque a un nivel que no sea útil o que exceda la resolución disponible del mapa o imágenes en la región geográfica.", + "Admin.EditChallenge.form.maxZoom.label": "Nivel de zoom máximo", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Reglas de prioridad media", + "Admin.EditChallenge.form.minZoom.description": "El nivel de zoom mínimo permitido para tu desafío. Esto debe establecerse en un nivel que permita al usuario alejarse lo suficiente como para trabajar en las tareas, evitando que se aleje a un nivel que no sea útil.", + "Admin.EditChallenge.form.minZoom.label": "Nivel de zoom mínimo", + "Admin.EditChallenge.form.name.description": "Su nombre de desafío, ya que aparecerá en muchos lugares a lo largo de la aplicación. Esto también es lo que se podrá buscar en su desafío mediante el cuadro de búsqueda. Este campo es obligatorio y solo admite texto sin formato.", + "Admin.EditChallenge.form.name.label": "Nombre", + "Admin.EditChallenge.form.osmIdProperty.description": "El nombre de la propiedad de la función de tarea para tratar como un ID de elemento de OpenStreetMap para tareas. Si se deja en blanco, MapRoulette volverá a verificar una serie de propiedades de identificación comunes, incluidas las utilizadas por Overpass. Si se especifica, **asegúrese de que tenga un valor único para cada característica en sus datos**. Las tareas que faltan a la propiedad recibirán un identificador aleatorio incluso si la tarea contiene otras propiedades de identificación comunes. [Obtenga más información en la wiki] (https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "Propiedad ID de OSM", "Admin.EditChallenge.form.overpassQL.description": "Proporcione un cuadro delimitador adecuado cuando inserte una consulta de overpass, ya que esto puede generar grandes cantidades de datos y atascar el sistema.", + "Admin.EditChallenge.form.overpassQL.label": "Consulta API Overpass", "Admin.EditChallenge.form.overpassQL.placeholder": "Ingrese la consulta API Overpass aquí ...", - "Admin.EditChallenge.form.localGeoJson.label": "Subir archivo", - "Admin.EditChallenge.form.localGeoJson.description": "Cargue el archivo GeoJSON local de su computadora", - "Admin.EditChallenge.form.remoteGeoJson.label": "URL remota", + "Admin.EditChallenge.form.preferredTags.description": "Opcionalmente, puede proporcionar una lista de etiquetas preferidas que desea que use el usuario al completar una tarea.", + "Admin.EditChallenge.form.preferredTags.label": "Etiquetas preferidas", "Admin.EditChallenge.form.remoteGeoJson.description": "Ubicación remota de URL desde la cual recuperar el GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "URL remota", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.ejemplo.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Fecha de origen de los datos", - "Admin.EditChallenge.form.dataOriginDate.description": "Edad de los datos. La fecha en que los datos se descargaron, generaron, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorar errores", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Continúe a pesar de los errores detectados en los datos de origen. Solo los usuarios expertos que entiendan completamente las implicaciones deberían intentarlo.", - "Admin.EditChallenge.form.step3.label": "Prioridades", + "Admin.EditChallenge.form.requiresLocal.description": "Las tareas requieren conocimiento local o en el terreno para completarse. Nota: El desafío no aparecerá en la lista Buscar desafíos.", + "Admin.EditChallenge.form.requiresLocal.label": "Requiere conocimiento local", + "Admin.EditChallenge.form.source.label": "Fuente GeoJSON", + "Admin.EditChallenge.form.step1.label": "General", + "Admin.EditChallenge.form.step2.description": "\nCada tarea en MapRoulette consiste básicamente en una geometría: un punto, línea o\npolígono que indica en el mapa qué es lo que quieres que evalúe el mapeador.\nEsta pantalla permite definir las Tareas para el Desafío diciéndole a MapRoulette\nsus geometrías.\n\nHay tres formas de alimentar geometrías en su desafío: a través de un Overpass\nquery, a través de un archivo GeoJSON en su computadora, o mediante una URL que apunta a un archivo GeoJSON\nen Internet.\n\n#### A través de Overpass\n\nLa API Overpass es una potente interfaz de consulta para datos de OpenStreetMap.\nNo funciona en la base de datos OSM en vivo, pero los datos que obtiene de Overpass tienen\ncomunmente solo unos minutos de antigüedad. Utilizando\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nel lenguaje de consulta de Overpass, puede definir exactamente qué objetos OSM desea\ncargar en su desafío como Tareas.\n[Obtenga más información en la wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### A través del archivo GeoJSON local\n\nLa otra opción es usar un archivo GeoJSON que ya tenga. Esto podría ser excelente\nsi tiene una fuente aprobada de datos externos que le gustaría agregar manualmente\na OSM. Herramientas como\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\ny [gdal](http://www.gdal.org/drv_geojson.html) puede convertir cosas como\nShapefiles a GeoJSON. Al realizar la conversión, asegúrese de usar\nlon/lat no proyectado en el datum WGS84 (EPSG:4326), porque esto es lo que MapRoulette usa\ninternalmente.\n\n> Nota: Para desafíos con una gran cantidad de tareas, recomendamos usar un\nfomato [línea por línea](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nen su lugar, que requiere mucha menos memoria para procesar.\n\n#### A través de la URL de GeoJSON remoto\n\nLa única diferencia entre usar un archivo GeoJSON local y una URL es donde\ndescribe MapRoulette para obtenerlo. Si usa una URL, asegúrese de apuntar al archivo\nraw GeoJSON, no a una página que contenga un enlace al archivo, o MapRoulette\nno podrá darle sentido.\n", + "Admin.EditChallenge.form.step2.label": "Fuente GeoJSON", "Admin.EditChallenge.form.step3.description": "La prioridad de las tareas se puede definir como Alta, Media y Baja. Todas las tareas de alta prioridad se ofrecerán a los usuarios primero cuando superen un desafío, seguidas de tareas de prioridad media y finalmente baja. La prioridad de cada tarea se asigna automáticamente en función de las reglas que especifique a continuación, cada una de las cuales se evalúa con respecto a las propiedades de las características de la tarea (etiquetas OSM si está utilizando una consulta Overpass, de lo contrario, cualquier propiedad que haya elegido incluir en su GeoJSON). A las tareas que no pasan ninguna regla se les asignará la prioridad predeterminada.", - "Admin.EditChallenge.form.defaultPriority.label": "Prioridad predeterminada", - "Admin.EditChallenge.form.defaultPriority.description": "Nivel de prioridad predeterminado para tareas en este desafío", - "Admin.EditChallenge.form.highPriorityRules.label": "Reglas de alta prioridad", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Reglas de prioridad media", - "Admin.EditChallenge.form.lowPriorityRules.label": "Reglas de baja prioridad", - "Admin.EditChallenge.form.step4.label": "Extra", + "Admin.EditChallenge.form.step3.label": "Prioridades", "Admin.EditChallenge.form.step4.description": "Información adicional que se puede configurar opcionalmente para brindar una mejor experiencia de mapeo específica para los requisitos del desafío", - "Admin.EditChallenge.form.updateTasks.label": "Eliminar tareas obsoletas", - "Admin.EditChallenge.form.updateTasks.description": "Periódicamente elimine las tareas antiguas, obsoletas (no actualizadas en ~ 30 días) aún en estado Creado u Omitido. Esto puede ser útil si está actualizando sus tareas de desafío de forma regular y desea que se eliminen las antiguas periódicamente. La mayoría de las veces querrás dejar esta opción en No.", - "Admin.EditChallenge.form.defaultZoom.label": "Nivel de zoom predeterminado", - "Admin.EditChallenge.form.defaultZoom.description": "Cuando un usuario comienza a trabajar en una tarea, MapRoulette intentará usar automáticamente un nivel de zoom que se ajuste a los límites de la función de la tarea. Pero si eso no es posible, se utilizará este nivel de zoom predeterminado. Debe establecerse en un nivel generalmente adecuado para trabajar en la mayoría de las tareas en su desafío.", - "Admin.EditChallenge.form.minZoom.label": "Nivel de zoom mínimo", - "Admin.EditChallenge.form.minZoom.description": "El nivel de zoom mínimo permitido para tu desafío. Esto debe establecerse en un nivel que permita al usuario alejarse lo suficiente como para trabajar en las tareas, evitando que se aleje a un nivel que no sea útil.", - "Admin.EditChallenge.form.maxZoom.label": "Nivel de zoom máximo", - "Admin.EditChallenge.form.maxZoom.description": "El nivel de zoom máximo permitido para tu desafío. Esto debe establecerse en un nivel que permita al usuario acercarse lo suficiente como para trabajar en las tareas mientras evita que se acerque a un nivel que no sea útil o que exceda la resolución disponible del mapa o imágenes en la región geográfica.", - "Admin.EditChallenge.form.defaultBasemap.label": "Mapa base del desafío", - "Admin.EditChallenge.form.defaultBasemap.description": "El mapa base predeterminado para usar para el desafío, anulando cualquier configuración de usuario que defina un mapa base predeterminado", - "Admin.EditChallenge.form.customBasemap.label": "Mapa base personalizado", - "Admin.EditChallenge.form.customBasemap.description": "Inserte una URL de mapa base personalizada aquí. Por ejemplo, `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Propiedades para exportar en CSV", - "Admin.EditChallenge.form.exportableProperties.description": "Cualquier propiedad incluida en esta lista separada por comas se exportará como una columna en la exportación CSV y se completará con la primera propiedad de función coincidente de cada tarea.", - "Admin.EditChallenge.form.osmIdProperty.label": "Propiedad ID de OSM", - "Admin.EditChallenge.form.osmIdProperty.description": "El nombre de la propiedad de la función de tarea para tratar como un ID de elemento de OpenStreetMap para tareas. Si se deja en blanco, MapRoulette volverá a verificar una serie de propiedades de identificación comunes, incluidas las utilizadas por Overpass. Si se especifica, **asegúrese de que tenga un valor único para cada característica en sus datos**. Las tareas que faltan a la propiedad recibirán un identificador aleatorio incluso si la tarea contiene otras propiedades de identificación comunes. [Obtenga más información en la wiki] (https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Personalizar estilos de propiedad de tarea", - "Admin.EditChallenge.form.customTaskStyles.description": "Habilite el estilo de tareas personalizadas en función de las propiedades de las características de tareas específicas.", - "Admin.EditChallenge.form.customTaskStyles.error": "Las reglas de estilo de propiedad de tarea no son válidas. Por favor arregle antes de continuar.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configurar", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Reglas de estilo de propiedad de tarea", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Hecho", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Limpiar", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Hecho", "Admin.EditChallenge.form.taskPropertyStyles.description": "Establece reglas de estilo de propiedad de tarea ......", - "Admin.EditChallenge.form.requiresLocal.label": "Requiere conocimiento local", - "Admin.EditChallenge.form.requiresLocal.description": "Las tareas requieren conocimiento local o sobre el terreno para completar. Nota: el desafío no aparecerá en la lista 'Buscar desafíos'.", - "Admin.ManageChallenges.header": "Desafíos", - "Admin.ManageChallenges.help.info": "Los desafíos consisten en muchas tareas que ayudan a abordar un problema específico o una deficiencia con los datos de OpenStreetMap. Las tareas generalmente se generan automáticamente a partir de una consulta overpassQL que usted proporciona al crear un nuevo desafío, pero también se puede cargar desde un archivo local o una URL remota que contiene características de GeoJSON. Puede crear tantos desafíos como quiera.", - "Admin.ManageChallenges.search.placeholder": "Nombre", - "Admin.ManageChallenges.allProjectChallenge": "Todas", - "Admin.Challenge.fields.creationDate.label": "Creado:", - "Admin.Challenge.fields.lastModifiedDate.label": "Modificado:", - "Admin.Challenge.fields.status.label": "Estado:", - "Admin.Challenge.fields.enabled.label": "Visible:", - "Admin.Challenge.controls.startChallenge.label": "Iniciar desafío", - "Admin.Challenge.activity.label": "Actividad reciente", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Eliminar", - "Admin.EditTask.edit.header": "Editar la tarea", - "Admin.EditTask.new.header": "Nueva tarea", - "Admin.EditTask.form.formTitle": "Detalles de la tarea", - "Admin.EditTask.controls.save.label": "Guardar", - "Admin.EditTask.controls.cancel.label": "Cancelar", - "Admin.EditTask.form.name.label": "Nombre", - "Admin.EditTask.form.name.description": "Nombre de la tarea", - "Admin.EditTask.form.instruction.label": "Instrucciones", - "Admin.EditTask.form.instruction.description": "Instrucciones para los usuarios que realizan esta tarea específica (anula las instrucciones de desafío)", - "Admin.EditTask.form.geometries.label": "GeoJSON", - "Admin.EditTask.form.geometries.description": "GeoJSON para esta tarea. Cada tarea en MapRoulette consiste básicamente en una geometría: un punto, línea o polígono que indica en el mapa dónde quiere que preste atención el mapeador, descrito por GeoJSON", - "Admin.EditTask.form.priority.label": "Prioridad", - "Admin.EditTask.form.status.label": "Estado", - "Admin.EditTask.form.status.description": "Estado de esta tarea. Dependiendo del estado actual, sus opciones para actualizar el estado pueden estar restringidas", - "Admin.EditTask.form.additionalTags.label": "Etiquetas MR", - "Admin.EditTask.form.additionalTags.description": "Opcionalmente, puede proporcionar etiquetas MR adicionales que se pueden usar para anotar esta tarea.", - "Admin.EditTask.form.additionalTags.placeholder": "Agregar etiquetas MR", - "Admin.Task.controls.editTask.tooltip": "Editar la tarea", - "Admin.Task.controls.editTask.label": "Editar", - "Admin.manage.header": "Crear y administrar", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Desafíos", - "Admin.ProjectCard.tabs.details.label": "Detalles", - "Admin.ProjectCard.tabs.managers.label": "Administradores", - "Admin.Project.fields.enabled.tooltip": "Enabled", - "Admin.Project.fields.disabled.tooltip": "Deshabilitado", - "Admin.ProjectCard.controls.editProject.tooltip": "Editar proyecto", - "Admin.ProjectCard.controls.editProject.label": "Editar proyecto", - "Admin.ProjectCard.controls.pinProject.label": "Anclar proyecto", - "Admin.ProjectCard.controls.unpinProject.label": "Desanclar proyecto", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Reglas de estilo de propiedad de tarea", + "Admin.EditChallenge.form.updateTasks.description": "Periódicamente elimine las tareas antiguas, obsoletas (no actualizadas en ~ 30 días) aún en estado Creado u Omitido. Esto puede ser útil si está actualizando sus tareas de desafío de forma regular y desea que se eliminen las antiguas periódicamente. La mayoría de las veces querrás dejar esta opción en No.", + "Admin.EditChallenge.form.updateTasks.label": "Eliminar tareas obsoletas", + "Admin.EditChallenge.form.visible.description": "Permite que su desafío sea visible y reconocible para otros usuarios (sujeto a la visibilidad del proyecto). A menos que esté realmente seguro de crear nuevos desafíos, le recomendamos que deje este en No al principio, especialmente si el Proyecto principal se ha hecho visible. Si configura la visibilidad de su Desafío en Sí, aparecerá en la página de inicio, en la búsqueda del Desafío y en las métricas, pero solo si el Proyecto principal también es visible.", + "Admin.EditChallenge.form.visible.label": "Visible", + "Admin.EditChallenge.lineNumber": "Línea {line, number}:", + "Admin.EditChallenge.new.header": "Nuevo reto", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Los accesos directos de Overpass Turbo no son compatibles. Si desea utilizarlos, visite Overpass Turbo y pruebe su consulta, luego elija Exportar -> Consulta -> Independiente -> Copiar y luego péguelo aquí.", + "Admin.EditProject.controls.cancel.label": "Cancelar", + "Admin.EditProject.controls.save.label": "Guardar", + "Admin.EditProject.edit.header": "Editar", + "Admin.EditProject.form.description.description": "Descripción del proyecto", + "Admin.EditProject.form.description.label": "Descripción", + "Admin.EditProject.form.displayName.description": "Nombre mostrado del proyecto", + "Admin.EditProject.form.displayName.label": "Nombre a mostrar", + "Admin.EditProject.form.enabled.description": "Si configura su proyecto en Visible, todos los Desafíos que también están configurados en Visible estarán disponibles, serán detectables y podrán ser buscados por otros usuarios. Efectivamente, hacer que su Proyecto sea visible publica cualquier Desafío que también sea Visible. Todavía puede trabajar en sus propios desafíos y compartir las URL estáticas del desafío para cualquiera de sus desafíos con las personas y funcionará. Entonces, hasta que establezca su Proyecto en Visible, puede ver su Proyecto como terreno de prueba para los Desafíos.", + "Admin.EditProject.form.enabled.label": "Visible", + "Admin.EditProject.form.featured.description": "Los proyectos destacados se muestran en la página de inicio y en la parte superior de la página Buscar desafíos para llamar la atención sobre ellos. Tenga en cuenta que destacar un proyecto **no** destaca sus desafíos. Solo los superusuarios pueden marcar un proyecto como destacado.", + "Admin.EditProject.form.featured.label": "Destacados", + "Admin.EditProject.form.isVirtual.description": "Si un proyecto es virtual, puede agregar desafíos existentes como un medio de agrupación. Esta configuración no se puede cambiar después de crear el proyecto. Los permisos siguen vigentes a partir de los proyectos originales originales de los desafíos.", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "Nombre del proyecto", + "Admin.EditProject.form.name.label": "Nombre", + "Admin.EditProject.new.header": "Nuevo proyecto", + "Admin.EditProject.unavailable": "Proyecto no disponible", + "Admin.EditTask.controls.cancel.label": "Cancelar", + "Admin.EditTask.controls.save.label": "Guardar", + "Admin.EditTask.edit.header": "Editar la tarea", + "Admin.EditTask.form.additionalTags.description": "Opcionalmente, puede proporcionar etiquetas MR adicionales que se pueden usar para anotar esta tarea.", + "Admin.EditTask.form.additionalTags.label": "Etiquetas MR", + "Admin.EditTask.form.additionalTags.placeholder": "Agregar etiquetas MR", + "Admin.EditTask.form.formTitle": "Detalles de la tarea", + "Admin.EditTask.form.geometries.description": "GeoJSON para esta tarea. Cada tarea en MapRoulette consiste básicamente en una geometría: un punto, línea o polígono que indica en el mapa dónde quiere que preste atención el mapeador, descrito por GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Instrucciones para los usuarios que realizan esta tarea específica (anula las instrucciones de desafío)", + "Admin.EditTask.form.instruction.label": "Instrucciones", + "Admin.EditTask.form.name.description": "Nombre de la tarea", + "Admin.EditTask.form.name.label": "Nombre", + "Admin.EditTask.form.priority.label": "Prioridad", + "Admin.EditTask.form.status.description": "Estado de esta tarea. Dependiendo del estado actual, sus opciones para actualizar el estado pueden estar restringidas", + "Admin.EditTask.form.status.label": "Estado", + "Admin.EditTask.new.header": "Nueva tarea", + "Admin.InspectTask.header": "Inspeccionar tareas", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Eliminar", + "Admin.ManageChallenges.allProjectChallenge": "Todas", + "Admin.ManageChallenges.header": "Desafíos", + "Admin.ManageChallenges.help.info": "Los desafíos consisten en muchas tareas que ayudan a abordar un problema específico o una deficiencia con los datos de OpenStreetMap. Las tareas generalmente se generan automáticamente a partir de una consulta overpassQL que usted proporciona al crear un nuevo desafío, pero también se puede cargar desde un archivo local o una URL remota que contiene características de GeoJSON. Puede crear tantos desafíos como quiera.", + "Admin.ManageChallenges.search.placeholder": "Nombre", + "Admin.ManageTasks.geographicIndexingNotice": "Tenga en cuenta que puede llevar hasta {delay} horas indexar geográficamente desafíos nuevos o modificados. Es posible que su desafío (y tareas) no aparezcan como se esperaba en la exploración o búsquedas específicas de la ubicación hasta que se complete la indexación.", + "Admin.ManageTasks.header": "Tareas", + "Admin.Project.challengesUndiscoverable": "desafíos no detectables", "Admin.Project.controls.addChallenge.label": "Añadir desafío", + "Admin.Project.controls.addChallenge.tooltip": "Nuevo reto", + "Admin.Project.controls.delete.label": "Eliminar proyecto", + "Admin.Project.controls.export.label": "Exportar CSV", "Admin.Project.controls.manageChallengeList.label": "Administrar lista de desafíos", + "Admin.Project.controls.visible.confirmation": "¿Estás seguro? Ningún mapeador podrá descubrir desafíos en este proyecto.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Creado:", + "Admin.Project.fields.disabled.tooltip": "Deshabilitado", + "Admin.Project.fields.enabled.tooltip": "Enabled", + "Admin.Project.fields.lastModifiedDate.label": "Modificado:", "Admin.Project.headers.challengePreview": "Coincidencia de desafío", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Exportar CSV", - "Admin.ProjectDashboard.controls.edit.label": "Editar proyecto", - "Admin.ProjectDashboard.controls.delete.label": "Eliminar proyecto", + "Admin.ProjectCard.controls.editProject.label": "Editar proyecto", + "Admin.ProjectCard.controls.editProject.tooltip": "Editar proyecto", + "Admin.ProjectCard.controls.pinProject.label": "Anclar proyecto", + "Admin.ProjectCard.controls.unpinProject.label": "Desanclar proyecto", + "Admin.ProjectCard.tabs.challenges.label": "Desafíos", + "Admin.ProjectCard.tabs.details.label": "Detalles", + "Admin.ProjectCard.tabs.managers.label": "Administradores", "Admin.ProjectDashboard.controls.addChallenge.label": "Añadir desafío", + "Admin.ProjectDashboard.controls.delete.label": "Eliminar proyecto", + "Admin.ProjectDashboard.controls.edit.label": "Editar proyecto", "Admin.ProjectDashboard.controls.manageChallenges.label": "Gestionar desafíos", - "Admin.Project.fields.creationDate.label": "Creado:", - "Admin.Project.fields.lastModifiedDate.label": "Modificado:", - "Admin.Project.controls.delete.label": "Eliminar proyecto", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "¿Estás seguro? Ningún mapeador podrá descubrir desafíos en este proyecto.", - "Admin.Project.challengesUndiscoverable": "desafíos no detectables", - "ProjectPickerModal.chooseProject": "Elija un proyecto", - "ProjectPickerModal.noProjects": "No se encontraron proyectos.", - "Admin.ProjectsDashboard.newProject": "Agregar proyecto", + "Admin.ProjectManagers.addManager": "Agregar administrador de proyecto", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nombre de usuario de OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Nombre del equipo", + "Admin.ProjectManagers.controls.removeManager.confirmation": "¿Está seguro de que desea eliminar a este administrador del proyecto?", + "Admin.ProjectManagers.controls.removeManager.label": "Eliminar administrador", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Elegir rol", + "Admin.ProjectManagers.noManagers": "Sin administradores", + "Admin.ProjectManagers.options.teams.label": "Equipo", + "Admin.ProjectManagers.options.users.label": "Usuario", + "Admin.ProjectManagers.projectOwner": "Propietario", + "Admin.ProjectManagers.team.indicator": "Equipo", "Admin.ProjectsDashboard.help.info": "Los proyectos sirven como un medio para agrupar desafíos relacionados. Todos los desafíos deben pertenecer a un proyecto.", - "Admin.ProjectsDashboard.search.placeholder": "Nombre del proyecto o desafío", - "Admin.Project.controls.addChallenge.tooltip": "Nuevo reto", + "Admin.ProjectsDashboard.newProject": "Agregar proyecto", "Admin.ProjectsDashboard.regenerateHomeProject": "Cierre sesión y vuelva a iniciar sesión para regenerar un nuevo proyecto.", - "RebuildTasksControl.label": "Reconstruir tareas", - "RebuildTasksControl.modal.title": "Reconstruir tareas de desafío", - "RebuildTasksControl.modal.intro.overpass": "La reconstrucción volverá a ejecutar la consulta Overpass y reconstruirá las tareas de desafío con los datos más recientes:", - "RebuildTasksControl.modal.intro.remote": "La reconstrucción volverá a descargar los datos de GeoJSON desde la URL remota del desafío y reconstruirá las tareas del desafío con los datos más recientes:", - "RebuildTasksControl.modal.intro.local": "La reconstrucción le permitirá cargar un nuevo archivo local con los últimos datos de GeoJSON y reconstruir las tareas de desafío:", - "RebuildTasksControl.modal.explanation": "* Las tareas existentes incluidas en los últimos datos se actualizarán\n* Se agregarán nuevas tareas\n* Si elige eliminar primero las tareas incompletas (a continuación), las tareas __incompletas__ existentes se eliminarán primero\n* Si no elimina primero tareas incompletas, se dejarán como están, posiblemente dejando tareas que ya se han abordado fuera de MapRoulette", - "RebuildTasksControl.modal.warning": "Advertencia: la reconstrucción puede conducir a la duplicación de tareas si los identificadores de funciones no están configurados correctamente o si la coincidencia de datos antiguos con datos nuevos no tiene éxito. ¡Esta operación no se puede deshacer!", - "RebuildTasksControl.modal.moreInfo": "[Más información](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "Primero elimine las tareas incompletas", - "RebuildTasksControl.modal.controls.cancel.label": "Cancelar", - "RebuildTasksControl.modal.controls.proceed.label": "Continuar", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Fecha de origen de los datos", - "StepNavigation.controls.cancel.label": "Cancelar", - "StepNavigation.controls.next.label": "Siguiente", - "StepNavigation.controls.prev.label": "Anterior", - "StepNavigation.controls.finish.label": "Finalizar", + "Admin.ProjectsDashboard.search.placeholder": "Nombre del proyecto o desafío", + "Admin.Task.controls.editTask.label": "Editar", + "Admin.Task.controls.editTask.tooltip": "Editar la tarea", + "Admin.Task.fields.name.label": "Tarea:", + "Admin.Task.fields.status.label": "Estado:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Miembro de un paquete de tareas", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Acciones", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comentarios", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Etiquetas", + "Admin.TaskAnalysisTable.controls.editTask.label": "Editar", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspeccionar", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Revisar", + "Admin.TaskAnalysisTable.controls.startTask.label": "Comenzar", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Múltiples tareas agrupadas", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Mostrado", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Seleccionado: {selectedCount} tareas", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Se muestra: {countShown} tareas", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Se muestra: {percentShown}% ({countShown}) de {countTotal} tareas", "Admin.TaskDeletingProgress.deletingTasks.header": "Eliminar tareas", "Admin.TaskDeletingProgress.tasksDeleting.label": "tareas eliminadas", - "Admin.TaskPropertyStyleRules.styles.header": "Estilo de propiedad de tarea", - "Admin.TaskPropertyStyleRules.deleteRule": "Eliminar regla", - "Admin.TaskPropertyStyleRules.addRule": "Agregar otra regla", + "Admin.TaskInspect.controls.editTask.label": "Editar tarea", + "Admin.TaskInspect.controls.modifyTask.label": "Modificar tarea", + "Admin.TaskInspect.controls.nextTask.label": "Siguiente tarea", + "Admin.TaskInspect.controls.previousTask.label": "Tarea previa", + "Admin.TaskInspect.readonly.message": "Vista previa de tareas en modo de solo lectura", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Añadir", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Añadir otro estilo", + "Admin.TaskPropertyStyleRules.addRule": "Agregar otra regla", + "Admin.TaskPropertyStyleRules.deleteRule": "Eliminar regla", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Eliminar estilo", "Admin.TaskPropertyStyleRules.styleName": "Nombre de estilo", "Admin.TaskPropertyStyleRules.styleValue": "Valor de estilo", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "valor", - "Admin.TaskUploadProgress.uploadingTasks.header": "Construyendo tareas", + "Admin.TaskPropertyStyleRules.styles.header": "Estilo de propiedad de tarea", + "Admin.TaskReview.controls.approved": "Aprobar", + "Admin.TaskReview.controls.approvedWithFixes": "Aprobar (con correcciones)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Estado de revisión:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Estado de la tarea:", + "Admin.TaskReview.controls.rejected": "Rechazar", + "Admin.TaskReview.controls.resubmit": "Enviar para revisión nuevamente", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Esta tarea está siendo revisada por otra persona.", + "Admin.TaskReview.controls.reviewNotRequested": "No se ha solicitado una revisión para esta tarea.", + "Admin.TaskReview.controls.skipReview": "Saltar revisión", + "Admin.TaskReview.controls.startReview": "Iniciar revisión", + "Admin.TaskReview.controls.taskNotCompleted": "Esta tarea no está lista para su revisión, ya que aún no se ha completado.", + "Admin.TaskReview.controls.taskTags.label": "Etiquetas:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Actualizar estado de revisión", + "Admin.TaskReview.controls.userNotReviewer": "Actualmente no está configurado como revisor. Para convertirse en un revisor, puede hacerlo visitando su configuración de usuario.", + "Admin.TaskReview.reviewerIsMapper": "No puede revisar las tareas que asignó.", "Admin.TaskUploadProgress.tasksUploaded.label": "tareas cargadas", - "Admin.Challenge.tasksBuilding": "Construyendo tareas...", - "Admin.Challenge.tasksFailed": "Tareas que no se pudieron construir", - "Admin.Challenge.tasksNone": "Sin tareas", - "Admin.Challenge.tasksCreatedCount": "tareas creadas hasta ahora.", - "Admin.Challenge.totalCreationTime": "Tiempo total transcurrido:", - "Admin.Challenge.controls.refreshStatus.label": "Refrescando estado en", - "Admin.ManageTasks.header": "Tareas", - "Admin.ManageTasks.geographicIndexingNotice": "Tenga en cuenta que puede llevar hasta {delay} horas indexar geográficamente desafíos nuevos o modificados. Es posible que su desafío (y tareas) no aparezcan como se esperaba en la exploración o búsquedas específicas de la ubicación hasta que se complete la indexación.", - "Admin.manageTasks.controls.changePriority.label": "Cambiar prioridad", - "Admin.manageTasks.priorityLabel": "Prioridad", - "Admin.manageTasks.controls.clearFilters.label": "Borrar filtros", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspeccionar tarea", - "Admin.ChallengeTaskMap.controls.editTask.label": "Editar tarea", - "Admin.Task.fields.name.label": "Tarea:", - "Admin.Task.fields.status.label": "Estado:", - "Admin.VirtualProject.manageChallenge.label": "Gestionar desafíos", - "Admin.VirtualProject.controls.done.label": "Hecho", - "Admin.VirtualProject.controls.addChallenge.label": "Añadir desafío", + "Admin.TaskUploadProgress.uploadingTasks.header": "Construyendo tareas", "Admin.VirtualProject.ChallengeList.noChallenges": "Sin desafíos", "Admin.VirtualProject.ChallengeList.search.placeholder": "Buscar", - "Admin.VirtualProject.currentChallenges.label": "Desafíos en", - "Admin.VirtualProject.findChallenges.label": "Encontrar desafíos", "Admin.VirtualProject.controls.add.label": "Añadir", + "Admin.VirtualProject.controls.addChallenge.label": "Añadir desafío", + "Admin.VirtualProject.controls.done.label": "Hecho", "Admin.VirtualProject.controls.remove.label": "Eliminar", - "Widgets.BurndownChartWidget.label": "Diagrama de quemado", - "Widgets.BurndownChartWidget.title": "Tareas restantes: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Mapa de calor diario", - "Widgets.CalendarHeatmapWidget.title": "Mapa de calor diario: finalización de tareas", - "Widgets.ChallengeListWidget.label": "Desafíos", - "Widgets.ChallengeListWidget.title": "Desafíos", - "Widgets.ChallengeListWidget.search.placeholder": "Buscar", + "Admin.VirtualProject.currentChallenges.label": "Desafíos en", + "Admin.VirtualProject.findChallenges.label": "Encontrar desafíos", + "Admin.VirtualProject.manageChallenge.label": "Gestionar desafíos", + "Admin.fields.completedDuration.label": "Tiempo de finalización", + "Admin.fields.reviewDuration.label": "Tiempo de revisión", + "Admin.fields.reviewedAt.label": "Revisado en", + "Admin.manage.header": "Crear y administrar", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Exportar CSV", - "Widgets.ChallengeOverviewWidget.label": "Resumen del desafío", - "Widgets.ChallengeOverviewWidget.title": "Visión general", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Creado:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modificado:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tareas actualizadas:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tareas de:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tareas creadas en {refreshDate} a partir de datos obtenidos en {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Estado:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Palabras clave:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "proyecto no visible", - "Widgets.ChallengeTasksWidget.label": "Tareas", - "Widgets.ChallengeTasksWidget.title": "Tareas", - "Widgets.CommentsWidget.label": "Comentarios", - "Widgets.CommentsWidget.title": "Comentarios", - "Widgets.CommentsWidget.controls.export.label": "Exportar", - "Widgets.LeaderboardWidget.label": "Tabla de clasificación", - "Widgets.LeaderboardWidget.title": "Tabla de clasificación", - "Widgets.ProjectAboutWidget.label": "Sobre proyectos", - "Widgets.ProjectAboutWidget.title": "Sobre proyectos", - "Widgets.ProjectAboutWidget.content": "Los proyectos sirven como un medio para agrupar desafíos relacionados. Todos los desafíos deben pertenecer a un proyecto. Puede crear tantos proyectos como sea necesario para organizar sus desafíos y puede invitar a otros usuarios de MapRoulette para que los ayuden a administrar con usted. Los proyectos deben configurarse como visibles antes de cualquier los desafíos dentro de ellos aparecerán\nen la navegación o búsqueda pública.", - "Widgets.ProjectListWidget.label": "Lista de proyectos", - "Widgets.ProjectListWidget.title": "Proyectos", - "Widgets.ProjectListWidget.search.placeholder": "Buscar", - "Widgets.ProjectManagersWidget.label": "Administradores de proyecto", - "Admin.ProjectManagers.noManagers": "Sin administradores", - "Admin.ProjectManagers.addManager": "Agregar administrador de proyecto", - "Admin.ProjectManagers.projectOwner": "Propietario", - "Admin.ProjectManagers.controls.removeManager.label": "Eliminar administrador", - "Admin.ProjectManagers.controls.removeManager.confirmation": "¿Está seguro de que desea eliminar a este administrador del proyecto?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Elegir rol", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nombre de usuario de OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Nombre del equipo", - "Admin.ProjectManagers.options.teams.label": "Equipo", - "Admin.ProjectManagers.options.users.label": "Usuario", - "Admin.ProjectManagers.team.indicator": "Equipo", - "Widgets.ProjectOverviewWidget.label": "Visión general", - "Widgets.ProjectOverviewWidget.title": "Visión general", - "Widgets.RecentActivityWidget.label": "Actividad reciente", - "Widgets.RecentActivityWidget.title": "Actividad reciente", - "Widgets.StatusRadarWidget.label": "Radar de estado", - "Widgets.StatusRadarWidget.title": "Distribución del estado de finalización", - "Metrics.tasks.evaluatedByUser.label": "Tareas evaluadas por los usuarios", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Seleccionar tareas", + "Admin.manageTasks.controls.changePriority.label": "Cambiar prioridad", + "Admin.manageTasks.controls.changeReviewStatus.label": "Eliminar de la cola de revisión", + "Admin.manageTasks.controls.changeStatusTo.label": "Cambiar estado a", + "Admin.manageTasks.controls.chooseStatus.label": "Elegir ...", + "Admin.manageTasks.controls.clearFilters.label": "Borrar filtros", + "Admin.manageTasks.controls.configureColumns.label": "Configurar columnas", + "Admin.manageTasks.controls.exportCSV.label": "Exportar CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Exportar GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Exportar CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Ocultar columnas de revisión", + "Admin.manageTasks.controls.showReviewColumns.label": "Mostrar columnas de revisión", + "Admin.manageTasks.priorityLabel": "Prioridad", "AutosuggestTextBox.labels.noResults": "No hay coincidencias", - "Form.textUpload.prompt": "Suelte el archivo GeoJSON aquí o haga clic para seleccionar el archivo", - "Form.textUpload.readonly": "Se usará el archivo existente", - "Form.controls.addPriorityRule.label": "Agregar una regla", - "Form.controls.addMustachePreview.note": "Nota: todas las etiquetas de propiedad de llave se evalúan para vaciarse en la vista previa.", + "BoundsSelectorModal.control.dismiss.label": "Seleccionar límites", + "BoundsSelectorModal.header": "Seleccionar límites", + "BoundsSelectorModal.primaryMessage": "Resalte los límites que le gustaría seleccionar.", + "BurndownChart.heading": "Tareas restantes: {taskCount, number}", + "BurndownChart.tooltip": "Tareas restantes", + "CalendarHeatmap.heading": "Mapa de calor diario: finalización de tareas", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Personalizado", + "Challenge.basemap.none": "Ninguno", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Limpiar filtros", + "Challenge.controls.loadMore.label": "Más resultados", + "Challenge.controls.save.label": "Guardar", + "Challenge.controls.start.label": "Comenzar", + "Challenge.controls.taskLoadBy.label": "Cargar tareas por:", + "Challenge.controls.unsave.label": "No guardar", + "Challenge.controls.unsave.tooltip": "Quitar desafío de favoritos", + "Challenge.cooperativeType.changeFile": "Cooperativa", + "Challenge.cooperativeType.none": "Ninguna", + "Challenge.cooperativeType.tags": "Arreglar etiqueta", + "Challenge.difficulty.any": "Cualquiera", + "Challenge.difficulty.easy": "Fácil", + "Challenge.difficulty.expert": "Experto", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Dificultad", "Challenge.fields.lastTaskRefresh.label": "Tareas de", "Challenge.fields.viewLeaderboard.label": "Ver tabla de clasificación", "Challenge.fields.vpList.label": "También en la coincidencia virtual {count, plural, un {project} otros {projects}}:", - "Project.fields.viewLeaderboard.label": "Ver tabla de clasificación", - "Project.indicator.label": "Proyecto", - "ChallengeDetails.controls.goBack.label": "Regresar", - "ChallengeDetails.controls.start.label": "Comenzar", + "Challenge.keywords.any": "Cualquier cosa", + "Challenge.keywords.buildings": "Edificios", + "Challenge.keywords.landUse": "Uso de la tierra / Límites administrativos", + "Challenge.keywords.navigation": "Carreteras / Peatonales / Ciclovías", + "Challenge.keywords.other": "Otro", + "Challenge.keywords.pointsOfInterest": "Puntos / Áreas de interés", + "Challenge.keywords.transit": "Transporte público", + "Challenge.keywords.water": "Agua", + "Challenge.location.any": "En cualquier sitio", + "Challenge.location.intersectingMapBounds": "Mostrado en el mapa", + "Challenge.location.nearMe": "Cerca de mí", + "Challenge.location.withinMapBounds": "Dentro de los límites del mapa", + "Challenge.management.controls.manage.label": "Gestionar", + "Challenge.results.heading": "Desafíos", + "Challenge.results.noResults": "No hay resultados", + "Challenge.signIn.label": "Iniciar sesión para empezar", + "Challenge.sort.cooperativeWork": "Cooperativa", + "Challenge.sort.created": "El más nuevo", + "Challenge.sort.default": "Predeterminado", + "Challenge.sort.name": "Nombre", + "Challenge.sort.oldest": "Más antiguo", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Edificio", + "Challenge.status.deletingTasks": "Eliminar tareas", + "Challenge.status.failed": "Ha fallado", + "Challenge.status.finished": "Terminado", + "Challenge.status.none": "No aplica", + "Challenge.status.partiallyLoaded": "Parcialmente cargado", + "Challenge.status.ready": "Listo", + "Challenge.type.challenge": "Desafío", + "Challenge.type.survey": "Encuesta", + "ChallengeCard.controls.visibilityToggle.tooltip": "Alternar la visibilidad del desafío", + "ChallengeCard.totalTasks": "Tareas totales", + "ChallengeDetails.Task.fields.featured.label": "Destacados", "ChallengeDetails.controls.favorite.label": "Favorito", "ChallengeDetails.controls.favorite.tooltip": "Guardar en favoritos", + "ChallengeDetails.controls.goBack.label": "Regresar", + "ChallengeDetails.controls.start.label": "Comenzar", "ChallengeDetails.controls.unfavorite.label": "Quitar de favoritos", "ChallengeDetails.controls.unfavorite.tooltip": "Quitar de favoritos", - "ChallengeDetails.management.controls.manage.label": "Gestionar", - "ChallengeDetails.Task.fields.featured.label": "Destacados", "ChallengeDetails.fields.difficulty.label": "Dificultad", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tareas de", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tareas creadas en {refreshDate} a partir de datos obtenidos en {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tareas de", "ChallengeDetails.fields.viewLeaderboard.label": "Ver tabla de clasificación", "ChallengeDetails.fields.viewReviews.label": "Revisar", + "ChallengeDetails.management.controls.manage.label": "Gestionar", + "ChallengeEndModal.control.dismiss.label": "Seguir", "ChallengeEndModal.header": "Fin del desafío", "ChallengeEndModal.primaryMessage": "Ha marcado todas las tareas restantes en este desafío como omitidas o demasiado difíciles.", - "ChallengeEndModal.control.dismiss.label": "Seguir", - "Task.controls.contactOwner.label": "Contactar al propietario", - "Task.controls.contactLink.label": "Escriba al {owner} a través de OSM", - "ChallengeFilterSubnav.header": "Desafíos", + "ChallengeFilterSubnav.controls.sortBy.label": "Ordenar por", "ChallengeFilterSubnav.filter.difficulty.label": "Dificultad", "ChallengeFilterSubnav.filter.keyword.label": "Trabajar en", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Otro:", "ChallengeFilterSubnav.filter.location.label": "Ubicación", "ChallengeFilterSubnav.filter.search.label": "Buscar por nombre", - "Challenge.controls.clearFilters.label": "Limpiar filtros", - "ChallengeFilterSubnav.controls.sortBy.label": "Ordenar por", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Otro:", - "Challenge.controls.unsave.label": "No guardar", - "Challenge.controls.save.label": "Guardar", - "Challenge.controls.start.label": "Comenzar", - "Challenge.management.controls.manage.label": "Gestionar", - "Challenge.signIn.label": "Iniciar sesión para empezar", - "Challenge.results.heading": "Desafíos", - "Challenge.results.noResults": "No hay resultados", - "VirtualChallenge.controls.tooMany.label": "Acercar para trabajar en tareas asignadas", - "VirtualChallenge.controls.tooMany.tooltip": "Se pueden incluir {maxTasks, number} como mucho en un desafío \"virtual\"", - "VirtualChallenge.controls.create.label": "Trabajar en {taskCount, number} tareas mapeadas", - "VirtualChallenge.fields.name.label": "Nombra tu desafío \"virtual\"", - "Challenge.controls.loadMore.label": "Más resultados", + "ChallengeFilterSubnav.header": "Desafíos", + "ChallengeFilterSubnav.query.searchType.challenge": "Desafíos", + "ChallengeFilterSubnav.query.searchType.project": "Proyectos", "ChallengePane.controls.startChallenge.label": "Iniciar desafío", - "Task.fauxStatus.available": "Disponible", - "ChallengeProgress.tooltip.label": "Tareas", - "ChallengeProgress.tasks.remaining": "Tareas restantes: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "de {totalCount, number}", - "ChallengeProgress.priority.toggle": "Ver por prioridad de tarea", - "ChallengeProgress.priority.label": "{priority} Tareas prioritarias", - "ChallengeProgress.reviewStatus.label": "Revisar estado", "ChallengeProgress.metrics.averageTime.label": "Tiempo promedio por tarea:", "ChallengeProgress.metrics.excludesSkip.label": "(excluidas las tareas omitidas)", + "ChallengeProgress.priority.label": "{priority} Tareas prioritarias", + "ChallengeProgress.priority.toggle": "Ver por prioridad de tarea", + "ChallengeProgress.reviewStatus.label": "Revisar estado", + "ChallengeProgress.tasks.remaining": "Tareas restantes: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": "de {totalCount, number}", + "ChallengeProgress.tooltip.label": "Tareas", + "ChallengeProgressBorder.available": "Disponible", "CommentList.controls.viewTask.label": "Ver tarea", "CommentList.noComments.label": "Sin comentarios", - "ConfigureColumnsModal.header": "Elija columnas para mostrar", + "CompletionRadar.heading": "Tareas completadas: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Columnas disponibles", - "ConfigureColumnsModal.showingColumns.header": "Columnas mostradas", "ConfigureColumnsModal.controls.add": "Añadir", - "ConfigureColumnsModal.controls.remove": "Eliminar", "ConfigureColumnsModal.controls.done.label": "Hecho", - "ConfirmAction.title": "¿Está seguro?", - "ConfirmAction.prompt": "Esta acción no se puede deshacer", + "ConfigureColumnsModal.controls.remove": "Eliminar", + "ConfigureColumnsModal.header": "Elija columnas para mostrar", + "ConfigureColumnsModal.showingColumns.header": "Columnas mostradas", "ConfirmAction.cancel": "Cancelar", "ConfirmAction.proceed": "Continuar", + "ConfirmAction.prompt": "Esta acción no se puede deshacer", + "ConfirmAction.title": "¿Está seguro?", + "CongratulateModal.control.dismiss.label": "Seguir", "CongratulateModal.header": "¡Felicidades!", "CongratulateModal.primaryMessage": "El desafío está completo.", - "CongratulateModal.control.dismiss.label": "Seguir", - "CountryName.ALL": "Todos los países", + "CooperativeWorkControls.controls.confirm.label": "Sí", + "CooperativeWorkControls.controls.moreOptions.label": "Otro", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "¿Son correctos los cambios de etiqueta OSM propuestos?", + "CountryName.AE": "Emiratos Árabes Unidos", "CountryName.AF": "Afganistán", - "CountryName.AO": "Angola", "CountryName.AL": "Albania", - "CountryName.AE": "Emiratos Árabes Unidos", - "CountryName.AR": "Argentina", + "CountryName.ALL": "Todos los países", "CountryName.AM": "Armenia", + "CountryName.AO": "Angola", "CountryName.AQ": "Antártida", - "CountryName.TF": "Territorios Australes Franceses", - "CountryName.AU": "Australia", + "CountryName.AR": "Argentina", "CountryName.AT": "Austria", + "CountryName.AU": "Australia", "CountryName.AZ": "Azerbaiyán", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosnia y Herzegovina", + "CountryName.BD": "Bangladesh", "CountryName.BE": "Bélgica", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesh", "CountryName.BG": "Bulgaria", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bosnia y Herzegovina", - "CountryName.BY": "Bielorrusia", - "CountryName.BZ": "Belice", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunei", "CountryName.BO": "Bolivia", "CountryName.BR": "Brasil", - "CountryName.BN": "Brunei", + "CountryName.BS": "Bahamas", "CountryName.BT": "Bután", "CountryName.BW": "Botsuana", - "CountryName.CF": "República Centroafricana", + "CountryName.BY": "Bielorrusia", + "CountryName.BZ": "Belice", "CountryName.CA": "Canadá", + "CountryName.CD": "Congo (Kinshasa)", + "CountryName.CF": "República Centroafricana", + "CountryName.CG": "Congo (Brazzaville)", "CountryName.CH": "Suiza", - "CountryName.CL": "Chile", - "CountryName.CN": "China", "CountryName.CI": "Costa de Marfil", + "CountryName.CL": "Chile", "CountryName.CM": "Camerún", - "CountryName.CD": "Congo (Kinshasa)", - "CountryName.CG": "Congo (Brazzaville)", + "CountryName.CN": "China", "CountryName.CO": "Colombia", "CountryName.CR": "Costa Rica", "CountryName.CU": "Cuba", @@ -415,10 +485,10 @@ "CountryName.DO": "República Dominicana", "CountryName.DZ": "Argelia", "CountryName.EC": "Ecuador", + "CountryName.EE": "Estonia", "CountryName.EG": "Egipto", "CountryName.ER": "Eritrea", "CountryName.ES": "España", - "CountryName.EE": "Estonia", "CountryName.ET": "Etiopía", "CountryName.FI": "Finlandia", "CountryName.FJ": "Fiyi", @@ -428,57 +498,58 @@ "CountryName.GB": "Reino Unido", "CountryName.GE": "Georgia", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinea", + "CountryName.GL": "Groenlandia", "CountryName.GM": "Gambia", - "CountryName.GW": "Guinea Bissau", + "CountryName.GN": "Guinea", "CountryName.GQ": "Guinea Ecuatorial", "CountryName.GR": "Grecia", - "CountryName.GL": "Groenlandia", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinea Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Croacia", "CountryName.HT": "Haití", "CountryName.HU": "Hungría", "CountryName.ID": "Indonesia", - "CountryName.IN": "India", "CountryName.IE": "Irlanda", - "CountryName.IR": "Irán", + "CountryName.IL": "Israel", + "CountryName.IN": "India", "CountryName.IQ": "Irak", + "CountryName.IR": "Irán", "CountryName.IS": "Islandia", - "CountryName.IL": "Israel", "CountryName.IT": "Italia", "CountryName.JM": "Jamaica", "CountryName.JO": "Jordania", "CountryName.JP": "Japón", - "CountryName.KZ": "Kazajstán", "CountryName.KE": "Kenia", "CountryName.KG": "Kirguistán", "CountryName.KH": "Camboya", + "CountryName.KP": "Corea del Norte", "CountryName.KR": "Corea del Sur", "CountryName.KW": "Kuwait", + "CountryName.KZ": "Kazajstán", "CountryName.LA": "Laos", "CountryName.LB": "Líbano", - "CountryName.LR": "Liberia", - "CountryName.LY": "Libia", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Liberia", "CountryName.LS": "Lesoto", "CountryName.LT": "Lituania", "CountryName.LU": "Luxemburgo", "CountryName.LV": "Letonia", + "CountryName.LY": "Libia", "CountryName.MA": "Marruecos", "CountryName.MD": "Moldavia", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagascar", - "CountryName.MX": "México", "CountryName.MK": "Macedonia", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar (Birmania)", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongolia", - "CountryName.MZ": "Mozambique", "CountryName.MR": "Mauritania", "CountryName.MW": "Malaui", + "CountryName.MX": "México", "CountryName.MY": "Malasia", + "CountryName.MZ": "Mozambique", "CountryName.NA": "Namibia", "CountryName.NC": "Nueva Caledonia", "CountryName.NE": "Níger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "Nueva Zelanda", "CountryName.OM": "Omán", - "CountryName.PK": "Pakistán", "CountryName.PA": "Panamá", "CountryName.PE": "Perú", - "CountryName.PH": "Filipinas", "CountryName.PG": "Papúa Nueva Guinea", + "CountryName.PH": "Filipinas", + "CountryName.PK": "Pakistán", "CountryName.PL": "Polonia", "CountryName.PR": "Puerto Rico", - "CountryName.KP": "Corea del Norte", + "CountryName.PS": "Territorios Palestinos", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Katar", "CountryName.RO": "Rumania", + "CountryName.RS": "Serbia", "CountryName.RU": "Rusia", "CountryName.RW": "Ruanda", "CountryName.SA": "Arabia Saudita", - "CountryName.SD": "Sudán", - "CountryName.SS": "Sudán del Sur", - "CountryName.SN": "Senegal", "CountryName.SB": "Islas Salomón", + "CountryName.SD": "Sudán", + "CountryName.SE": "Suecia", + "CountryName.SI": "Eslovenia", + "CountryName.SK": "Eslovaquia", "CountryName.SL": "Sierra Leona", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somalia", - "CountryName.RS": "Serbia", "CountryName.SR": "Surinam", - "CountryName.SK": "Eslovaquia", - "CountryName.SI": "Eslovenia", - "CountryName.SE": "Suecia", - "CountryName.SZ": "Swazilandia", + "CountryName.SS": "Sudán del Sur", + "CountryName.SV": "El Salvador", "CountryName.SY": "Siria", + "CountryName.SZ": "Swazilandia", "CountryName.TD": "Chad", + "CountryName.TF": "Territorios Australes Franceses", "CountryName.TG": "Togo", "CountryName.TH": "Tailandia", "CountryName.TJ": "Tayikistán", - "CountryName.TM": "Turkmenistán", "CountryName.TL": "Timor Oriental", - "CountryName.TT": "Trinidad y Tobago", + "CountryName.TM": "Turkmenistán", "CountryName.TN": "Túnez", "CountryName.TR": "Turquía", + "CountryName.TT": "Trinidad y Tobago", "CountryName.TW": "Taiwán", "CountryName.TZ": "Tanzania", - "CountryName.UG": "Uganda", "CountryName.UA": "Ucrania", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "Estados Unidos", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Uzbekistán", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Territorios Palestinos", "CountryName.YE": "Yemen", "CountryName.ZA": "Sudáfrica", "CountryName.ZM": "Zambia", "CountryName.ZW": "Zimbabue", - "FitBoundsControl.tooltip": "Ajustar mapa a los elementos de la tarea", - "LayerToggle.controls.showTaskFeatures.label": "Elementos de la tarea", - "LayerToggle.controls.showOSMData.label": "Datos OSM", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "Más", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} otras {# images}})", - "LayerToggle.loading": "(cargando...)", - "PropertyList.title": "Propiedades", - "PropertyList.noProperties": "Sin propiedades", - "EnhancedMap.SearchControl.searchLabel": "Buscar", - "EnhancedMap.SearchControl.noResults": "No hay resultados", - "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Consulta Nominatim", - "ErrorModal.title": "¡Uy!", - "FeaturedChallenges.header": "Aspectos destacados del desafío", - "FeaturedChallenges.noFeatured": "Nada destacado actualmente", - "FeaturedChallenges.projectIndicator.label": "Proyecto", - "FeaturedChallenges.browse": "Explorar", - "FeatureStyleLegend.noStyles.label": "Este desafío no usa estilos personalizados", - "FeatureStyleLegend.comparators.contains.label": "contiene", - "FeatureStyleLegend.comparators.missing.label": "faltante", - "FeatureStyleLegend.comparators.exists.label": "existe", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Consiga ayuda", - "Footer.reportBug": "Reportar un error", - "Footer.joinNewsletter": "¡Únase al boletín!", - "Footer.followUs": "Síganos", - "Footer.email.placeholder": "Dirección de mail", - "Footer.email.submit.label": "Enviar", - "HelpPopout.control.label": "Ayuda", - "LayerSource.challengeDefault.label": "Desafío predeterminado", - "LayerSource.userDefault.label": "Su predeterminado", - "HomePane.header": "Sea un colaborador instantáneo de los mapas del mundo.", - "HomePane.feedback.header": "Realimentación", - "HomePane.filterTagIntro": "Encuentre tareas que aborden los esfuerzos importantes para usted.", - "HomePane.filterLocationIntro": "Haga arreglos en las áreas locales que le interesan.", - "HomePane.filterDifficultyIntro": "Trabaje a su propio nivel, desde principiante hasta experto.", + "Dashboard.ChallengeFilter.pinned.label": "Fijado", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Míos", + "Dashboard.ProjectFilter.pinned.label": "Fijado", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Tablero", + "Dashboard.header.completedTasks": "{completedTasks, number} tareas", + "Dashboard.header.completionPrompt": "Ha terminado", + "Dashboard.header.controls.findChallenge.label": "Descubra nuevos desafíos", + "Dashboard.header.controls.latestChallenge.label": "Lléveme al desafío", + "Dashboard.header.encouragement": "¡Siga así!", + "Dashboard.header.find": "o encontrar", + "Dashboard.header.getStarted": "¡Gane puntos completando tareas de desafío!", + "Dashboard.header.globalRank": "clasificado #{rank, number}", + "Dashboard.header.globally": "globalmente.", + "Dashboard.header.jumpBackIn": "¡Vuelver a entrar!", + "Dashboard.header.pointsPrompt": ", ganado", + "Dashboard.header.rankPrompt": ", y ha", + "Dashboard.header.resume": "Reanude su último desafío", + "Dashboard.header.somethingNew": "algo nuevo", + "Dashboard.header.userScore": "{points, number} puntos", + "Dashboard.header.welcomeBack": "Bienvenido de nuevo, {username}!", + "Editor.id.label": "Editar en iD (editor web)", + "Editor.josm.label": "Editar en JOSM", + "Editor.josmFeatures.label": "Editar solo elementos en JOSM", + "Editor.josmLayer.label": "Editar en nueva capa de JOSM", + "Editor.level0.label": "Editar en Level0", + "Editor.none.label": "Ninguno", + "Editor.rapid.label": "Editar en RapiD", + "EnhancedMap.SearchControl.noResults": "No hay resultados", + "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Consulta Nominatim", + "EnhancedMap.SearchControl.searchLabel": "Buscar", + "ErrorModal.title": "¡Uy!", + "Errors.boundedTask.fetchFailure": "No es posible recuperar tareas delimitadas por mapas", + "Errors.challenge.deleteFailure": "No se puede eliminar el desafío.", + "Errors.challenge.doesNotExist": "Ese desafío no existe.", + "Errors.challenge.fetchFailure": "No se pueden recuperar los últimos datos de desafío del servidor.", + "Errors.challenge.rebuildFailure": "No se pueden reconstruir las tareas de desafío", + "Errors.challenge.saveFailure": "No se pueden guardar los cambios {details}", + "Errors.challenge.searchFailure": "No se pueden buscar desafíos en el servidor.", + "Errors.clusteredTask.fetchFailure": "No se pueden recuperar grupos de tareas", + "Errors.josm.missingFeatureIds": "Los elementos de esta tarea no incluyen los identificadores OSM necesarios para abrirlos de forma independiente en JOSM. Por favor, elija otra opción de edición.", + "Errors.josm.noResponse": "El control remoto OSM no respondió. ¿Tiene JOSM ejecutándose con el control remoto habilitado?", + "Errors.leaderboard.fetchFailure": "No se puede obtener la tabla de clasificación.", + "Errors.map.placeNotFound": "No se han encontrado resultados por Nominatim.", + "Errors.map.renderFailure": "No se puede representar el mapa {details}. Intentando volver a la capa de mapa predeterminada.", + "Errors.mapillary.fetchFailure": "No se pueden recuperar datos de Mapillary", + "Errors.nominatim.fetchFailure": "No se pueden recuperar datos de Nominatim", + "Errors.openStreetCam.fetchFailure": "No se pueden recuperar datos de OpenStreetCam", + "Errors.osm.bandwidthExceeded": "Se ha excedido el ancho de banda permitido de OpenStreetMap", + "Errors.osm.elementMissing": "Elemento no encontrado en el servidor OpenStreetMap", + "Errors.osm.fetchFailure": "No se pueden recuperar datos de OpenStreetMap", + "Errors.osm.requestTooLarge": "Solicitud de datos de OpenStreetMap demasiado grande", + "Errors.project.deleteFailure": "No se puede eliminar el proyecto.", + "Errors.project.fetchFailure": "No se pueden recuperar los últimos datos del proyecto del servidor.", + "Errors.project.notManager": "Debe ser un administrador de ese proyecto para continuar.", + "Errors.project.saveFailure": "No se pueden guardar los cambios {details}", + "Errors.project.searchFailure": "No se puede buscar proyectos.", + "Errors.reviewTask.alreadyClaimed": "Esta tarea ya está siendo revisada por otra persona.", + "Errors.reviewTask.fetchFailure": "No se puede recuperar las tareas de revisión necesarias", + "Errors.reviewTask.notClaimedByYou": "No se puede cancelar la revisión.", + "Errors.task.alreadyLocked": "La tarea ya ha sido bloqueada por otra persona.", + "Errors.task.bundleFailure": "Incapaz de agrupar tareas juntas", + "Errors.task.deleteFailure": "No se puede eliminar la tarea.", + "Errors.task.doesNotExist": "Esa tarea no existe.", + "Errors.task.fetchFailure": "No se puede recuperar una tarea para trabajar.", + "Errors.task.lockRefreshFailure": "No se puede extender su bloqueo de tareas. Su bloqueo puede haber expirado. Recomendamos actualizar la página para intentar establecer un nuevo bloqueo.", + "Errors.task.none": "No quedan tareas en este desafío.", + "Errors.task.saveFailure": "No se pueden guardar los cambios {details}", + "Errors.task.updateFailure": "No se pueden guardar sus cambios.", + "Errors.team.genericFailure": "Falla {details}", + "Errors.user.fetchFailure": "No se pueden recuperar los datos del usuario del servidor.", + "Errors.user.genericFollowFailure": "Falla {details}", + "Errors.user.missingHomeLocation": "No se encontró la ubicación. Por favor, permita el permiso de su navegador o establezca la ubicación en la configuración de openstreetmap.org (puede cerrar sesión y volver a iniciar sesión en MapRoulette después para tomar los nuevos cambios en su configuración de OpenStreetMap).", + "Errors.user.notFound": "Ningún usuario encontrado con ese nombre de usuario.", + "Errors.user.unauthenticated": "Inicie sesión para continuar", + "Errors.user.unauthorized": "Lo sentimos, no estás autorizado para realizar esa acción.", + "Errors.user.updateFailure": "No se puede actualizar su usuario en el servidor.", + "Errors.virtualChallenge.createFailure": "No se puede crear un desafío virtual {details}", + "Errors.virtualChallenge.expired": "El desafío virtual ha expirado.", + "Errors.virtualChallenge.fetchFailure": "No se pueden recuperar los últimos datos de desafío virtual del servidor.", + "Errors.widgetWorkspace.importFailure": "No se puede importar el diseño {details}", + "Errors.widgetWorkspace.renderFailure": "No se puede representar el espacio de trabajo. Cambiar a un diseño de trabajo.", + "FeatureStyleLegend.comparators.contains.label": "contiene", + "FeatureStyleLegend.comparators.exists.label": "existe", + "FeatureStyleLegend.comparators.missing.label": "faltante", + "FeatureStyleLegend.noStyles.label": "Este desafío no usa estilos personalizados", + "FeaturedChallenges.browse": "Explorar", + "FeaturedChallenges.header": "Aspectos destacados del desafío", + "FeaturedChallenges.noFeatured": "Nada destacado actualmente", + "FeaturedChallenges.projectIndicator.label": "Proyecto", + "FitBoundsControl.tooltip": "Ajustar mapa a los elementos de la tarea", + "Followers.ViewFollowers.blockedHeader": "Seguidores bloqueados", + "Followers.ViewFollowers.followersNotAllowed": "No permite seguidores (esto se puede cambiar en su configuración de usuario)", + "Followers.ViewFollowers.header": "Sus seguidores", + "Followers.ViewFollowers.indicator.following": "Siguiendo", + "Followers.ViewFollowers.noBlockedFollowers": "No ha bloqueado a ningún seguidor", + "Followers.ViewFollowers.noFollowers": "Nadie le sigue", + "Followers.controls.block.label": "Bloquear", + "Followers.controls.followBack.label": "Seguir", + "Followers.controls.unblock.label": "Desbloquear", + "Following.Activity.controls.loadMore.label": "Cargar más", + "Following.ViewFollowing.header": "Está siguiendo", + "Following.ViewFollowing.notFollowing": "No sigues a nadie", + "Following.controls.stopFollowing.label": "Dejar de seguir", + "Footer.email.placeholder": "Dirección de mail", + "Footer.email.submit.label": "Enviar", + "Footer.followUs": "Síganos", + "Footer.getHelp": "Consiga ayuda", + "Footer.joinNewsletter": "¡Únase al boletín!", + "Footer.reportBug": "Reportar un error", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Nota: todas las etiquetas de propiedad de llave se evalúan para vaciarse en la vista previa.", + "Form.controls.addPriorityRule.label": "Agregar una regla", + "Form.textUpload.prompt": "Suelte el archivo GeoJSON aquí o haga clic para seleccionar el archivo", + "Form.textUpload.readonly": "Se usará el archivo existente", + "General.controls.moreResults.label": "Más resultados", + "GlobalActivity.title": "Actividad global", + "Grant.Role.admin": "Administración", + "Grant.Role.read": "Leer", + "Grant.Role.write": "Escribir", + "HelpPopout.control.label": "Ayuda", + "Home.Featured.browse": "Explorar", + "Home.Featured.header": "Desafíos destacados", "HomePane.createChallenges": "Cree tareas para otros para ayudar a mejorar los datos del mapa.", + "HomePane.feedback.header": "Realimentación", + "HomePane.filterDifficultyIntro": "Trabaje a su propio nivel, desde principiante hasta experto.", + "HomePane.filterLocationIntro": "Haga arreglos en las áreas locales que le interesan.", + "HomePane.filterTagIntro": "Encuentre tareas que aborden los esfuerzos importantes para usted.", + "HomePane.header": "Sea un colaborador de los mapas del mundo.", "HomePane.subheader": "Comenzar", - "Admin.TaskInspect.controls.previousTask.label": "Tarea previa", - "Admin.TaskInspect.controls.nextTask.label": "Siguiente tarea", - "Admin.TaskInspect.controls.editTask.label": "Editar tarea", - "Admin.TaskInspect.controls.modifyTask.label": "Modificar tarea", - "Admin.TaskInspect.readonly.message": "Vista previa de tareas en modo de solo lectura", + "Inbox.actions.openNotification.label": "Abrir", + "Inbox.challengeCompleteNotification.lead": "Se ha completado un desafío que administras.", + "Inbox.controls.deleteSelected.label": "Eliminar", + "Inbox.controls.groupByTask.label": "Agrupar por tarea", + "Inbox.controls.manageSubscriptions.label": "Administrar suscripciones", + "Inbox.controls.markSelectedRead.label": "Marcar como leído", + "Inbox.controls.refreshNotifications.label": "Actualizar", + "Inbox.followNotification.followed.lead": "¡Tiene un nuevo seguidor!", + "Inbox.header": "Notificaciones", + "Inbox.mentionNotification.lead": "Te han mencionado en un comentario:", + "Inbox.noNotifications": "Sin notificaciones", + "Inbox.notification.controls.deleteNotification.label": "Eliminar", + "Inbox.notification.controls.manageChallenge.label": "Administrar desafío", + "Inbox.notification.controls.reviewTask.label": "Tarea de revisión", + "Inbox.notification.controls.viewTask.label": "Ver tarea", + "Inbox.notification.controls.viewTeams.label": "Ver equipos", + "Inbox.reviewAgainNotification.lead": "El mapeador ha revisado su trabajo y está solicitando una revisión adicional.", + "Inbox.reviewApprovedNotification.lead": "¡Buenas noticias! Su trabajo de tarea ha sido revisado y aprobado.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Su trabajo de tarea ha sido aprobado (con algunas correcciones hechas por el revisor).", + "Inbox.reviewRejectedNotification.lead": "Después de una revisión de su tarea, el revisor ha determinado que necesita un trabajo adicional.", + "Inbox.tableHeaders.challengeName": "Desafío", + "Inbox.tableHeaders.controls": "Acciones", + "Inbox.tableHeaders.created": "Enviado", + "Inbox.tableHeaders.fromUsername": "Desde", + "Inbox.tableHeaders.isRead": "Leer", + "Inbox.tableHeaders.notificationType": "Tipo", + "Inbox.tableHeaders.taskId": "Tarea", + "Inbox.teamNotification.invited.lead": "¡Ha sido invitado a unirse a un equipo!", + "KeyMapping.layers.layerMapillary": "Alternar capa de Mapillary", + "KeyMapping.layers.layerOSMData": "Alternar capa de datos OSM", + "KeyMapping.layers.layerTaskFeatures": "Alternar capa de elementos", + "KeyMapping.openEditor.editId": "Editar en iD", + "KeyMapping.openEditor.editJosm": "Editar en JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Editar solo elementos en JOSM", + "KeyMapping.openEditor.editJosmLayer": "Editar en nueva capa de JOSM", + "KeyMapping.openEditor.editLevel0": "Editar en Level0", + "KeyMapping.openEditor.editRapid": "Editar en RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Ya estaba arreglado", + "KeyMapping.taskCompletion.confirmSubmit": "Enviar", + "KeyMapping.taskCompletion.falsePositive": "No es un problema", + "KeyMapping.taskCompletion.fixed": "¡Lo arreglé!", + "KeyMapping.taskCompletion.skip": "Omitir", + "KeyMapping.taskCompletion.tooHard": "Demasiado difícil / No pude verlo bien", + "KeyMapping.taskEditing.cancel": "Cancelar edición", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Ajustar mapa a los elementos de la tarea", + "KeyMapping.taskInspect.nextTask": "Siguiente tarea", + "KeyMapping.taskInspect.prevTask": "Tarea anterior", + "KeyboardShortcuts.control.label": "Atajos de teclado", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Agregar palabra clave", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filtrar etiquetas", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Elegir etiquetas", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filtrar etiquetas", "KeywordAutosuggestInput.controls.search.placeholder": "Buscar", - "General.controls.moreResults.label": "Más resultados", + "LayerSource.challengeDefault.label": "Desafío predeterminado", + "LayerSource.userDefault.label": "Su predeterminado", + "LayerToggle.controls.more.label": "Más", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "Datos OSM", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Límites de prioridad", + "LayerToggle.controls.showTaskFeatures.label": "Elementos de la tarea", + "LayerToggle.imageCount": "({count, plural, =0 {no images} otras {# images}})", + "LayerToggle.loading": "(cargando...)", + "Leaderboard.controls.loadMore.label": "Mostrar más", + "Leaderboard.global": "Global", + "Leaderboard.scoringMethod.explanation": "\n##### Los puntos se otorgan por tarea completada de la siguiente manera:\n\n| Estado | Puntos |\n| :------------ | -----: |\n| Arreglado | 5 |\n| No es un problema | 3 |\n| Ya estaba arreglado | 3 |\n| Demasiado difícil | 1 |\n| Omitido | 0 |\n", + "Leaderboard.scoringMethod.label": "Método de puntuación", + "Leaderboard.title": "Tabla de clasificación", + "Leaderboard.updatedDaily": "Actualizado cada 24 horas", + "Leaderboard.updatedFrequently": "Actualizado cada 15 minutos", + "Leaderboard.user.points": "Puntos", + "Leaderboard.user.topChallenges": "Principales desafíos", + "Leaderboard.users.none": "No hay usuarios por período de tiempo", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Checo - República Checa)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persa - Irán)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Holandés)", + "Locale.pt-BR.label": "pt-BR (Portugués brasileño)", + "Locale.ru-RU.label": "ru-RU (Ruso-Rusia)", + "Locale.uk.label": "uk (Ucraniano)", + "Metrics.completedTasksTitle": "Tareas completadas", + "Metrics.leaderboard.globalRank.label": "Posición Mundial", + "Metrics.leaderboard.topChallenges.label": "Principales desafíos", + "Metrics.leaderboard.totalPoints.label": "Puntos totales", + "Metrics.leaderboardTitle": "Tabla de clasificación", + "Metrics.reviewStats.approved.label": "Tareas revisadas que pasaron", + "Metrics.reviewStats.asReviewer.approved.label": "Tareas revisadas como aprobadas", + "Metrics.reviewStats.asReviewer.assisted.label": "Tareas revisadas como aprobadas con cambios", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tareas que necesitan un seguimiento", + "Metrics.reviewStats.asReviewer.disputed.label": "Tareas actualmente en disputa", + "Metrics.reviewStats.asReviewer.rejected.label": "Tareas revisadas como fallidas", + "Metrics.reviewStats.assisted.label": "Tareas revisadas que pasaron con cambios", + "Metrics.reviewStats.averageReviewTime.label": "Tiempo promedio de revisión:", + "Metrics.reviewStats.awaiting.label": "Tareas que están pendientes de revisión", + "Metrics.reviewStats.disputed.label": "Tareas revisadas que están siendo disputadas", + "Metrics.reviewStats.rejected.label": "Tareas que fallaron", + "Metrics.reviewedTasksTitle": "Revisar estado", + "Metrics.reviewedTasksTitle.asReviewer": "Tareas revisadas por {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tareas revisadas por usted", + "Metrics.tasks.evaluatedByUser.label": "Tareas evaluadas por los usuarios", + "Metrics.totalCompletedTasksTitle": "Total de tareas completadas", + "Metrics.userOptedOut": "Este usuario ha optado por no mostrar públicamente sus estadísticas.", + "Metrics.userSince": "Usuario desde:", "MobileNotSupported.header": "Visite en su computadora", "MobileNotSupported.message": "Lo sentimos, MapRoulette actualmente no es compatible con dispositivos móviles.", "MobileNotSupported.pageMessage": "Lo sentimos, esta página aún no es compatible con dispositivos móviles y pantallas más pequeñas.", "MobileNotSupported.widenDisplay": "Si usa una computadora, amplíe su ventana o use una pantalla más grande.", - "Navbar.links.dashboard": "Tablero", + "MobileTask.subheading.instructions": "Instrucciones", + "Navbar.links.admin": "Crear y administrar", "Navbar.links.challengeResults": "Encuentre desafíos", - "Navbar.links.leaderboard": "Tabla de clasificación", + "Navbar.links.dashboard": "Tablero", + "Navbar.links.globalActivity": "Actividad global", + "Navbar.links.help": "Aprender", "Navbar.links.inbox": "Bandeja de entrada", + "Navbar.links.leaderboard": "Tabla de clasificación", "Navbar.links.review": "Revisión", - "Navbar.links.admin": "Crear y administrar", - "Navbar.links.help": "Aprender", - "Navbar.links.userProfile": "Ajustes de usuario", - "Navbar.links.userMetrics": "Métricas de usuario", "Navbar.links.signout": "Cerrar sesión", - "PageNotFound.message": "¡Uy! La página que estás buscando se perdió.", + "Navbar.links.teams": "Equipos", + "Navbar.links.userMetrics": "Métricas de usuario", + "Navbar.links.userProfile": "Ajustes de usuario", + "Notification.type.challengeCompleted": "Completado", + "Notification.type.challengeCompletedLong": "Desafío completado", + "Notification.type.follow": "Seguir", + "Notification.type.mention": "Mencionar", + "Notification.type.review.again": "Revisar", + "Notification.type.review.approved": "Aprobado", + "Notification.type.review.rejected": "Modificar", + "Notification.type.system": "Sistema", + "Notification.type.team": "Equipo", "PageNotFound.homePage": "Llévame al inicio", - "PastDurationSelector.pastMonths.selectOption": "Último {months, plural, one {mes} =12 {año} other {# meses}}", - "PastDurationSelector.currentMonth.selectOption": "Mes actual", + "PageNotFound.message": "¡Uy! La página que estás buscando se perdió.", + "Pages.SignIn.modal.prompt": "Inicie sesión para continuar", + "Pages.SignIn.modal.title": "¡Bienvenido nuevamente!", "PastDurationSelector.allTime.selectOption": "Todo el tiempo", + "PastDurationSelector.currentMonth.selectOption": "Mes actual", + "PastDurationSelector.customRange.controls.search.label": "Buscar", + "PastDurationSelector.customRange.endDate": "Fecha final", "PastDurationSelector.customRange.selectOption": "Personalizado", "PastDurationSelector.customRange.startDate": "Fecha de inicio", - "PastDurationSelector.customRange.endDate": "Fecha final", - "PastDurationSelector.customRange.controls.search.label": "Buscar", + "PastDurationSelector.pastMonths.selectOption": "Último {months, plural, one {mes} =12 {año} other {# meses}}", "PointsTicker.label": "Mis puntos", "PopularChallenges.header": "Desafíos populares", "PopularChallenges.none": "Sin desafíos", - "ProjectDetails.controls.goBack.label": "Regresar", - "ProjectDetails.controls.unsave.label": "No guardar", - "ProjectDetails.controls.save.label": "Guardar", - "ProjectDetails.management.controls.manage.label": "Administrar", - "ProjectDetails.management.controls.start.label": "Comenzar", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} un {# challenge} otro {# challenges}} restante en {isVirtual, select, true {virtual } otro {}}proyecto", - "ProjectDetails.fields.featured.label": "Destacados", + "Profile.apiKey.controls.copy.label": "Copiar", + "Profile.apiKey.controls.reset.label": "Reiniciar", + "Profile.apiKey.header": "Clave API", + "Profile.form.allowFollowing.description": "Si no, los usuarios no podrán seguir su actividad MapRoulette.", + "Profile.form.allowFollowing.label": "Permitir seguimiento", + "Profile.form.customBasemap.description": "Inserte un mapa base personalizado aquí. Por ejemplo, `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Mapa base personalizado", + "Profile.form.defaultBasemap.description": "Seleccione el mapa base predeterminado para mostrar en el mapa. Solo un mapa base de desafío predeterminado anulará la opción seleccionada aquí.", + "Profile.form.defaultBasemap.label": "Mapa base predeterminado", + "Profile.form.defaultEditor.description": "Seleccione el editor predeterminado que desea usar al arreglar tareas. Al seleccionar esta opción, podrá omitir el cuadro de diálogo de selección del editor después de hacer clic en editar en una tarea.", + "Profile.form.defaultEditor.label": "Editor predeterminado", + "Profile.form.email.description": "Si solicita correos electrónicos en sus Suscripciones de notificaciones, se enviarán aquí.\n\nDecida qué notificaciones de MapRoulette desea recibir, junto con si desea recibir un correo electrónico informándole de la notificación (ya sea de forma inmediata o como resumen diario)", + "Profile.form.email.label": "Dirección de mail", + "Profile.form.isReviewer.description": "Voluntario para revisar tareas para las cuales se ha solicitado una revisión", + "Profile.form.isReviewer.label": "Voluntariado como revisor", + "Profile.form.leaderboardOptOut.description": "En caso afirmativo, **no** aparecerá en la tabla de clasificación pública.", + "Profile.form.leaderboardOptOut.label": "Salirse de la tabla de clasificación", + "Profile.form.locale.description": "Configuración regional de usuario para usar en la interfaz de usuario de MapRoulette.", + "Profile.form.locale.label": "Configuración regional", + "Profile.form.mandatory.label": "Obligatorio", + "Profile.form.needsReview.description": "Solicite automáticamente una revisión humana de cada tarea que complete", + "Profile.form.needsReview.label": "Solicitar revisión de todo el trabajo", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notificación", + "Profile.form.notificationSubscriptions.description": "Decida qué notificaciones de MapRoulette le gustaría recibir, junto con si desea recibir un correo electrónico informándole de la notificación (ya sea de forma inmediata o como resumen diario)", + "Profile.form.notificationSubscriptions.label": "Suscripciones a notificaciones", + "Profile.form.yes.label": "Sí", + "Profile.noUser": "Usuario no encontrado o no está autorizado para ver a este usuario.", + "Profile.page.title": "Ajustes de usuario", + "Profile.settings.header": "General", + "Profile.userSince": "Usuario desde:", + "Project.fields.viewLeaderboard.label": "Ver tabla de clasificación", + "Project.indicator.label": "Proyecto", + "ProjectDetails.controls.goBack.label": "Regresar", + "ProjectDetails.controls.save.label": "Guardar", + "ProjectDetails.controls.unsave.label": "No guardar", + "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} un {# challenge} otro {# challenges}} restante en {isVirtual, select, true {virtual} otro {}}proyecto", "ProjectDetails.fields.created.label": "Creado", + "ProjectDetails.fields.featured.label": "Destacados", "ProjectDetails.fields.modified.label": "Modificado", "ProjectDetails.fields.viewLeaderboard.label": "Ver tabla de clasificación", "ProjectDetails.fields.viewReviews.label": "Revisar", + "ProjectDetails.management.controls.manage.label": "Administrar", + "ProjectDetails.management.controls.start.label": "Comenzar", + "ProjectPickerModal.chooseProject": "Elija un proyecto", + "ProjectPickerModal.noProjects": "No se encontraron proyectos.", + "PropertyList.noProperties": "Sin propiedades", + "PropertyList.title": "Propiedades", "QuickWidget.failedToLoad": "Error del widget", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Actualizar estado de revisión", - "Admin.TaskReview.controls.currentTaskStatus.label": "Estado de la tarea:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Estado de revisión:", - "Admin.TaskReview.controls.taskTags.label": "Etiquetas:", - "Admin.TaskReview.controls.reviewNotRequested": "No se ha solicitado una revisión para esta tarea.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Esta tarea está siendo revisada por otra persona.", - "Admin.TaskReview.controls.userNotReviewer": "Actualmente no está configurado como revisor. Para convertirse en un revisor, puede hacerlo visitando su configuración de usuario.", - "Admin.TaskReview.reviewerIsMapper": "No puede revisar las tareas que asignó.", - "Admin.TaskReview.controls.taskNotCompleted": "Esta tarea no está lista para su revisión, ya que aún no se ha completado.", - "Admin.TaskReview.controls.approved": "Aprobar", - "Admin.TaskReview.controls.rejected": "Rechazar", - "Admin.TaskReview.controls.approvedWithFixes": "Aprobar (con correcciones)", - "Admin.TaskReview.controls.startReview": "Iniciar revisión", - "Admin.TaskReview.controls.skipReview": "Saltar revisión", - "Admin.TaskReview.controls.resubmit": "Enviar para revisión nuevamente", - "ReviewTaskPane.indicators.locked.label": "Tarea bloqueada", + "RebuildTasksControl.label": "Reconstruir tareas", + "RebuildTasksControl.modal.controls.cancel.label": "Cancelar", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Fecha de origen de los datos", + "RebuildTasksControl.modal.controls.proceed.label": "Continuar", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "Primero elimine las tareas incompletas", + "RebuildTasksControl.modal.explanation": "* Las tareas existentes incluidas en los últimos datos se actualizarán\n* Se agregarán nuevas tareas\n* Si elige eliminar primero las tareas incompletas (a continuación), las tareas __incompletas__ existentes se eliminarán primero\n* Si no elimina primero tareas incompletas, se dejarán como están, posiblemente dejando tareas que ya se han abordado fuera de MapRoulette", + "RebuildTasksControl.modal.intro.local": "La reconstrucción le permitirá cargar un nuevo archivo local con los últimos datos de GeoJSON y reconstruir las tareas de desafío:", + "RebuildTasksControl.modal.intro.overpass": "La reconstrucción volverá a ejecutar la consulta Overpass y reconstruirá las tareas de desafío con los datos más recientes:", + "RebuildTasksControl.modal.intro.remote": "La reconstrucción volverá a descargar los datos de GeoJSON desde la URL remota del desafío y reconstruirá las tareas del desafío con los datos más recientes:", + "RebuildTasksControl.modal.moreInfo": "[Más información](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Reconstruir tareas de desafío", + "RebuildTasksControl.modal.warning": "Advertencia: la reconstrucción puede conducir a la duplicación de tareas si los identificadores de funciones no están configurados correctamente o si la coincidencia de datos antiguos con datos nuevos no tiene éxito. ¡Esta operación no se puede deshacer!", + "Review.Dashboard.allReviewedTasks": "Todas las tareas relacionadas con la revisión", + "Review.Dashboard.goBack.label": "Reconfigurar revisiones", + "Review.Dashboard.myReviewTasks": "Mis tareas revisadas", + "Review.Dashboard.tasksReviewedByMe": "Tareas revisadas por mí", + "Review.Dashboard.tasksToBeReviewed": "Tareas a revisar", + "Review.Dashboard.volunteerAsReviewer.label": "Voluntario como revisor", + "Review.Task.fields.id.label": "ID interno", + "Review.TaskAnalysisTable.allReviewedTasks": "Todas las tareas relacionadas con la revisión", + "Review.TaskAnalysisTable.columnHeaders.actions": "Acciones", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comentarios", + "Review.TaskAnalysisTable.configureColumns": "Configurar columnas", + "Review.TaskAnalysisTable.controls.fixTask.label": "Arreglar", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolver", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Revisión de revisión", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Revisión", + "Review.TaskAnalysisTable.controls.viewTask.label": "Ver", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Excluir revisiones asignadas a otros", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Exportar CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Acciones", + "Review.TaskAnalysisTable.myReviewTasks": "Mis tareas asignadas después de la revisión", + "Review.TaskAnalysisTable.noTasks": "No se encontraron tareas", + "Review.TaskAnalysisTable.noTasksReviewed": "Ninguna de sus tareas asignadas ha sido revisada.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "No ha revisado ninguna tarea.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limitar a desafíos favoritos", + "Review.TaskAnalysisTable.refresh": "Actualizar", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Acciones", + "Review.TaskAnalysisTable.reviewerControls.label": "Acciones", + "Review.TaskAnalysisTable.startReviewing": "Revise estas tareas", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tareas revisadas por mí", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tareas a revisar", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Desafío", + "Review.fields.mappedOn.label": "Mapeado en", + "Review.fields.priority.label": "Prioridad", + "Review.fields.project.label": "Proyecto", + "Review.fields.requestedBy.label": "Mapeador", + "Review.fields.reviewStatus.label": "Estado de revisión", + "Review.fields.reviewedAt.label": "Revisado en", + "Review.fields.reviewedBy.label": "Revisor", + "Review.fields.status.label": "Estado", + "Review.fields.tags.label": "Etiquetas", + "Review.multipleTasks.tooltip": "Múltiples tareas agrupadas", + "Review.tableFilter.reviewByAllChallenges": "Todos los desafíos", + "Review.tableFilter.reviewByAllProjects": "Todos los proyectos", + "Review.tableFilter.reviewByChallenge": "Revisión por desafío", + "Review.tableFilter.reviewByProject": "Revisión por proyecto", + "Review.tableFilter.viewAllTasks": "Ver todas las tareas", + "Review.tablefilter.chooseFilter": "Eligir proyecto o desafío", + "ReviewMap.metrics.title": "Revisar mapa", + "ReviewStatus.metrics.alreadyFixed": "YA ESTABA ARREGLADO", + "ReviewStatus.metrics.approvedReview": "Tareas revisadas que pasaron", + "ReviewStatus.metrics.assistedReview": "Tareas revisadas que pasaron con correcciones", + "ReviewStatus.metrics.averageTime.label": "Tiempo promedio por revisión:", + "ReviewStatus.metrics.awaitingReview": "Tareas en espera de revisión", + "ReviewStatus.metrics.byTaskStatus.toggle": "Ver por estado de tarea", + "ReviewStatus.metrics.disputedReview": "Tareas revisadas que han sido impugnadas", + "ReviewStatus.metrics.falsePositive": "NO ES UN PROBLEMA", + "ReviewStatus.metrics.fixed": "ARREGLADO", + "ReviewStatus.metrics.priority.label": "{priority} tareas prioritarias", + "ReviewStatus.metrics.priority.toggle": "Ver por prioridad de tarea", + "ReviewStatus.metrics.rejectedReview": "Tareas revisadas que fallaron", + "ReviewStatus.metrics.taskStatus.label": "{status} Tareas", + "ReviewStatus.metrics.title": "Revisar estado", + "ReviewStatus.metrics.tooHard": "DEMASIADO DIFÍCIL", "ReviewTaskPane.controls.unlock.label": "Desbloquear", + "ReviewTaskPane.indicators.locked.label": "Tarea bloqueada", "RolePicker.chooseRole.label": "Elegir rol", - "UserProfile.favoriteChallenges.header": "Tus desafíos favoritos", - "Challenge.controls.unsave.tooltip": "Quitar desafío de favoritos", "SavedChallenges.widget.noChallenges": "Sin desafíos", "SavedChallenges.widget.startChallenge": "Iniciar desafío", - "UserProfile.savedTasks.header": "Tareas rastreadas", - "Task.unsave.control.tooltip": "Dejar de rastrear", "SavedTasks.widget.noTasks": "Sin tareas", "SavedTasks.widget.viewTask": "Ver tarea", "ScreenTooNarrow.header": "Amplíe la ventana de su navegador", "ScreenTooNarrow.message": "Esta página aún no es compatible con pantallas más pequeñas. Expanda la ventana de su navegador o cambie a un dispositivo o pantalla más grande.", - "ChallengeFilterSubnav.query.searchType.project": "Proyectos", - "ChallengeFilterSubnav.query.searchType.challenge": "Desafíos", "ShareLink.controls.copy.label": "Copiar", "SignIn.control.label": "Iniciar sesión", "SignIn.control.longLabel": "Iniciar sesión para empezar", - "TagDiffVisualization.justChangesHeader": "Cambios de etiqueta OSM propuestos", - "TagDiffVisualization.header": "Etiquetas OSM propuestas", - "TagDiffVisualization.current.label": "Actual", - "TagDiffVisualization.proposed.label": "Propuesto", - "TagDiffVisualization.noChanges": "Sin cambios de etiqueta", - "TagDiffVisualization.noChangeset": "No se cargará ningún conjunto de cambios", - "TagDiffVisualization.controls.tagList.tooltip": "Ver como lista de etiquetas", + "StartFollowing.controls.chooseOSMUser.placeholder": "Nombre de usuario de OpenStreetMap", + "StartFollowing.controls.follow.label": "Seguir", + "StartFollowing.header": "Seguir a un usuario", + "StepNavigation.controls.cancel.label": "Cancelar", + "StepNavigation.controls.finish.label": "Finalizar", + "StepNavigation.controls.next.label": "Siguiente", + "StepNavigation.controls.prev.label": "Anterior", + "Subscription.type.dailyEmail": "Reciba y envíe correos electrónicos diariamente", + "Subscription.type.ignore": "Ignorar", + "Subscription.type.immediateEmail": "Reciba y envíe un correo electrónico inmediatamente", + "Subscription.type.noEmail": "Reciba pero no envíe correos electrónicos", + "TagDiffVisualization.controls.addTag.label": "Añadir etiqueta", + "TagDiffVisualization.controls.cancelEdits.label": "Cancelar", "TagDiffVisualization.controls.changeset.tooltip": "Ver como conjunto de cambios OSM", + "TagDiffVisualization.controls.deleteTag.tooltip": "Eliminar etiqueta", "TagDiffVisualization.controls.editTags.tooltip": "Editar etiquetas", "TagDiffVisualization.controls.keepTag.label": "Mantener etiqueta", - "TagDiffVisualization.controls.addTag.label": "Añadir etiqueta", - "TagDiffVisualization.controls.deleteTag.tooltip": "Eliminar etiqueta", - "TagDiffVisualization.controls.saveEdits.label": "Hecho", - "TagDiffVisualization.controls.cancelEdits.label": "Cancelar", "TagDiffVisualization.controls.restoreFix.label": "Revertir ediciones", "TagDiffVisualization.controls.restoreFix.tooltip": "Restaurar etiquetas propuestas inicialmente", + "TagDiffVisualization.controls.saveEdits.label": "Hecho", + "TagDiffVisualization.controls.tagList.tooltip": "Ver como lista de etiquetas", "TagDiffVisualization.controls.tagName.placeholder": "Nombre de etiqueta", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Acciones", - "TasksTable.invert.abel": "invertir", - "TasksTable.inverted.label": "invertido", - "Task.fields.id.label": "ID interno", + "TagDiffVisualization.current.label": "Actual", + "TagDiffVisualization.header": "Etiquetas OSM propuestas", + "TagDiffVisualization.justChangesHeader": "Cambios de etiqueta OSM propuestos", + "TagDiffVisualization.noChanges": "Sin cambios de etiqueta", + "TagDiffVisualization.noChangeset": "No se cargará ningún conjunto de cambios", + "TagDiffVisualization.proposed.label": "Propuesto", + "Task.awaitingReview.label": "La tarea está pendiente de revisión.", + "Task.comments.comment.controls.submit.label": "Enviar", + "Task.controls.alreadyFixed.label": "Ya estaba arreglado", + "Task.controls.alreadyFixed.tooltip": "Ya estaba arreglado", + "Task.controls.cancelEditing.label": "Cancelar edición", + "Task.controls.completionComment.placeholder": "Su comentario", + "Task.controls.completionComment.preview.label": "Previsualizar", + "Task.controls.completionComment.write.label": "Escribir", + "Task.controls.contactLink.label": "Escriba al {owner} a través de OSM", + "Task.controls.contactOwner.label": "Contactar al propietario", + "Task.controls.edit.label": "Editar", + "Task.controls.edit.tooltip": "Editar", + "Task.controls.falsePositive.label": "No es un problema", + "Task.controls.falsePositive.tooltip": "No es un problema", + "Task.controls.fixed.label": "¡Lo arreglé!", + "Task.controls.fixed.tooltip": "¡Lo arreglé!", + "Task.controls.moreOptions.label": "Mas opciones", + "Task.controls.next.label": "Siguiente tarea", + "Task.controls.next.loadBy.label": "Cargar siguiente:", + "Task.controls.next.tooltip": "Siguiente tarea", + "Task.controls.nextNearby.label": "Seleccione la siguiente tarea cercana", + "Task.controls.revised.dispute": "No estoy de acuerdo con la reseña", + "Task.controls.revised.label": "Revisión completa", + "Task.controls.revised.resubmit": "Reenviar para revisión", + "Task.controls.revised.tooltip": "Revisión completa", + "Task.controls.skip.label": "Omitir", + "Task.controls.skip.tooltip": "Saltar tarea", + "Task.controls.step1.revisionNeeded": "Esta tarea necesita revisión. Asegúrese de revisar los comentarios para cualquier detalle.", + "Task.controls.tooHard.label": "Demasiado difícil / No pude verlo bien", + "Task.controls.tooHard.tooltip": "Demasiado difícil / No pude verlo bien", + "Task.controls.track.label": "Seguir esta tarea", + "Task.controls.untrack.label": "Dejar de seguir esta tarea", + "Task.controls.viewChangeset.label": "Ver conjunto de cambios", + "Task.fauxStatus.available": "Disponible", + "Task.fields.completedBy.label": "Completado por", "Task.fields.featureId.label": "ID de elemento", - "Task.fields.status.label": "Estado", - "Task.fields.priority.label": "Prioridad", + "Task.fields.id.label": "ID interno", "Task.fields.mappedOn.label": "Mapeado en", - "Task.fields.reviewStatus.label": "Estado de revisión", - "Task.fields.completedBy.label": "Completado por", - "Admin.fields.completedDuration.label": "Tiempo de finalización", + "Task.fields.priority.label": "Prioridad", "Task.fields.requestedBy.label": "Mapeador", + "Task.fields.reviewStatus.label": "Estado de revisión", "Task.fields.reviewedBy.label": "Revisor", - "Admin.fields.reviewedAt.label": "Revisado en", - "Admin.fields.reviewDuration.label": "Tiempo de revisión", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comentarios", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Etiquetas", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspeccionar", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Revisar", - "Admin.TaskAnalysisTable.controls.editTask.label": "Editar", - "Admin.TaskAnalysisTable.controls.startTask.label": "Comenzar", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Seleccionar tareas", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Se muestra: {countShown} tareas", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Seleccionado: {selectedCount} tareas", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Se muestra: {percentShown}% ({countShown}) de {countTotal} tareas", - "Admin.manageTasks.controls.changeStatusTo.label": "Cambiar estado a", - "Admin.manageTasks.controls.chooseStatus.label": "Escoger ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Eliminar de la cola de revisión", - "Admin.manageTasks.controls.showReviewColumns.label": "Mostrar columnas de revisión", - "Admin.manageTasks.controls.hideReviewColumns.label": "Ocultar columnas de revisión", - "Admin.manageTasks.controls.configureColumns.label": "Configurar columnas", - "Admin.manageTasks.controls.exportCSV.label": "Exportar CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Exportar GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Exportar CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Mostrado", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Múltiples tareas agrupadas", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Miembro de un paquete de tareas", - "ReviewMap.metrics.title": "Revisar mapa", - "TaskClusterMap.controls.clusterTasks.label": "Grupo", - "TaskClusterMap.message.zoomInForTasks.label": "Acercar para ver tareas", - "TaskClusterMap.message.nearMe.label": "Cerca de mí", - "TaskClusterMap.message.or.label": "o", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} una {# task found} otra {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Haga clic para mostrar tareas", - "Task.controls.completionComment.placeholder": "Su comentario", - "Task.comments.comment.controls.submit.label": "Enviar", - "Task.controls.completionComment.write.label": "Escribir", - "Task.controls.completionComment.preview.label": "Previsualizar", - "TaskCommentsModal.header": "Comentarios", - "TaskConfirmationModal.header": "Confirmar", - "TaskConfirmationModal.submitRevisionHeader": "Confirme la revisión", + "Task.fields.status.label": "Estado", + "Task.loadByMethod.proximity": "Cercano", + "Task.loadByMethod.random": "Aleatorio", + "Task.management.controls.inspect.label": "Inspeccionar", + "Task.management.controls.modify.label": "Modificar", + "Task.management.heading": "Opciones de administración", + "Task.markedAs.label": "Tarea marcada como", + "Task.pane.controls.browseChallenge.label": "Examinar desafío", + "Task.pane.controls.inspect.label": "Inspeccionar", + "Task.pane.controls.preview.label": "Vista previa de tarea", + "Task.pane.controls.retryLock.label": "Reintentar bloqueo", + "Task.pane.controls.saveChanges.label": "Guardar cambios", + "Task.pane.controls.tryLock.label": "Intentar bloquear", + "Task.pane.controls.unlock.label": "Desbloquear", + "Task.pane.indicators.locked.label": "Tarea bloqueada", + "Task.pane.indicators.readOnly.label": "Vista previa de solo lectura", + "Task.pane.lockFailedDialog.prompt": "No se pudo adquirir el bloqueo de tareas. Una vista previa de solo lectura está disponible.", + "Task.pane.lockFailedDialog.title": "No se puede bloquear la tarea", + "Task.priority.high": "Alto", + "Task.priority.low": "Baja", + "Task.priority.medium": "Media", + "Task.property.operationType.and": "y", + "Task.property.operationType.or": "o", + "Task.property.searchType.contains": "contiene", + "Task.property.searchType.equals": "es igual", + "Task.property.searchType.exists": "existe", + "Task.property.searchType.missing": "faltante", + "Task.property.searchType.notEqual": "no es igual", + "Task.readonly.message": "Vista previa de tareas en modo de solo lectura", + "Task.requestReview.label": "¿Solicitar revisión?", + "Task.review.loadByMethod.all": "Volver a revisar todo", + "Task.review.loadByMethod.inbox": "Volver a la bandeja de entrada", + "Task.review.loadByMethod.nearby": "Tarea cercana", + "Task.review.loadByMethod.next": "Siguiente tarea filtrada", + "Task.reviewStatus.approved": "Aprobado", + "Task.reviewStatus.approvedWithFixes": "Aprobado con correcciones", + "Task.reviewStatus.disputed": "Impugnada", + "Task.reviewStatus.needed": "Revisión solicitada", + "Task.reviewStatus.rejected": "Necesita revisión", + "Task.reviewStatus.unnecessary": "Innecesario", + "Task.reviewStatus.unset": "Revisión aún no solicitada", + "Task.status.alreadyFixed": "Ya estaba arreglado", + "Task.status.created": "Creado", + "Task.status.deleted": "Eliminado", + "Task.status.disabled": "Deshabilitado", + "Task.status.falsePositive": "No es un problema", + "Task.status.fixed": "Arreglado", + "Task.status.skipped": "Omitido", + "Task.status.tooHard": "Demasiado difícil", + "Task.taskTags.add.label": "Agregar etiquetas MR", + "Task.taskTags.addTags.placeholder": "Agregar etiquetas MR", + "Task.taskTags.cancel.label": "Cancelar", + "Task.taskTags.label": "Etiquetas MR:", + "Task.taskTags.modify.label": "Modificar etiquetas MR", + "Task.taskTags.save.label": "Guardar", + "Task.taskTags.update.label": "Actualizar etiquetas MR", + "Task.unsave.control.tooltip": "Dejar de rastrear", + "TaskClusterMap.controls.clusterTasks.label": "Grupo", + "TaskClusterMap.message.moveMapToRefresh.label": "Haga clic para mostrar tareas", + "TaskClusterMap.message.nearMe.label": "Cerca de mí", + "TaskClusterMap.message.or.label": "o", + "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} una {# task found} otra {# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Acercar para ver tareas", + "TaskCommentsModal.header": "Comentarios", + "TaskConfirmationModal.addTags.placeholder": "Agregar etiquetas MR", + "TaskConfirmationModal.adjustFilters.label": "Ajustar filtros", + "TaskConfirmationModal.cancel.label": "Cancelar", + "TaskConfirmationModal.challenge.label": "Desafío:", + "TaskConfirmationModal.comment.header": "Comentario de MapRoulette (opcional)", + "TaskConfirmationModal.comment.label": "Dejar comentario opcional", + "TaskConfirmationModal.comment.placeholder": "Su comentario (opcional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspeccionar conjunto de cambios", "TaskConfirmationModal.disputeRevisionHeader": "Confirmar desacuerdo de revisión", + "TaskConfirmationModal.done.label": "Hecho", + "TaskConfirmationModal.header": "Confirmar", "TaskConfirmationModal.inReviewHeader": "Confirme la revisión", - "TaskConfirmationModal.comment.label": "Dejar comentario opcional", - "TaskConfirmationModal.review.label": "¿Necesitas un par de ojos extra? Marque aquí para que un humano revise su trabajo", + "TaskConfirmationModal.invert.label": "invertir", + "TaskConfirmationModal.inverted.label": "invertido", "TaskConfirmationModal.loadBy.label": "Siguiente tarea:", "TaskConfirmationModal.loadNextReview.label": "Proceder con:", - "TaskConfirmationModal.cancel.label": "Cancelar", - "TaskConfirmationModal.submit.label": "Enviar", - "TaskConfirmationModal.osmUploadNotice": "Estos cambios se subirán a OpenStreetMap en su nombre", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspeccionar conjunto de cambios", + "TaskConfirmationModal.mapper.label": "Mapeador:", + "TaskConfirmationModal.nextNearby.label": "Seleccione su próxima tarea cercana (opcional)", "TaskConfirmationModal.osmComment.header": "Comentario de cambio de OSM", "TaskConfirmationModal.osmComment.placeholder": "Comentario de OpenStreetMap", - "TaskConfirmationModal.comment.header": "Comentario de MapRoulette (opcional)", - "TaskConfirmationModal.comment.placeholder": "Su comentario (opcional)", - "TaskConfirmationModal.nextNearby.label": "Seleccione su próxima tarea cercana (opcional)", - "TaskConfirmationModal.addTags.placeholder": "Agregar etiquetas MR", - "TaskConfirmationModal.adjustFilters.label": "Ajustar filtros", - "TaskConfirmationModal.done.label": "Hecho", - "TaskConfirmationModal.useChallenge.label": "Usar el desafío actual", + "TaskConfirmationModal.osmUploadNotice": "Estos cambios se subirán a OpenStreetMap en su nombre", + "TaskConfirmationModal.priority.label": "Prioridad:", + "TaskConfirmationModal.review.label": "¿Necesitas un par de ojos extra? Marque aquí para que un humano revise su trabajo", "TaskConfirmationModal.reviewStatus.label": "Estado de revisión:", "TaskConfirmationModal.status.label": "Estado:", - "TaskConfirmationModal.priority.label": "Prioridad:", - "TaskConfirmationModal.challenge.label": "Desafío:", - "TaskConfirmationModal.mapper.label": "Mapeador:", - "TaskPropertyFilter.label": "Filtrar por propiedad", - "TaskPriorityFilter.label": "Filtrar por prioridad", - "TaskStatusFilter.label": "Filtrar por estado", - "TaskReviewStatusFilter.label": "Filtrar por estado de revisión", - "TaskHistory.fields.startedOn.label": "Comenzó en la tarea", + "TaskConfirmationModal.submit.label": "Enviar", + "TaskConfirmationModal.submitRevisionHeader": "Confirme la revisión", + "TaskConfirmationModal.useChallenge.label": "Usar el desafío actual", "TaskHistory.controls.viewAttic.label": "Ver ático", + "TaskHistory.fields.startedOn.label": "Comenzó en la tarea", "TaskHistory.fields.taskUpdated.label": "Tarea actualizada por el administrador de desafíos", - "CooperativeWorkControls.prompt": "¿Son correctos los cambios de etiqueta OSM propuestos?", - "CooperativeWorkControls.controls.confirm.label": "Sí", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Otro", - "Task.markedAs.label": "Tarea marcada como", - "Task.requestReview.label": "¿Solicitar revisión?", - "Task.awaitingReview.label": "La tarea está pendiente de revisión.", - "Task.readonly.message": "Vista previa de tareas en modo de solo lectura", - "Task.controls.viewChangeset.label": "Ver conjunto de cambios", - "Task.controls.moreOptions.label": "Mas opciones", - "Task.controls.alreadyFixed.label": "Ya estaba arreglado", - "Task.controls.alreadyFixed.tooltip": "Ya estaba arreglado", - "Task.controls.cancelEditing.label": "Cancelar edición", - "Task.controls.step1.revisionNeeded": "Esta tarea necesita revisión. Asegúrese de revisar los comentarios para cualquier detalle.", - "ActiveTask.controls.fixed.label": "¡Lo arreglé!", - "ActiveTask.controls.notFixed.label": "Demasiado difícil / No pude verlo bien", - "ActiveTask.controls.aleadyFixed.label": "Ya estaba arreglado", - "ActiveTask.controls.cancelEditing.label": "Regresar", - "Task.controls.edit.label": "Editar", - "Task.controls.edit.tooltip": "Editar", - "Task.controls.falsePositive.label": "No es un problema", - "Task.controls.falsePositive.tooltip": "No es un problema", - "Task.controls.fixed.label": "¡Lo arreglé!", - "Task.controls.fixed.tooltip": "¡Lo arreglé!", - "Task.controls.next.label": "Siguiente tarea", - "Task.controls.next.tooltip": "Siguiente tarea", - "Task.controls.next.loadBy.label": "Cargar siguiente:", - "Task.controls.nextNearby.label": "Seleccione la siguiente tarea cercana", - "Task.controls.revised.label": "Revisión completa", - "Task.controls.revised.tooltip": "Revisión completa", - "Task.controls.revised.resubmit": "Reenviar para revisión", - "Task.controls.revised.dispute": "No estoy de acuerdo con la reseña", - "Task.controls.skip.label": "Omitir", - "Task.controls.skip.tooltip": "Saltar tarea", - "Task.controls.tooHard.label": "Demasiado difícil / No pude verlo bien", - "Task.controls.tooHard.tooltip": "Demasiado difícil / No pude verlo bien", - "KeyboardShortcuts.control.label": "Atajos de teclado", - "ActiveTask.keyboardShortcuts.label": "Ver atajos de teclado", - "ActiveTask.controls.info.tooltip": "Detalles de la tarea", - "ActiveTask.controls.comments.tooltip": "Ver comentarios", - "ActiveTask.subheading.comments": "Comentarios", - "ActiveTask.heading": "Información del desafío", - "ActiveTask.subheading.instructions": "Instrucciones", - "ActiveTask.subheading.location": "Ubicación", - "ActiveTask.subheading.progress": "Progreso del desafío", - "ActiveTask.subheading.social": "Compartir", - "Task.pane.controls.inspect.label": "Inspeccionar", - "Task.pane.indicators.locked.label": "Tarea bloqueada", - "Task.pane.indicators.readOnly.label": "Vista previa de solo lectura", - "Task.pane.controls.unlock.label": "Desbloquear", - "Task.pane.controls.tryLock.label": "Intentar bloquear", - "Task.pane.controls.preview.label": "Vista previa de tarea", - "Task.pane.controls.browseChallenge.label": "Examinar desafío", - "Task.pane.controls.retryLock.label": "Reintentar bloqueo", - "Task.pane.lockFailedDialog.title": "No se puede bloquear la tarea", - "Task.pane.lockFailedDialog.prompt": "No se pudo adquirir el bloqueo de tareas. Una vista previa de solo lectura está disponible.", - "Task.pane.controls.saveChanges.label": "Guardar cambios", - "MobileTask.subheading.instructions": "Instrucciones", - "Task.management.heading": "Opciones de administración", - "Task.management.controls.inspect.label": "Inspeccionar", - "Task.management.controls.modify.label": "Modificar", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Tarea actual", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No hay tareas cercanas disponibles.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Prioridad:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Estado:", - "Challenge.controls.taskLoadBy.label": "Cargar tareas por:", - "Task.controls.track.label": "Seguir esta tarea", - "Task.controls.untrack.label": "Dejar de seguir esta tarea", - "TaskPropertyQueryBuilder.controls.search": "Buscar", - "TaskPropertyQueryBuilder.controls.clear": "Limpiar", + "TaskPriorityFilter.label": "Filtrar por prioridad", + "TaskPropertyFilter.label": "Filtrar por propiedad", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Valores separados por comas", "TaskPropertyQueryBuilder.controls.addValue": "Añadir valor", - "TaskPropertyQueryBuilder.options.none.label": "Ninguno", - "TaskPropertyQueryBuilder.error.missingRightRule": "Cuando se usa una regla compuesta, se deben especificar ambas partes.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "Cuando se usa una regla compuesta, se deben especificar ambas partes.", + "TaskPropertyQueryBuilder.controls.clear": "Limpiar", + "TaskPropertyQueryBuilder.controls.search": "Buscar", "TaskPropertyQueryBuilder.error.missingKey": "Seleccione un nombre de propiedad.", - "TaskPropertyQueryBuilder.error.missingValue": "Debe ingresar un valor.", + "TaskPropertyQueryBuilder.error.missingLeftRule": "Cuando se usa una regla compuesta, se deben especificar ambas partes.", "TaskPropertyQueryBuilder.error.missingPropertyType": "Por favor, elija un tipo de propiedad.", + "TaskPropertyQueryBuilder.error.missingRightRule": "Cuando se usa una regla compuesta, se deben especificar ambas partes.", + "TaskPropertyQueryBuilder.error.missingStyleName": "Debe elegir un nombre de estilo.", + "TaskPropertyQueryBuilder.error.missingStyleValue": "Debe ingresar un valor de estilo.", + "TaskPropertyQueryBuilder.error.missingValue": "Debe ingresar un valor.", "TaskPropertyQueryBuilder.error.notNumericValue": "El valor de la propiedad dado no es un número válido.", - "TaskPropertyQueryBuilder.propertyType.stringType": "texto", - "TaskPropertyQueryBuilder.propertyType.numberType": "número", + "TaskPropertyQueryBuilder.options.none.label": "Ninguno", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "regla compuesta", - "TaskPropertyQueryBuilder.error.missingStyleValue": "Debe ingresar un valor de estilo.", - "TaskPropertyQueryBuilder.error.missingStyleName": "Debe elegir un nombre de estilo.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Valores separados por comas", - "ActiveTask.subheading.status": "Estado existente", - "ActiveTask.controls.status.tooltip": "Estado existente", - "ActiveTask.controls.viewChangset.label": "Ver conjunto de cambios", - "Task.taskTags.label": "Etiquetas MR:", - "Task.taskTags.add.label": "Agregar etiquetas MR", - "Task.taskTags.update.label": "Actualizar etiquetas MR", - "Task.taskTags.save.label": "Guardar", - "Task.taskTags.cancel.label": "Cancelar", - "Task.taskTags.modify.label": "Modificar etiquetas MR", - "Task.taskTags.addTags.placeholder": "Agregar etiquetas MR", + "TaskPropertyQueryBuilder.propertyType.numberType": "número", + "TaskPropertyQueryBuilder.propertyType.stringType": "texto", + "TaskReviewStatusFilter.label": "Filtrar por estado de revisión", + "TaskStatusFilter.label": "Filtrar por estado", + "TasksTable.invert.abel": "invertir", + "TasksTable.inverted.label": "invertido", + "Taxonomy.indicators.cooperative.label": "Cooperativa", + "Taxonomy.indicators.favorite.label": "Favorito", + "Taxonomy.indicators.featured.label": "Destacados", "Taxonomy.indicators.newest.label": "El más nuevo", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Destacados", - "Taxonomy.indicators.favorite.label": "Favorito", "Taxonomy.indicators.tagFix.label": "Arreglar etiqueta", - "Taxonomy.indicators.cooperative.label": "Cooperativa", - "AddTeamMember.controls.chooseRole.label": "Elegir rol", - "AddTeamMember.controls.chooseOSMUser.placeholder": "Nombre de usuario de OpenStreetMap", - "Team.name.label": "Nombre", - "Team.name.description": "El nombre único del equipo.", - "Team.description.label": "Descripción", - "Team.description.description": "Una breve descripción del equipo.", - "Team.controls.save.label": "Guardar", + "Team.Status.invited": "Invitado", + "Team.Status.member": "Miembro", + "Team.activeMembers.header": "Miembros activos", + "Team.addMembers.header": "Invitar a un nuevo miembro", + "Team.controls.acceptInvite.label": "Unirse al equipo", "Team.controls.cancel.label": "Cancelar", + "Team.controls.declineInvite.label": "Rechazar invitación", + "Team.controls.delete.label": "Eliminar equipo", + "Team.controls.edit.label": "Editar equipo", + "Team.controls.leave.label": "Salir del equipo", + "Team.controls.save.label": "Guardar", + "Team.controls.view.label": "Ver equipo", + "Team.description.description": "Una breve descripción del equipo.", + "Team.description.label": "Descripción", + "Team.invitedMembers.header": "Invitaciones pendientes", "Team.member.controls.acceptInvite.label": "Unirse al equipo", "Team.member.controls.declineInvite.label": "Rechazar invitación", "Team.member.controls.delete.label": "Eliminar usuario", "Team.member.controls.leave.label": "Dejar equipo", "Team.members.indicator.you.label": "(Usted)", + "Team.name.description": "El nombre único del equipo.", + "Team.name.label": "Nombre", "Team.noTeams": "No es miembro de ningún equipo", - "Team.controls.view.label": "Ver equipo", - "Team.controls.edit.label": "Editar equipo", - "Team.controls.delete.label": "Eliminar equipo", - "Team.controls.acceptInvite.label": "Unirse al equipo", - "Team.controls.declineInvite.label": "Rechazar invitación", - "Team.controls.leave.label": "Salir del equipo", - "Team.activeMembers.header": "Miembros activos", - "Team.invitedMembers.header": "Invitaciones pendientes", - "Team.addMembers.header": "Invitar a un nuevo miembro", - "UserProfile.topChallenges.header": "Sus principales desafíos", "TopUserChallenges.widget.label": "Sus principales desafíos", "TopUserChallenges.widget.noChallenges": "Sin desafíos", "UserEditorSelector.currentEditor.label": "Editor actual:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Desafío virtual", + "UserProfile.favoriteChallenges.header": "Tus desafíos favoritos", + "UserProfile.savedTasks.header": "Tareas rastreadas", + "UserProfile.topChallenges.header": "Sus principales desafíos", + "VirtualChallenge.controls.create.label": "Trabajar en {taskCount, number} tareas mapeadas", + "VirtualChallenge.controls.tooMany.label": "Acercar para trabajar en tareas asignadas", + "VirtualChallenge.controls.tooMany.tooltip": "Se pueden incluir {maxTasks, number} como mucho en un desafío \"virtual\"", + "VirtualChallenge.fields.name.label": "Nombra tu desafío \"virtual\"", "WidgetPicker.menuLabel": "Agregar widget", + "WidgetWorkspace.controls.addConfiguration.label": "Agregar nuevo diseño", + "WidgetWorkspace.controls.deleteConfiguration.label": "Eliminar diseño", + "WidgetWorkspace.controls.editConfiguration.label": "Editar diseño", + "WidgetWorkspace.controls.exportConfiguration.label": "Exportar diseño", + "WidgetWorkspace.controls.importConfiguration.label": "Importar diseño", + "WidgetWorkspace.controls.resetConfiguration.label": "Restablecer diseño a predeterminado", + "WidgetWorkspace.controls.saveConfiguration.label": "Edición realizada", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancelar", + "WidgetWorkspace.exportModal.controls.download.label": "Descargar", + "WidgetWorkspace.exportModal.fields.name.label": "Nombre del diseño", + "WidgetWorkspace.exportModal.header": "Exportar su diseño", + "WidgetWorkspace.fields.configurationName.label": "Nombre de diseño:", + "WidgetWorkspace.importModal.controls.upload.label": "Haga clic para cargar el archivo", + "WidgetWorkspace.importModal.header": "Importar un diseño", + "WidgetWorkspace.labels.currentlyUsing": "Diseño actual:", + "WidgetWorkspace.labels.switchTo": "Cambiar a:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Mostrar fechas exactas", + "Widgets.ActivityListingWidget.title": "Listado de actividades", + "Widgets.ActivityMapWidget.title": "Mapa de actividad", + "Widgets.BurndownChartWidget.label": "Diagrama de quemado", + "Widgets.BurndownChartWidget.title": "Tareas restantes: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Mapa de calor diario", + "Widgets.CalendarHeatmapWidget.title": "Mapa de calor diario: finalización de tareas", + "Widgets.ChallengeListWidget.label": "Desafíos", + "Widgets.ChallengeListWidget.search.placeholder": "Buscar", + "Widgets.ChallengeListWidget.title": "Desafíos", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Creado:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tareas creadas en {refreshDate} a partir de datos obtenidos en {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Palabras clave:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modificado:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Estado:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tareas de:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tareas actualizadas:", + "Widgets.ChallengeOverviewWidget.label": "Resumen del desafío", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "proyecto no visible", + "Widgets.ChallengeOverviewWidget.title": "Visión general", "Widgets.ChallengeShareWidget.label": "Compartir socialmente", "Widgets.ChallengeShareWidget.title": "Compartir", + "Widgets.ChallengeTasksWidget.label": "Tareas", + "Widgets.ChallengeTasksWidget.title": "Tareas", + "Widgets.CommentsWidget.controls.export.label": "Exportar", + "Widgets.CommentsWidget.label": "Comentarios", + "Widgets.CommentsWidget.title": "Comentarios", "Widgets.CompletionProgressWidget.label": "Progreso de finalización", - "Widgets.CompletionProgressWidget.title": "Progreso de finalización", "Widgets.CompletionProgressWidget.noTasks": "El desafío no tiene tareas", + "Widgets.CompletionProgressWidget.title": "Progreso de finalización", "Widgets.FeatureStyleLegendWidget.label": "Leyenda de estilo de elemento", "Widgets.FeatureStyleLegendWidget.title": "Leyenda de estilo de elemento", + "Widgets.FollowersWidget.controls.activity.label": "Actividad", + "Widgets.FollowersWidget.controls.followers.label": "Seguidores", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Mostrar fechas exactas", + "Widgets.FollowingWidget.controls.following.label": "Siguiendo", + "Widgets.FollowingWidget.header.activity": "Actividad que estás siguiendo", + "Widgets.FollowingWidget.header.followers": "Sus seguidores", + "Widgets.FollowingWidget.header.following": "Está siguiendo", + "Widgets.FollowingWidget.label": "Seguir", "Widgets.KeyboardShortcutsWidget.label": "Atajos de teclado", "Widgets.KeyboardShortcutsWidget.title": "Atajos de teclado", + "Widgets.LeaderboardWidget.label": "Tabla de clasificación", + "Widgets.LeaderboardWidget.title": "Tabla de clasificación", + "Widgets.ProjectAboutWidget.content": "Los proyectos sirven como un medio para agrupar desafíos relacionados. Todos los desafíos deben pertenecer a un proyecto. Puede crear tantos proyectos como sea necesario para organizar sus desafíos y puede invitar a otros usuarios de MapRoulette para que los ayuden a administrar con usted. Los proyectos deben configurarse como visibles antes de cualquier los desafíos dentro de ellos aparecerán\nen la navegación o búsqueda pública.", + "Widgets.ProjectAboutWidget.label": "Sobre proyectos", + "Widgets.ProjectAboutWidget.title": "Sobre proyectos", + "Widgets.ProjectListWidget.label": "Lista de proyectos", + "Widgets.ProjectListWidget.search.placeholder": "Buscar", + "Widgets.ProjectListWidget.title": "Proyectos", + "Widgets.ProjectManagersWidget.label": "Administradores de proyecto", + "Widgets.ProjectOverviewWidget.label": "Visión general", + "Widgets.ProjectOverviewWidget.title": "Visión general", + "Widgets.RecentActivityWidget.label": "Actividad reciente", + "Widgets.RecentActivityWidget.title": "Actividad reciente", "Widgets.ReviewMap.label": "Revisar mapa", "Widgets.ReviewStatusMetricsWidget.label": "Revisar métricas de estado", "Widgets.ReviewStatusMetricsWidget.title": "Revisar estado", "Widgets.ReviewTableWidget.label": "Tabla de revisión", "Widgets.ReviewTaskMetricsWidget.label": "Revisar métricas de tareas", "Widgets.ReviewTaskMetricsWidget.title": "Estado de la tarea", - "Widgets.SnapshotProgressWidget.label": "Progreso pasado", - "Widgets.SnapshotProgressWidget.title": "Progreso pasado", "Widgets.SnapshotProgressWidget.current.label": "Actual", "Widgets.SnapshotProgressWidget.done.label": "Listo", "Widgets.SnapshotProgressWidget.exportCSV.label": "Exportar CSV", - "Widgets.SnapshotProgressWidget.record.label": "Grabar nueva instantánea", + "Widgets.SnapshotProgressWidget.label": "Progreso pasado", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Administrar instantáneas", + "Widgets.SnapshotProgressWidget.record.label": "Grabar nueva instantánea", + "Widgets.SnapshotProgressWidget.title": "Progreso pasado", + "Widgets.StatusRadarWidget.label": "Radar de estado", + "Widgets.StatusRadarWidget.title": "Distribución del estado de finalización", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Mostrar todas las etiquetas", "Widgets.TagDiffWidget.label": "Cooperativas", "Widgets.TagDiffWidget.title": "Cambios de etiqueta OSM propuestos", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Mostrar todas las etiquetas", - "Widgets.TaskBundleWidget.label": "Trabajo multitarea", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Trabajar juntos en múltiples tareas", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Borrar filtros", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "ID interno:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "ID del elemento:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Estado:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Prioridad:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Seleccionado", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Completar juntos", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Borrar filtros", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Desagregar", "Widgets.TaskBundleWidget.currentTask": "(tarea actual)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Trabajando juntos en {taskCount, number} tareas", "Widgets.TaskBundleWidget.disallowBundling": "Estás trabajando en una sola tarea. Los paquetes de tareas no se pueden crear en este paso.", + "Widgets.TaskBundleWidget.label": "Trabajo multitarea", "Widgets.TaskBundleWidget.noCooperativeWork": "Las tareas cooperativas no se pueden agrupar", "Widgets.TaskBundleWidget.noVirtualChallenges": "Las tareas en desafíos \"virtuales\" no se pueden agrupar", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Seleccionado", + "Widgets.TaskBundleWidget.popup.fields.name.label": "ID del elemento:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Prioridad:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Estado:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "ID interno:", "Widgets.TaskBundleWidget.readOnly": "Vista previa de tareas en modo de solo lectura", - "Widgets.TaskCompletionWidget.label": "Finalización", - "Widgets.TaskCompletionWidget.title": "Finalización", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspeccionar", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Trabajar juntos en múltiples tareas", + "Widgets.TaskBundleWidget.simultaneousTasks": "Trabajando juntos en {taskCount, number} tareas", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancelar selección", + "Widgets.TaskCompletionWidget.completeTogether": "Completar juntos", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Cambios propuestos", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspeccionar", + "Widgets.TaskCompletionWidget.label": "Finalización", "Widgets.TaskCompletionWidget.simultaneousTasks": "Trabajando juntos en {taskCount, number} tareas", - "Widgets.TaskCompletionWidget.completeTogether": "Completar juntos", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancelar selección", - "Widgets.TaskHistoryWidget.label": "Historial de tareas", - "Widgets.TaskHistoryWidget.title": "Historia", - "Widgets.TaskHistoryWidget.control.startDiff": "Iniciar diferencia", + "Widgets.TaskCompletionWidget.title": "Finalización", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancelar diferencia", + "Widgets.TaskHistoryWidget.control.startDiff": "Iniciar diferencia", "Widgets.TaskHistoryWidget.control.viewOSMCha": "Ver OSM Cha", + "Widgets.TaskHistoryWidget.label": "Historial de tareas", + "Widgets.TaskHistoryWidget.title": "Historia", "Widgets.TaskInstructionsWidget.label": "Instrucciones", "Widgets.TaskInstructionsWidget.title": "Instrucciones", "Widgets.TaskLocationWidget.label": "Ubicación", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Tarea", "Widgets.TaskMoreOptionsWidget.label": "Más opciones", "Widgets.TaskMoreOptionsWidget.title": "Más opciones", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Tarea actual", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No hay tareas cercanas disponibles.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Prioridad:", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Estado:", "Widgets.TaskPropertiesWidget.label": "Propiedades de tarea", - "Widgets.TaskPropertiesWidget.title": "Propiedades de tarea", "Widgets.TaskPropertiesWidget.task.label": "Tarea {taskId}", + "Widgets.TaskPropertiesWidget.title": "Propiedades de tarea", "Widgets.TaskReviewWidget.label": "Revisión de tareas", "Widgets.TaskReviewWidget.reviewTaskTitle": "Revisión", - "Widgets.review.simultaneousTasks": "Revisión de {taskCount, number} tareas juntas", "Widgets.TaskStatusWidget.label": "Estado de la tarea", "Widgets.TaskStatusWidget.title": "Estado de la tarea", + "Widgets.TeamsWidget.controls.createTeam.label": "Comenzar un equipo", + "Widgets.TeamsWidget.controls.myTeams.label": "Mis equipos", + "Widgets.TeamsWidget.createTeamTitle": "Crear nuevo equipo", + "Widgets.TeamsWidget.editTeamTitle": "Editar equipo", "Widgets.TeamsWidget.label": "Equipos", "Widgets.TeamsWidget.myTeamsTitle": "Mis equipos", - "Widgets.TeamsWidget.editTeamTitle": "Editar equipo", - "Widgets.TeamsWidget.createTeamTitle": "Crear nuevo equipo", "Widgets.TeamsWidget.viewTeamTitle": "Detalles del equipo", - "Widgets.TeamsWidget.controls.myTeams.label": "Mis equipos", - "Widgets.TeamsWidget.controls.createTeam.label": "Comenzar un equipo", - "WidgetWorkspace.controls.editConfiguration.label": "Editar diseño", - "WidgetWorkspace.controls.saveConfiguration.label": "Edición realizada", - "WidgetWorkspace.fields.configurationName.label": "Nombre de diseño:", - "WidgetWorkspace.controls.addConfiguration.label": "Agregar nuevo diseño", - "WidgetWorkspace.controls.deleteConfiguration.label": "Eliminar diseño", - "WidgetWorkspace.controls.resetConfiguration.label": "Restablecer diseño a predeterminado", - "WidgetWorkspace.controls.exportConfiguration.label": "Exportar diseño", - "WidgetWorkspace.controls.importConfiguration.label": "Importar diseño", - "WidgetWorkspace.labels.currentlyUsing": "Diseño actual:", - "WidgetWorkspace.labels.switchTo": "Cambiar a:", - "WidgetWorkspace.exportModal.header": "Exportar su diseño", - "WidgetWorkspace.exportModal.fields.name.label": "Nombre del diseño", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancelar", - "WidgetWorkspace.exportModal.controls.download.label": "Descargar", - "WidgetWorkspace.importModal.header": "Importar un diseño", - "WidgetWorkspace.importModal.controls.upload.label": "Haga clic para cargar el archivo", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Los accesos directos de Overpass Turbo no son compatibles. Si desea utilizarlos, visite Overpass Turbo y pruebe su consulta, luego elija Exportar -> Consulta -> Independiente -> Copiar y luego péguelo aquí.", - "Dashboard.header": "Tablero", - "Dashboard.header.welcomeBack": "Bienvenido de nuevo, {username}!", - "Dashboard.header.completionPrompt": "Ha terminado", - "Dashboard.header.completedTasks": "{completedTasks, number} tareas", - "Dashboard.header.pointsPrompt": ", ganado", - "Dashboard.header.userScore": "{points, number} puntos", - "Dashboard.header.rankPrompt": ", y ha", - "Dashboard.header.globalRank": "clasificado #{rank, number}", - "Dashboard.header.globally": "globalmente.", - "Dashboard.header.encouragement": "¡Siga así!", - "Dashboard.header.getStarted": "¡Gane puntos completando tareas de desafío!", - "Dashboard.header.jumpBackIn": "¡Vuelver a entrar!", - "Dashboard.header.resume": "Reanude su último desafío", - "Dashboard.header.controls.latestChallenge.label": "Lléveme al desafío", - "Dashboard.header.find": "o encontrar", - "Dashboard.header.somethingNew": "algo nuevo", - "Dashboard.header.controls.findChallenge.label": "Descubra nuevos desafíos", - "Home.Featured.browse": "Explorar", - "Home.Featured.header": "Destacados", - "Inbox.header": "Notificaciones", - "Inbox.controls.refreshNotifications.label": "Actualizar", - "Inbox.controls.groupByTask.label": "Agrupar por tarea", - "Inbox.controls.manageSubscriptions.label": "Administrar suscripciones", - "Inbox.controls.markSelectedRead.label": "Marcar como leído", - "Inbox.controls.deleteSelected.label": "Eliminar", - "Inbox.tableHeaders.notificationType": "Tipo", - "Inbox.tableHeaders.created": "Enviado", - "Inbox.tableHeaders.fromUsername": "Desde", - "Inbox.tableHeaders.challengeName": "Desafío", - "Inbox.tableHeaders.isRead": "Leer", - "Inbox.tableHeaders.taskId": "Tarea", - "Inbox.tableHeaders.controls": "Acciones", - "Inbox.actions.openNotification.label": "Abrir", - "Inbox.noNotifications": "Sin notificaciones", - "Inbox.mentionNotification.lead": "Te han mencionado en un comentario:", - "Inbox.reviewApprovedNotification.lead": "¡Buenas noticias! Su trabajo de tarea ha sido revisado y aprobado.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Su trabajo de tarea ha sido aprobado (con algunas correcciones hechas por el revisor).", - "Inbox.reviewRejectedNotification.lead": "Después de una revisión de su tarea, el revisor ha determinado que necesita un trabajo adicional.", - "Inbox.reviewAgainNotification.lead": "El mapeador ha revisado su trabajo y está solicitando una revisión adicional.", - "Inbox.challengeCompleteNotification.lead": "Se ha completado un desafío que administras.", - "Inbox.notification.controls.deleteNotification.label": "Eliminar", - "Inbox.notification.controls.viewTask.label": "Ver tarea", - "Inbox.notification.controls.reviewTask.label": "Tarea de revisión", - "Inbox.notification.controls.manageChallenge.label": "Administrar desafío", - "Leaderboard.title": "Tabla de clasificación", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Método de puntuación", - "Leaderboard.scoringMethod.explanation": "##### Los puntos se otorgan por tarea completada de la siguiente manera:\n\n| Estado | Puntos |\n| :------------ | -----: |\n| Arreglado | 5 |\n| No es un problema | 3 |\n| Ya estaba arreglado | 3 |\n| Demasiado difícil | 1 |\n| Omitido | 0 |", - "Leaderboard.user.points": "Puntos", - "Leaderboard.user.topChallenges": "Principales desafíos", - "Leaderboard.users.none": "No hay usuarios por período de tiempo", - "Leaderboard.controls.loadMore.label": "Mostrar más", - "Leaderboard.updatedFrequently": "Actualizado cada 15 minutos", - "Leaderboard.updatedDaily": "Actualizado cada 24 horas", - "Metrics.userOptedOut": "Este usuario ha optado por no mostrar públicamente sus estadísticas.", - "Metrics.userSince": "Usuario desde:", - "Metrics.totalCompletedTasksTitle": "Total de tareas completadas", - "Metrics.completedTasksTitle": "Tareas completadas", - "Metrics.reviewedTasksTitle": "Revisar estado", - "Metrics.leaderboardTitle": "Tabla de clasificación", - "Metrics.leaderboard.globalRank.label": "Posición Mundial", - "Metrics.leaderboard.totalPoints.label": "Puntos totales", - "Metrics.leaderboard.topChallenges.label": "Principales desafíos", - "Metrics.reviewStats.approved.label": "Tareas revisadas que pasaron", - "Metrics.reviewStats.rejected.label": "Tareas que fallaron", - "Metrics.reviewStats.assisted.label": "Tareas revisadas que pasaron con cambios", - "Metrics.reviewStats.disputed.label": "Tareas revisadas que están siendo disputadas", - "Metrics.reviewStats.awaiting.label": "Tareas que están pendientes de revisión", - "Metrics.reviewStats.averageReviewTime.label": "Tiempo promedio de revisión:", - "Metrics.reviewedTasksTitle.asReviewer": "Tareas revisadas por {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tareas revisadas por usted", - "Metrics.reviewStats.asReviewer.approved.label": "Tareas revisadas como aprobadas", - "Metrics.reviewStats.asReviewer.rejected.label": "Tareas revisadas como fallidas", - "Metrics.reviewStats.asReviewer.assisted.label": "Tareas revisadas como aprobadas con cambios", - "Metrics.reviewStats.asReviewer.disputed.label": "Tareas actualmente en disputa", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tareas que necesitan un seguimiento", - "Profile.page.title": "Ajustes de usuario", - "Profile.settings.header": "General", - "Profile.noUser": "Usuario no encontrado o no está autorizado para ver a este usuario.", - "Profile.userSince": "Usuario desde:", - "Profile.form.defaultEditor.label": "Editor predeterminado", - "Profile.form.defaultEditor.description": "Seleccione el editor predeterminado que desea usar al arreglar tareas. Al seleccionar esta opción, podrá omitir el cuadro de diálogo de selección del editor después de hacer clic en editar en una tarea.", - "Profile.form.defaultBasemap.label": "Mapa base predeterminado", - "Profile.form.defaultBasemap.description": "Seleccione el mapa base predeterminado para mostrar en el mapa. Solo un mapa base de desafío predeterminado anulará la opción seleccionada aquí.", - "Profile.form.customBasemap.label": "Mapa base personalizado", - "Profile.form.customBasemap.description": "Inserte un mapa base personalizado aquí. Por ejemplo `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Configuración regional", - "Profile.form.locale.description": "Configuración regional de usuario para usar en la interfaz de usuario de MapRoulette.", - "Profile.form.leaderboardOptOut.label": "Salirse de la tabla de clasificación", - "Profile.form.leaderboardOptOut.description": "En caso afirmativo, **no** aparecerá en la tabla de clasificación pública.", - "Profile.apiKey.header": "Clave API", - "Profile.apiKey.controls.copy.label": "Copiar", - "Profile.apiKey.controls.reset.label": "Reiniciar", - "Profile.form.needsReview.label": "Solicitar revisión de todo el trabajo", - "Profile.form.needsReview.description": "Solicite automáticamente una revisión humana de cada tarea que complete", - "Profile.form.isReviewer.label": "Voluntariado como revisor", - "Profile.form.isReviewer.description": "Voluntario para revisar tareas para las cuales se ha solicitado una revisión", - "Profile.form.email.label": "Dirección de mail", - "Profile.form.email.description": "Si solicita correos electrónicos en sus Suscripciones de notificaciones, se enviarán aquí.\n\nDecida qué notificaciones de MapRoulette desea recibir, junto con si desea recibir un correo electrónico informándole de la notificación (ya sea de forma inmediata o como resumen diario)", - "Profile.form.notification.label": "Notificación", - "Profile.form.notificationSubscriptions.label": "Suscripciones a notificaciones", - "Profile.form.notificationSubscriptions.description": "Decida qué notificaciones de MapRoulette le gustaría recibir, junto con si desea recibir un correo electrónico informándole de la notificación (ya sea de forma inmediata o como resumen diario)", - "Profile.form.yes.label": "Sí", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Obligatorio", - "Review.Dashboard.tasksToBeReviewed": "Tareas a revisar", - "Review.Dashboard.tasksReviewedByMe": "Tareas revisadas por mí", - "Review.Dashboard.myReviewTasks": "Mis tareas revisadas", - "Review.Dashboard.allReviewedTasks": "Todas las tareas relacionadas con la revisión", - "Review.Dashboard.volunteerAsReviewer.label": "Voluntario como revisor", - "Review.Dashboard.goBack.label": "Reconfigurar revisiones", - "ReviewStatus.metrics.title": "Revisar estado", - "ReviewStatus.metrics.awaitingReview": "Tareas en espera de revisión", - "ReviewStatus.metrics.approvedReview": "Tareas revisadas que pasaron", - "ReviewStatus.metrics.rejectedReview": "Tareas revisadas que fallaron", - "ReviewStatus.metrics.assistedReview": "Tareas revisadas que pasaron con correcciones", - "ReviewStatus.metrics.disputedReview": "Tareas revisadas que han sido impugnadas", - "ReviewStatus.metrics.fixed": "ARREGLADO", - "ReviewStatus.metrics.falsePositive": "NO ES UN PROBLEMA", - "ReviewStatus.metrics.alreadyFixed": "YA ESTABA ARREGLADO", - "ReviewStatus.metrics.tooHard": "DEMASIADO DIFÍCIL", - "ReviewStatus.metrics.priority.toggle": "Ver por prioridad de tarea", - "ReviewStatus.metrics.priority.label": "{priority} tareas prioritarias", - "ReviewStatus.metrics.byTaskStatus.toggle": "Ver por estado de tarea", - "ReviewStatus.metrics.taskStatus.label": "{status} Tareas", - "ReviewStatus.metrics.averageTime.label": "Tiempo promedio por revisión:", - "Review.TaskAnalysisTable.noTasks": "No se encontraron tareas", - "Review.TaskAnalysisTable.refresh": "Actualizar", - "Review.TaskAnalysisTable.startReviewing": "Revise estas tareas", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limitar a desafíos favoritos", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Excluir revisiones asignadas a otros", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "No ha revisado ninguna tarea.", - "Review.TaskAnalysisTable.noTasksReviewed": "Ninguna de sus tareas asignadas ha sido revisada.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tareas a revisar", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tareas revisadas por mí", - "Review.TaskAnalysisTable.myReviewTasks": "Mis tareas asignadas después de la revisión", - "Review.TaskAnalysisTable.allReviewedTasks": "Todas las tareas relacionadas con la revisión", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configurar columnas", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Exportar CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Acciones", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comentarios", - "Review.TaskAnalysisTable.mapperControls.label": "Acciones", - "Review.TaskAnalysisTable.reviewerControls.label": "Acciones", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Acciones", - "Review.Task.fields.id.label": "ID interno", - "Review.fields.status.label": "Estado", - "Review.fields.priority.label": "Prioridad", - "Review.fields.reviewStatus.label": "Estado de revisión", - "Review.fields.requestedBy.label": "Mapeador", - "Review.fields.reviewedBy.label": "Revisor", - "Review.fields.mappedOn.label": "Mapeado en", - "Review.fields.reviewedAt.label": "Revisado en", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Revisión", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Revisión de revisión", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolver", - "Review.TaskAnalysisTable.controls.viewTask.label": "Ver", - "Review.TaskAnalysisTable.controls.fixTask.label": "Arreglar", - "Review.fields.challenge.label": "Desafío", - "Review.fields.project.label": "Proyecto", - "Review.fields.tags.label": "Etiquetas", - "Review.multipleTasks.tooltip": "Múltiples tareas agrupadas", - "Review.tableFilter.viewAllTasks": "Ver todas las tareas", - "Review.tablefilter.chooseFilter": "Eligir proyecto o desafío", - "Review.tableFilter.reviewByProject": "Revisión por proyecto", - "Review.tableFilter.reviewByChallenge": "Revisión por desafío", - "Review.tableFilter.reviewByAllChallenges": "Todos los desafíos", - "Review.tableFilter.reviewByAllProjects": "Todos los proyectos", - "Pages.SignIn.modal.title": "¡Bienvenido nuevamente!", - "Pages.SignIn.modal.prompt": "Inicie sesión para continuar", - "Activity.action.updated": "Actualizado", - "Activity.action.created": "Creado", - "Activity.action.deleted": "Eliminado", - "Activity.action.taskViewed": "Visto", - "Activity.action.taskStatusSet": "Establecer estado en", - "Activity.action.tagAdded": "Etiqueta agregada a", - "Activity.action.tagRemoved": "Etiqueta eliminada de", - "Activity.action.questionAnswered": "Pregunta respondida sobre", - "Activity.item.project": "Proyecto", - "Activity.item.challenge": "Desafío", - "Activity.item.task": "Tarea", - "Activity.item.tag": "Etiqueta", - "Activity.item.survey": "Encuesta", - "Activity.item.user": "Usuario", - "Activity.item.group": "Grupo", - "Activity.item.virtualChallenge": "Desafío virtual", - "Activity.item.bundle": "Paquete", - "Activity.item.grant": "Conceder", - "Challenge.basemap.none": "Ninguno", - "Admin.Challenge.basemap.none": "Predeterminado del usuario", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Personalizado", - "Challenge.difficulty.easy": "Fácil", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Experto", - "Challenge.difficulty.any": "Cualquiera", - "Challenge.keywords.navigation": "Carreteras / Peatonales / Ciclovías", - "Challenge.keywords.water": "Agua", - "Challenge.keywords.pointsOfInterest": "Puntos / Áreas de interés", - "Challenge.keywords.buildings": "Edificios", - "Challenge.keywords.landUse": "Uso de la tierra / Límites administrativos", - "Challenge.keywords.transit": "Transporte público", - "Challenge.keywords.other": "Otro", - "Challenge.keywords.any": "Cualquier cosa", - "Challenge.location.nearMe": "Cerca de mí", - "Challenge.location.withinMapBounds": "Dentro de los límites del mapa", - "Challenge.location.intersectingMapBounds": "Mostrado en el mapa", - "Challenge.location.any": "En cualquier sitio", - "Challenge.status.none": "No aplica", - "Challenge.status.building": "Edificio", - "Challenge.status.failed": "Ha fallado", - "Challenge.status.ready": "Listo", - "Challenge.status.partiallyLoaded": "Parcialmente cargado", - "Challenge.status.finished": "Terminado", - "Challenge.status.deletingTasks": "Eliminar tareas", - "Challenge.type.challenge": "Desafío", - "Challenge.type.survey": "Encuesta", - "Challenge.cooperativeType.none": "Ninguna", - "Challenge.cooperativeType.tags": "Arreglar etiqueta", - "Challenge.cooperativeType.changeFile": "Cooperativa", - "Editor.none.label": "Ninguno", - "Editor.id.label": "Editar en iD (editor web)", - "Editor.josm.label": "Editar en JOSM", - "Editor.josmLayer.label": "Editar en nueva capa de JOSM", - "Editor.josmFeatures.label": "Editar solo elementos en JOSM", - "Editor.level0.label": "Editar en Level0", - "Editor.rapid.label": "Editar en RapiD", - "Errors.user.missingHomeLocation": "No se encontró la ubicación. Por favor, permita el permiso de su navegador o establezca la ubicación en la configuración de openstreetmap.org (puede cerrar sesión y volver a iniciar sesión en MapRoulette después para tomar los nuevos cambios en su configuración de OpenStreetMap).", - "Errors.user.unauthenticated": "Inicie sesión para continuar", - "Errors.user.unauthorized": "Lo sentimos, no estás autorizado para realizar esa acción.", - "Errors.user.updateFailure": "No se puede actualizar su usuario en el servidor.", - "Errors.user.fetchFailure": "No se pueden recuperar los datos del usuario del servidor.", - "Errors.user.notFound": "Ningún usuario encontrado con ese nombre de usuario.", - "Errors.leaderboard.fetchFailure": "No se puede obtener la tabla de clasificación.", - "Errors.task.none": "No quedan tareas en este desafío.", - "Errors.task.saveFailure": "No se pueden guardar los cambios {details}", - "Errors.task.updateFailure": "No se pueden guardar sus cambios.", - "Errors.task.deleteFailure": "No se puede eliminar la tarea.", - "Errors.task.fetchFailure": "No se puede recuperar una tarea para trabajar.", - "Errors.task.doesNotExist": "Esa tarea no existe.", - "Errors.task.alreadyLocked": "La tarea ya ha sido bloqueada por otra persona.", - "Errors.task.lockRefreshFailure": "No se puede extender su bloqueo de tareas. Su bloqueo puede haber expirado. Recomendamos actualizar la página para intentar establecer un nuevo bloqueo.", - "Errors.task.bundleFailure": "Incapaz de agrupar tareas juntas", - "Errors.osm.requestTooLarge": "Solicitud de datos de OpenStreetMap demasiado grande", - "Errors.osm.bandwidthExceeded": "Se ha excedido el ancho de banda permitido de OpenStreetMap", - "Errors.osm.elementMissing": "Elemento no encontrado en el servidor OpenStreetMap", - "Errors.osm.fetchFailure": "No se pueden recuperar datos de OpenStreetMap", - "Errors.mapillary.fetchFailure": "No se pueden recuperar datos de Mapillary", - "Errors.openStreetCam.fetchFailure": "No se pueden recuperar datos de OpenStreetCam", - "Errors.nominatim.fetchFailure": "No se pueden recuperar datos de Nominatim", - "Errors.clusteredTask.fetchFailure": "No se pueden recuperar grupos de tareas", - "Errors.boundedTask.fetchFailure": "No es posible recuperar tareas delimitadas por mapas", - "Errors.reviewTask.fetchFailure": "No se puede recuperar las tareas de revisión necesarias", - "Errors.reviewTask.alreadyClaimed": "Esta tarea ya está siendo revisada por otra persona.", - "Errors.reviewTask.notClaimedByYou": "No se puede cancelar la revisión.", - "Errors.challenge.fetchFailure": "No se pueden recuperar los últimos datos de desafío del servidor.", - "Errors.challenge.searchFailure": "No se pueden buscar desafíos en el servidor.", - "Errors.challenge.deleteFailure": "No se puede eliminar el desafío.", - "Errors.challenge.saveFailure": "No se pueden guardar los cambios {details}", - "Errors.challenge.rebuildFailure": "No se pueden reconstruir las tareas de desafío", - "Errors.challenge.doesNotExist": "Ese desafío no existe.", - "Errors.virtualChallenge.fetchFailure": "No se pueden recuperar los últimos datos de desafío virtual del servidor.", - "Errors.virtualChallenge.createFailure": "No se puede crear un desafío virtual {details}", - "Errors.virtualChallenge.expired": "El desafío virtual ha expirado.", - "Errors.project.saveFailure": "No se pueden guardar los cambios {details}", - "Errors.project.fetchFailure": "No se pueden recuperar los últimos datos del proyecto del servidor.", - "Errors.project.searchFailure": "No se puede buscar proyectos.", - "Errors.project.deleteFailure": "No se puede eliminar el proyecto.", - "Errors.project.notManager": "Debe ser un administrador de ese proyecto para continuar.", - "Errors.map.renderFailure": "No se puede representar el mapa {details}. Intentando volver a la capa de mapa predeterminada.", - "Errors.map.placeNotFound": "No se han encontrado resultados por Nominatim.", - "Errors.widgetWorkspace.renderFailure": "No se puede representar el espacio de trabajo. Cambiar a un diseño de trabajo.", - "Errors.widgetWorkspace.importFailure": "No se puede importar el diseño {details}", - "Errors.josm.noResponse": "El control remoto OSM no respondió. ¿Tiene JOSM ejecutándose con el control remoto habilitado?", - "Errors.josm.missingFeatureIds": "Los elementos de esta tarea no incluyen los identificadores OSM necesarios para abrirlos de forma independiente en JOSM. Por favor, elija otra opción de edición.", - "Errors.team.genericFailure": "Falla {details}", - "Grant.Role.admin": "Administración", - "Grant.Role.write": "Escribir", - "Grant.Role.read": "Leer", - "KeyMapping.openEditor.editId": "Editar en iD", - "KeyMapping.openEditor.editJosm": "Editar en JOSM", - "KeyMapping.openEditor.editJosmLayer": "Editar en nueva capa de JOSM", - "KeyMapping.openEditor.editJosmFeatures": "Editar solo elementos en JOSM", - "KeyMapping.openEditor.editLevel0": "Editar en Level0", - "KeyMapping.openEditor.editRapid": "Editar en RapiD", - "KeyMapping.layers.layerOSMData": "Alternar capa de datos OSM", - "KeyMapping.layers.layerTaskFeatures": "Alternar capa de elementos", - "KeyMapping.layers.layerMapillary": "Alternar capa de Mapillary", - "KeyMapping.taskEditing.cancel": "Cancelar edición", - "KeyMapping.taskEditing.fitBounds": "Ajustar mapa a los elementos de la tarea", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Omitir", - "KeyMapping.taskCompletion.falsePositive": "No es un problema", - "KeyMapping.taskCompletion.fixed": "¡Lo arreglé!", - "KeyMapping.taskCompletion.tooHard": "Demasiado difícil / No pude verlo bien", - "KeyMapping.taskCompletion.alreadyFixed": "Ya estaba arreglado", - "KeyMapping.taskInspect.nextTask": "Siguiente tarea", - "KeyMapping.taskInspect.prevTask": "Tarea anterior", - "KeyMapping.taskCompletion.confirmSubmit": "Enviar", - "Subscription.type.ignore": "Ignorar", - "Subscription.type.noEmail": "Reciba pero no envíe correos electrónicos", - "Subscription.type.immediateEmail": "Reciba y envíe un correo electrónico inmediatamente", - "Subscription.type.dailyEmail": "Reciba y envíe correos electrónicos diariamente", - "Notification.type.system": "Sistema", - "Notification.type.mention": "Mencionar", - "Notification.type.review.approved": "Aprobado", - "Notification.type.review.rejected": "Modificar", - "Notification.type.review.again": "Revisar", - "Notification.type.challengeCompleted": "Completado", - "Notification.type.challengeCompletedLong": "Desafío completado", - "Challenge.sort.name": "Nombre", - "Challenge.sort.created": "El más nuevo", - "Challenge.sort.oldest": "Más antiguo", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperativa", - "Challenge.sort.default": "Predeterminado", - "Task.loadByMethod.random": "Aleatorio", - "Task.loadByMethod.proximity": "Cercano", - "Task.priority.high": "Alto", - "Task.priority.medium": "Media", - "Task.priority.low": "Baja", - "Task.property.searchType.equals": "es igual", - "Task.property.searchType.notEqual": "no es igual", - "Task.property.searchType.contains": "contiene", - "Task.property.searchType.exists": "existe", - "Task.property.searchType.missing": "faltante", - "Task.property.operationType.and": "y", - "Task.property.operationType.or": "o", - "Task.reviewStatus.needed": "Revisión solicitada", - "Task.reviewStatus.approved": "Aprobado", - "Task.reviewStatus.rejected": "Necesita revisión", - "Task.reviewStatus.approvedWithFixes": "Aprobado con correcciones", - "Task.reviewStatus.disputed": "Impugnada", - "Task.reviewStatus.unnecessary": "Innecesario", - "Task.reviewStatus.unset": "Revisión aún no solicitada", - "Task.review.loadByMethod.next": "Siguiente tarea filtrada", - "Task.review.loadByMethod.all": "Volver a revisar todo", - "Task.review.loadByMethod.inbox": "Volver a la bandeja de entrada", - "Task.status.created": "Creado", - "Task.status.fixed": "Arreglado", - "Task.status.falsePositive": "No es un problema", - "Task.status.skipped": "Omitido", - "Task.status.deleted": "Eliminado", - "Task.status.disabled": "Deshabilitado", - "Task.status.alreadyFixed": "Ya estaba arreglado", - "Task.status.tooHard": "Demasiado difícil", - "Team.Status.member": "Miembro", - "Team.Status.invited": "Invitado", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Holandés)", - "Locale.pt-BR.label": "pt-BR (Portugués brasileño)", - "Locale.fa-IR.label": "fa-IR (Persa - Irán)", - "Locale.cs-CZ.label": "cs-CZ (Checo - República Checa)", - "Locale.ru-RU.label": "ru-RU (Ruso-Rusia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Fijado", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Míos", - "Dashboard.ProjectFilter.pinned.label": "Fijado" + "Widgets.review.simultaneousTasks": "Revisión de {taskCount, number} tareas juntas" } diff --git a/src/lang/fa_IR.json b/src/lang/fa_IR.json index c6b15ecd7..4a969e954 100644 --- a/src/lang/fa_IR.json +++ b/src/lang/fa_IR.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "فعالیت اخیر شما", - "BurndownChart.heading": "وظیفه های باقیمانده: {taskCount, number}", - "BurndownChart.tooltip": "وظیفه های باقیمانده", - "CalendarHeatmap.heading": "نقشه حرارتی روزانه: اتمام وظیفه", + "ActiveTask.controls.aleadyFixed.label": "Already fixed", + "ActiveTask.controls.cancelEditing.label": "Go Back", + "ActiveTask.controls.comments.tooltip": "View Comments", + "ActiveTask.controls.fixed.label": "I fixed it!", + "ActiveTask.controls.info.tooltip": "Task Details", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Existing Status", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Challenge Information", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Comments", + "ActiveTask.subheading.instructions": "Instructions", + "ActiveTask.subheading.location": "Location", + "ActiveTask.subheading.progress": "Challenge Progress", + "ActiveTask.subheading.social": "Share", + "ActiveTask.subheading.status": "Existing Status", + "Activity.action.created": "Created", + "Activity.action.deleted": "Deleted", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Updated", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Challenge", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Task", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "فعالیت اخیر", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "شبیه سازی چالش", + "Admin.Challenge.controls.delete.label": "پاک کردن چالش", + "Admin.Challenge.controls.edit.label": "ویرایش چالش", + "Admin.Challenge.controls.move.label": "انتقال چالش", + "Admin.Challenge.controls.move.none": "پروژه های اجازه داده نشده", + "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", + "Admin.Challenge.controls.start.label": "شروع چالش", + "Admin.Challenge.controls.startChallenge.label": "شروع چالش", + "Admin.Challenge.fields.creationDate.label": "ساخته شده:", + "Admin.Challenge.fields.enabled.label": "قابل رویت:", + "Admin.Challenge.fields.lastModifiedDate.label": "اصلاح شده:", + "Admin.Challenge.fields.status.label": "وضعیت:", + "Admin.Challenge.tasksBuilding": "وظیفه ها در حال ساخته شدن...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Tasks Failed to Build", + "Admin.Challenge.tasksNone": "No Tasks", + "Admin.Challenge.totalCreationTime": "Total elapsed time:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "گزینه ها", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "اسم چالش", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "تمام", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "پیشرفت اتمام", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "قابل رویت", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "فعالیت اخیر", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "مدیریت", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "ویرایش", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "شروع", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "اسم چالش", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "پیشرفت اتمام", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "شبیه سازی", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "ستونهای وضعیت را قرار دهید", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "شروع چالش", - "Admin.Challenge.controls.edit.label": "ویرایش چالش", - "Admin.Challenge.controls.move.label": "انتقال چالش", - "Admin.Challenge.controls.move.none": "پروژه های اجازه داده نشده", - "Admin.Challenge.controls.clone.label": "شبیه سازی چالش", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "پاک کردن چالش", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "ویرایش", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "مدیریت", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "ستونهای وضعیت را قرار دهید", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "شروع", "Admin.ChallengeList.noChallenges": "بدون چالش", - "ChallengeProgressBorder.available": "Available", - "CompletionRadar.heading": "وظیفه های تمام شده: {taskCount, number}", - "Admin.EditProject.unavailable": "پروژه در دسترس نیست", - "Admin.EditProject.edit.header": "ویرایش", - "Admin.EditProject.new.header": "پروژه جدید", - "Admin.EditProject.controls.save.label": "ذخیره", - "Admin.EditProject.controls.cancel.label": "انصراف", - "Admin.EditProject.form.name.label": "نام", - "Admin.EditProject.form.name.description": "اسم پروژه", - "Admin.EditProject.form.displayName.label": "نام نمایش داده شده", - "Admin.EditProject.form.displayName.description": "نام نمایش داده شده شده پروژه", - "Admin.EditProject.form.enabled.label": "قابل رویت", - "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "توصیف", - "Admin.EditProject.form.description.description": "توصیف پروژه", - "Admin.InspectTask.header": "بررسی وظیفه", - "Admin.EditChallenge.edit.header": "ویرایش", + "Admin.ChallengeTaskMap.controls.editTask.label": "ویرایش وظیفه", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "بررسی وظیفه", "Admin.EditChallenge.clone.header": "شبیه سازی", - "Admin.EditChallenge.new.header": "چالش جدید", - "Admin.EditChallenge.lineNumber": "خط {line, number}:", + "Admin.EditChallenge.edit.header": "ویرایش", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "کلی", - "Admin.EditChallenge.form.visible.label": "قابل رویت", - "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge's visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", - "Admin.EditChallenge.form.name.label": "نام", - "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", - "Admin.EditChallenge.form.description.label": "توصیف", - "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", - "Admin.EditChallenge.form.blurb.label": "شرح کوتاه", + "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", "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.", - "Admin.EditChallenge.form.instruction.label": "دستورالعمل ها", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", + "Admin.EditChallenge.form.blurb.label": "شرح کوتاه", + "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", + "Admin.EditChallenge.form.category.label": "Category", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", - "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.checkinComment.label": "Changeset Description", "Admin.EditChallenge.form.checkinSource.description": "Source to be associated with changes made by users in editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", - "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "Admin.EditChallenge.form.checkinSource.label": "Changeset Source", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Custom Basemap", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "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": "Default priority level for tasks in this challenge", + "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", + "Admin.EditChallenge.form.description.description": "The primary, longer description of your challenge that is shown to users when they click on the challenge to learn more about it. This field supports Markdown.", + "Admin.EditChallenge.form.description.label": "توصیف", "Admin.EditChallenge.form.difficulty.description": "Choose between Easy, Normal and Expert to give an indication to mappers what skill level is required to resolve the Tasks in your Challenge. Easy challenges should be suitable for beginners with little or experience.", - "Admin.EditChallenge.form.category.label": "Category", - "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", - "Admin.EditChallenge.form.additionalKeywords.label": "Keywords", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.difficulty.label": "Difficulty", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Featured challenges are shown at the top of the list when browsing and searching challenges. Only super-users may mark a a challenge as featured.", - "Admin.EditChallenge.form.step2.label": "GeoJSON Source", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON Source", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", + "Admin.EditChallenge.form.featured.label": "Featured", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "دستورالعمل ها", + "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", + "Admin.EditChallenge.form.localGeoJson.label": "Upload File", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", + "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", + "Admin.EditChallenge.form.name.label": "نام", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Please provide a suitable bounding box when inserting an overpass query, as this can potentially generate large amounts of data and bog the system down.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", "Admin.EditChallenge.form.overpassQL.placeholder": "Enter Overpass API query here...", - "Admin.EditChallenge.form.localGeoJson.label": "Upload File", - "Admin.EditChallenge.form.localGeoJson.description": "Please upload the local GeoJSON file from your computer", - "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Remote URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON Source", + "Admin.EditChallenge.form.step1.label": "کلی", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON Source", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorities", - "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task's priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task's feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties you've chosen to include in your GeoJSON). Tasks that don't pass any rules will be assigned the default priority.", - "Admin.EditChallenge.form.defaultPriority.label": "Default Priority", - "Admin.EditChallenge.form.defaultPriority.description": "Default priority level for tasks in this challenge", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", - "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Default Zoom Level", - "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task's feature. But if that's not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", - "Admin.EditChallenge.form.minZoom.label": "Minimum Zoom Level", - "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", - "Admin.EditChallenge.form.maxZoom.label": "Maximum Zoom Level", - "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", - "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Challenges", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", - "Admin.ManageChallenges.search.placeholder": "Name", - "Admin.ManageChallenges.allProjectChallenge": "همه", - "Admin.Challenge.fields.creationDate.label": "ساخته شده:", - "Admin.Challenge.fields.lastModifiedDate.label": "اصلاح شده:", - "Admin.Challenge.fields.status.label": "وضعیت:", - "Admin.Challenge.fields.enabled.label": "قابل رویت:", - "Admin.Challenge.controls.startChallenge.label": "شروع چالش", - "Admin.Challenge.activity.label": "فعالیت اخیر", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "قابل رویت", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "چالش جدید", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "انصراف", + "Admin.EditProject.controls.save.label": "ذخیره", + "Admin.EditProject.edit.header": "ویرایش", + "Admin.EditProject.form.description.description": "توصیف پروژه", + "Admin.EditProject.form.description.label": "توصیف", + "Admin.EditProject.form.displayName.description": "نام نمایش داده شده شده پروژه", + "Admin.EditProject.form.displayName.label": "نام نمایش داده شده", + "Admin.EditProject.form.enabled.description": "If you set your project to Visible, all Challenges under it that are also set to Visible will be available, discoverable, and searchable for other users. Effectively, making your Project visible publishes any Challenges under it that are also Visible. You can still work on your own challenges and share static Challenge URLs for any of your Challenges with people and it will work. So until you set your Project to Visible, you can see your Project as testing ground for Challenges.", + "Admin.EditProject.form.enabled.label": "قابل رویت", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "اسم پروژه", + "Admin.EditProject.form.name.label": "نام", + "Admin.EditProject.new.header": "پروژه جدید", + "Admin.EditProject.unavailable": "پروژه در دسترس نیست", + "Admin.EditTask.controls.cancel.label": "انصراف", + "Admin.EditTask.controls.save.label": "ذخیره", "Admin.EditTask.edit.header": "ویرایش وظیفه", - "Admin.EditTask.new.header": "وظیفه جدید", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "جزئیات وظیفه", - "Admin.EditTask.controls.save.label": "ذخیره", - "Admin.EditTask.controls.cancel.label": "انصراف", - "Admin.EditTask.form.name.label": "نام", - "Admin.EditTask.form.name.description": "نام وظیفه", - "Admin.EditTask.form.instruction.label": "دستورالعمل ها", - "Admin.EditTask.form.instruction.description": "دستورالعمل ها برای کاربرانی که این وظیفه بخصوص را انجام می‌دهند ( دستورالعمل های چالش نادیده گرفته می‌شود)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "دستورالعمل ها برای کاربرانی که این وظیفه بخصوص را انجام می‌دهند ( دستورالعمل های چالش نادیده گرفته می‌شود)", + "Admin.EditTask.form.instruction.label": "دستورالعمل ها", + "Admin.EditTask.form.name.description": "نام وظیفه", + "Admin.EditTask.form.name.label": "نام", "Admin.EditTask.form.priority.label": "اولویت", - "Admin.EditTask.form.status.label": "وضعیت", "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.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Edit Task", - "Admin.Task.controls.editTask.label": "Edit", - "Admin.manage.header": "Create & Manage", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Challenges", - "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Managers", - "Admin.Project.fields.enabled.tooltip": "Enabled", - "Admin.Project.fields.disabled.tooltip": "Disabled", - "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "وضعیت", + "Admin.EditTask.new.header": "وظیفه جدید", + "Admin.InspectTask.header": "بررسی وظیفه", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "همه", + "Admin.ManageChallenges.header": "Challenges", + "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.search.placeholder": "Name", + "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", + "Admin.ManageTasks.header": "Tasks", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "اضافه کردن چالش", + "Admin.Project.controls.addChallenge.tooltip": "چالش جدید", + "Admin.Project.controls.delete.label": "پاک کردن پروژه", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Manage Challenge List", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "ساخته شده:", + "Admin.Project.fields.disabled.tooltip": "Disabled", + "Admin.Project.fields.enabled.tooltip": "Enabled", + "Admin.Project.fields.lastModifiedDate.label": "اصلاح شده:", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Edit Project", - "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Edit Project", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Challenges", + "Admin.ProjectCard.tabs.details.label": "Details", + "Admin.ProjectCard.tabs.managers.label": "Managers", "Admin.ProjectDashboard.controls.addChallenge.label": "Add Challenge", + "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectDashboard.controls.edit.label": "Edit Project", "Admin.ProjectDashboard.controls.manageChallenges.label": "Manage Challenges", - "Admin.Project.fields.creationDate.label": "ساخته شده:", - "Admin.Project.fields.lastModifiedDate.label": "اصلاح شده:", - "Admin.Project.controls.delete.label": "پاک کردن پروژه", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "اضافه کردن پروژه", + "Admin.ProjectManagers.addManager": "Add Project Manager", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", + "Admin.ProjectManagers.noManagers": "No Managers", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Owner", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projects serve as a means of grouping related challenges together. All challenges must belong to a project.", - "Admin.ProjectsDashboard.search.placeholder": "نام چالش یا پروژه", - "Admin.Project.controls.addChallenge.tooltip": "چالش جدید", + "Admin.ProjectsDashboard.newProject": "اضافه کردن پروژه", "Admin.ProjectsDashboard.regenerateHomeProject": "Please sign out and sign back in to regenerate a fresh home project.", - "RebuildTasksControl.label": "بازسازی وظیفه ها", - "RebuildTasksControl.modal.title": "بازسازی وظیفه های چالش", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", - "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Cancel", - "RebuildTasksControl.modal.controls.proceed.label": "Proceed", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Cancel", - "StepNavigation.controls.next.label": "Next", - "StepNavigation.controls.prev.label": "Prev", - "StepNavigation.controls.finish.label": "Finish", + "Admin.ProjectsDashboard.search.placeholder": "نام چالش یا پروژه", + "Admin.Task.controls.editTask.label": "Edit", + "Admin.Task.controls.editTask.tooltip": "Edit Task", + "Admin.Task.fields.name.label": "وظیفه:", + "Admin.Task.fields.status.label": "وضعیت:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Admin.TaskAnalysisTable.columnHeaders.comments": "نظرات", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "ویرایش", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "بررسی کردن", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Admin.TaskAnalysisTable.controls.startTask.label": "شروع", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "tasks deleted", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Edit Task", + "Admin.TaskInspect.controls.modifyTask.label": "اصلاح وظیفه", + "Admin.TaskInspect.controls.nextTask.label": "Next Task", + "Admin.TaskInspect.controls.previousTask.label": "Prior Task", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "ساختن وظیفه ها", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approve", + "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", + "Admin.TaskReview.controls.rejected": "Reject", + "Admin.TaskReview.controls.resubmit": "Submit for Review Again", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Start Review", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "وظیفه ها بارگذاری شدند", - "Admin.Challenge.tasksBuilding": "وظیفه ها در حال ساخته شدن...", - "Admin.Challenge.tasksFailed": "Tasks Failed to Build", - "Admin.Challenge.tasksNone": "No Tasks", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Total elapsed time:", - "Admin.Challenge.controls.refreshStatus.label": "Refreshing status in", - "Admin.ManageTasks.header": "Tasks", - "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", - "Admin.manageTasks.controls.changePriority.label": "Change Priority", - "Admin.manageTasks.priorityLabel": "Priority", - "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "بررسی وظیفه", - "Admin.ChallengeTaskMap.controls.editTask.label": "ویرایش وظیفه", - "Admin.Task.fields.name.label": "وظیفه:", - "Admin.Task.fields.status.label": "وضعیت:", - "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.TaskUploadProgress.uploadingTasks.header": "ساختن وظیفه ها", "Admin.VirtualProject.ChallengeList.noChallenges": "No Challenges", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Find Challenges", "Admin.VirtualProject.controls.add.label": "Add", + "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Remove", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "Challenges", - "Widgets.ChallengeListWidget.title": "Challenges", - "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Find Challenges", + "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Reviewed On", + "Admin.manage.header": "Create & Manage", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", - "Widgets.ChallengeOverviewWidget.title": "Overview", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Tasks", - "Widgets.ChallengeTasksWidget.title": "Tasks", - "Widgets.CommentsWidget.label": "Comments", - "Widgets.CommentsWidget.title": "Comments", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Leaderboard", - "Widgets.LeaderboardWidget.title": "Leaderboard", - "Widgets.ProjectAboutWidget.label": "About Projects", - "Widgets.ProjectAboutWidget.title": "About Projects", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Project List", - "Widgets.ProjectListWidget.title": "Projects", - "Widgets.ProjectListWidget.search.placeholder": "Search", - "Widgets.ProjectManagersWidget.label": "Project Managers", - "Admin.ProjectManagers.noManagers": "No Managers", - "Admin.ProjectManagers.addManager": "Add Project Manager", - "Admin.ProjectManagers.projectOwner": "Owner", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Choose Role", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Overview", - "Widgets.ProjectOverviewWidget.title": "Overview", - "Widgets.RecentActivityWidget.label": "Recent Activity", - "Widgets.RecentActivityWidget.title": "Recent Activity", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Change Priority", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Export CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Priority", "AutosuggestTextBox.labels.noResults": "No matches", - "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", - "Form.textUpload.readonly": "Existing file will be used", - "Form.controls.addPriorityRule.label": "Add a Rule", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "وظیفه های باقیمانده: {taskCount, number}", + "BurndownChart.tooltip": "وظیفه های باقیمانده", + "CalendarHeatmap.heading": "نقشه حرارتی روزانه: اتمام وظیفه", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Custom", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Clear Filters", + "Challenge.controls.loadMore.label": "More Results", + "Challenge.controls.save.label": "Save", + "Challenge.controls.start.label": "Start", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Any", + "Challenge.difficulty.easy": "Easy", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Difficulty", "Challenge.fields.lastTaskRefresh.label": "Tasks From", "Challenge.fields.viewLeaderboard.label": "View Leaderboard", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Anything", + "Challenge.keywords.buildings": "Buildings", + "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", + "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Anywhere", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Near Me", + "Challenge.location.withinMapBounds": "Within Map Bounds", + "Challenge.management.controls.manage.label": "Manage", + "Challenge.results.heading": "Challenges", + "Challenge.results.noResults": "No Results", + "Challenge.signIn.label": "Sign in to get started", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Newest", + "Challenge.sort.default": "Default", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Building", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Failed", + "Challenge.status.finished": "Finished", + "Challenge.status.none": "Not Applicable", + "Challenge.status.partiallyLoaded": "Partially Loaded", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Challenge", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Manage", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "Difficulty", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.viewLeaderboard.label": "View Leaderboard", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Manage", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "Contact Owner", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", "ChallengeFilterSubnav.filter.difficulty.label": "Difficulty", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", "ChallengeFilterSubnav.filter.location.label": "Location", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Clear Filters", - "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Save", - "Challenge.controls.start.label": "Start", - "Challenge.management.controls.manage.label": "Manage", - "Challenge.signIn.label": "Sign in to get started", - "Challenge.results.heading": "Challenges", - "Challenge.results.noResults": "No Results", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "More Results", + "ChallengeFilterSubnav.header": "Challenges", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "Available", - "ChallengeProgress.tooltip.label": "Tasks", - "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Tasks", + "ChallengeProgressBorder.available": "Available", "CommentList.controls.viewTask.label": "View Task", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "وظیفه های تمام شده: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Cancel", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Continue", "CongratulateModal.header": "Congratulations!", "CongratulateModal.primaryMessage": "Challenge is complete", - "CongratulateModal.control.dismiss.label": "Continue", - "CountryName.ALL": "همه کشورها", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "امارات متحده عربی", "CountryName.AF": "افغانستان", - "CountryName.AO": "آنگولا", "CountryName.AL": "آلبانی", - "CountryName.AE": "امارات متحده عربی", - "CountryName.AR": "آرژانتین", + "CountryName.ALL": "همه کشورها", "CountryName.AM": "ارمنستان", + "CountryName.AO": "آنگولا", "CountryName.AQ": "جنوبگان (قطب جنوب)", - "CountryName.TF": "سرزمین های جنوبی فرانسه", - "CountryName.AU": "استرالیا", + "CountryName.AR": "آرژانتین", "CountryName.AT": "اتریش", + "CountryName.AU": "استرالیا", "CountryName.AZ": "آذربایجان", - "CountryName.BI": "بوروندی", + "CountryName.BA": "بوسنی و هرزگوین", + "CountryName.BD": "بنگلادش", "CountryName.BE": "بلژیک", - "CountryName.BJ": "بنین", "CountryName.BF": "بورکینافاسو", - "CountryName.BD": "بنگلادش", "CountryName.BG": "بلغارستان", - "CountryName.BS": "باهاما", - "CountryName.BA": "بوسنی و هرزگوین", - "CountryName.BY": "بلاروس", - "CountryName.BZ": "بلیز", + "CountryName.BI": "بوروندی", + "CountryName.BJ": "بنین", + "CountryName.BN": "برونئی", "CountryName.BO": "بولیوی", "CountryName.BR": "برزیل", - "CountryName.BN": "برونئی", + "CountryName.BS": "باهاما", "CountryName.BT": "بوتان", "CountryName.BW": "بوتسوانا", - "CountryName.CF": "جمهوری آفریقای مرکزی", + "CountryName.BY": "بلاروس", + "CountryName.BZ": "بلیز", "CountryName.CA": "کانادا", + "CountryName.CD": "کنگو (کینشاسا)", + "CountryName.CF": "جمهوری آفریقای مرکزی", + "CountryName.CG": " کنگو (برازاویل)", "CountryName.CH": "سوئیس", - "CountryName.CL": "شیلی", - "CountryName.CN": "چین", "CountryName.CI": "ساحل عاج", + "CountryName.CL": "شیلی", "CountryName.CM": "کامرون", - "CountryName.CD": "کنگو (کینشاسا)", - "CountryName.CG": " کنگو (برازاویل)", + "CountryName.CN": "چین", "CountryName.CO": "کلمبیا", "CountryName.CR": "کاستاریکا", "CountryName.CU": "کوبا", @@ -415,10 +485,10 @@ "CountryName.DO": "جمهوری دومینیکن", "CountryName.DZ": "الجزایر", "CountryName.EC": "اکوادور", + "CountryName.EE": "استونی", "CountryName.EG": "مصر", "CountryName.ER": "اریتره", "CountryName.ES": "اسپانیا", - "CountryName.EE": "استونی", "CountryName.ET": "اتیوپی", "CountryName.FI": "فنلاند", "CountryName.FJ": "فیجی", @@ -428,57 +498,58 @@ "CountryName.GB": "بریتانیا", "CountryName.GE": "گرجستان", "CountryName.GH": "غنا", - "CountryName.GN": "گینه", + "CountryName.GL": "گرینلند", "CountryName.GM": "گامبیا", - "CountryName.GW": "گینه بیسائو", + "CountryName.GN": "گینه", "CountryName.GQ": "گینه استوایی", "CountryName.GR": "یونان", - "CountryName.GL": "گرینلند", "CountryName.GT": "گواتمالا", + "CountryName.GW": "گینه بیسائو", "CountryName.GY": "گویان", "CountryName.HN": "هندوراس", "CountryName.HR": "کرواسی", "CountryName.HT": "هائیتی", "CountryName.HU": "مجارستان", "CountryName.ID": "اندونزی", - "CountryName.IN": "هند", "CountryName.IE": "ایرلند", - "CountryName.IR": "ایران", + "CountryName.IL": "اسرائیل", + "CountryName.IN": "هند", "CountryName.IQ": "عرلق", + "CountryName.IR": "ایران", "CountryName.IS": "ایسلند", - "CountryName.IL": "اسرائیل", "CountryName.IT": "ایتالیا", "CountryName.JM": "جامائیکا", "CountryName.JO": "اردن", "CountryName.JP": "ژاپن", - "CountryName.KZ": "قزاقستان", "CountryName.KE": "کنیا", "CountryName.KG": "قرقیزستان", "CountryName.KH": "کامبوج", + "CountryName.KP": "کره شمالی", "CountryName.KR": "کره جنوبی", "CountryName.KW": "کویت", + "CountryName.KZ": "قزاقستان", "CountryName.LA": "لائوس", "CountryName.LB": "لبنان", - "CountryName.LR": "لیبریا", - "CountryName.LY": "لیبی", "CountryName.LK": "سری‌لانکا", + "CountryName.LR": "لیبریا", "CountryName.LS": "لسوتو", "CountryName.LT": "لیتوانی", "CountryName.LU": "لوکزامبورگ", "CountryName.LV": "لاتویا", + "CountryName.LY": "لیبی", "CountryName.MA": "مراکش", "CountryName.MD": "مولداوی", + "CountryName.ME": "مونته نگرو", "CountryName.MG": "ماداگاسکار", - "CountryName.MX": "مکزیک", "CountryName.MK": "مقدونیه شمالی", "CountryName.ML": "مالی", "CountryName.MM": "میانمار", - "CountryName.ME": "مونته نگرو", "CountryName.MN": "مغولستان", - "CountryName.MZ": "موزامبیک", "CountryName.MR": "موریتانی", "CountryName.MW": "مالاوی", + "CountryName.MX": "مکزیک", "CountryName.MY": "مالزی", + "CountryName.MZ": "موزامبیک", "CountryName.NA": "نامیبیا", "CountryName.NC": "کالدونیای جدید", "CountryName.NE": "نیجر", @@ -489,460 +560,821 @@ "CountryName.NP": "نپال", "CountryName.NZ": "نیوزیلند", "CountryName.OM": "عمان", - "CountryName.PK": "پاکستان", "CountryName.PA": "پاناما", "CountryName.PE": "پرو", - "CountryName.PH": "فیلیپین", "CountryName.PG": "پاپوآ گینه نو", + "CountryName.PH": "فیلیپین", + "CountryName.PK": "پاکستان", "CountryName.PL": "لهستان", "CountryName.PR": "پورتوریکو", - "CountryName.KP": "کره شمالی", + "CountryName.PS": "کرانه باختری", "CountryName.PT": "پرتقال", "CountryName.PY": "پاراگوئه", "CountryName.QA": "قطر", "CountryName.RO": "رومانی", + "CountryName.RS": "صربستان", "CountryName.RU": "روسیه", "CountryName.RW": "رواندا", "CountryName.SA": "عربستان سعودی", - "CountryName.SD": "سودان", - "CountryName.SS": "سودان جنوبی", - "CountryName.SN": "سنگال", "CountryName.SB": "جزایر سلیمان", + "CountryName.SD": "سودان", + "CountryName.SE": "سوئد", + "CountryName.SI": "اسلوونی", + "CountryName.SK": "اسلواکی", "CountryName.SL": "سیرالئون", - "CountryName.SV": "السالوادور", + "CountryName.SN": "سنگال", "CountryName.SO": "سومالی", - "CountryName.RS": "صربستان", "CountryName.SR": "سورینام", - "CountryName.SK": "اسلواکی", - "CountryName.SI": "اسلوونی", - "CountryName.SE": "سوئد", - "CountryName.SZ": "اسواتینی", + "CountryName.SS": "سودان جنوبی", + "CountryName.SV": "السالوادور", "CountryName.SY": "سوریه", + "CountryName.SZ": "اسواتینی", "CountryName.TD": "چاد", + "CountryName.TF": "سرزمین های جنوبی فرانسه", "CountryName.TG": "توگو", "CountryName.TH": "تایلند", "CountryName.TJ": "تاجیکستان", - "CountryName.TM": "ترکمنستان", "CountryName.TL": "تیمور شرقی", - "CountryName.TT": "ترینیداد و توباگو", + "CountryName.TM": "ترکمنستان", "CountryName.TN": "تونس", "CountryName.TR": "ترکیه", + "CountryName.TT": "ترینیداد و توباگو", "CountryName.TW": "تایوان", "CountryName.TZ": "تانزانیا", - "CountryName.UG": "اوگاندا", "CountryName.UA": "اکراین", - "CountryName.UY": "اروگوئه", + "CountryName.UG": "اوگاندا", "CountryName.US": "ایالات متحده آمریکا", + "CountryName.UY": "اروگوئه", "CountryName.UZ": "ازبکستان", "CountryName.VE": "ونزوئلا", "CountryName.VN": "ویتنام", "CountryName.VU": "وانواتو", - "CountryName.PS": "کرانه باختری", "CountryName.YE": "یمن", "CountryName.ZA": "آفریقای شمالی", "CountryName.ZM": "زامبیا", "CountryName.ZW": "زیمبابوه", - "FitBoundsControl.tooltip": "Fit map to task features", - "LayerToggle.controls.showTaskFeatures.label": "Task Features", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(loading...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Edit in iD (web editor)", + "Editor.josm.label": "Edit in JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "Edit in new JOSM layer", + "Editor.level0.label": "Edit in Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Get Help", - "Footer.reportBug": "Report a Bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Follow Us", - "Footer.email.placeholder": "Email Address", - "Footer.email.submit.label": "Submit", - "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", - "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", - "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", - "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Unable to delete challenge.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Unable to delete task.", + "Errors.task.doesNotExist": "That task does not exist.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "No tasks remain in this challenge.", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Unable to fetch user data from server.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", + "Errors.user.notFound": "No user found with that username.", + "Errors.user.unauthenticated": "Please sign in to continue.", + "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Fit map to task features", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Email Address", + "Footer.email.submit.label": "Submit", + "Footer.followUs": "Follow Us", + "Footer.getHelp": "Get Help", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Report a Bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Add a Rule", + "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", + "Form.textUpload.readonly": "Existing file will be used", + "General.controls.moreResults.label": "More Results", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Help", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "HomePane.feedback.header": "Feedback", + "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Get Started", - "Admin.TaskInspect.controls.previousTask.label": "Prior Task", - "Admin.TaskInspect.controls.nextTask.label": "Next Task", - "Admin.TaskInspect.controls.editTask.label": "Edit Task", - "Admin.TaskInspect.controls.modifyTask.label": "اصلاح وظیفه", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "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.editJosm": "Edit in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", + "KeyMapping.openEditor.editLevel0": "Edit in Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Not an Issue", + "KeyMapping.taskCompletion.fixed": "I fixed it!", + "KeyMapping.taskCompletion.skip": "Skip", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancel Editing", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Next Task", + "KeyMapping.taskInspect.prevTask": "Previous Task", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Add keyword", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "More Results", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(loading...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Leaderboard", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "Points", + "Leaderboard.user.topChallenges": "Top Challenges", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Sorry, MapRoulette does not currently support mobile devices.", "MobileNotSupported.pageMessage": "Sorry, this page is not yet compatible with mobile devices and smaller screens.", "MobileNotSupported.widenDisplay": "If using a computer, please widen your window or use a larger display.", - "Navbar.links.dashboard": "Dashboard", + "MobileTask.subheading.instructions": "Instructions", + "Navbar.links.admin": "Create & Manage", "Navbar.links.challengeResults": "Find Challenges", - "Navbar.links.leaderboard": "Leaderboard", + "Navbar.links.dashboard": "Dashboard", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Learn", "Navbar.links.inbox": "Inbox", + "Navbar.links.leaderboard": "Leaderboard", "Navbar.links.review": "Review", - "Navbar.links.admin": "Create & Manage", - "Navbar.links.help": "Learn", - "Navbar.links.userProfile": "User Settings", - "Navbar.links.userMetrics": "User Metrics", "Navbar.links.signout": "Sign out", - "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "User Metrics", + "Navbar.links.userProfile": "User Settings", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "My Points", "PopularChallenges.header": "Popular Challenges", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", + "Profile.form.defaultBasemap.label": "Default Basemap", + "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.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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", + "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", + "Profile.form.locale.description": "User locale to use for MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", - "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "Approve", - "Admin.TaskReview.controls.rejected": "Reject", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", - "Admin.TaskReview.controls.startReview": "Start Review", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Submit for Review Again", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "بازسازی وظیفه ها", + "RebuildTasksControl.modal.controls.cancel.label": "Cancel", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Proceed", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", + "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "بازسازی وظیفه های چالش", + "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tracked Tasks", - "Task.unsave.control.tooltip": "Stop Tracking", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "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.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Copy", "SignIn.control.label": "Sign in", "SignIn.control.longLabel": "Sign in to get started", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Cancel", + "StepNavigation.controls.finish.label": "Finish", + "StepNavigation.controls.next.label": "Next", + "StepNavigation.controls.prev.label": "Prev", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Internal Id", - "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "وضعیت", - "Task.fields.priority.label": "اولویت", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Review Status", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapper", - "Task.fields.reviewedBy.label": "Reviewer", - "Admin.fields.reviewedAt.label": "Reviewed On", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "نظرات", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "بررسی کردن", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Admin.TaskAnalysisTable.controls.editTask.label": "ویرایش", - "Admin.TaskAnalysisTable.controls.startTask.label": "شروع", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Change status to", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Export CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Your comment", - "Task.comments.comment.controls.submit.label": "Submit", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Comments", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Next task:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Cancel", - "TaskConfirmationModal.submit.label": "Submit", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Task marked as", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "More Options", + "Task.comments.comment.controls.submit.label": "Submit", "Task.controls.alreadyFixed.label": "Already fixed", "Task.controls.alreadyFixed.tooltip": "Already fixed", "Task.controls.cancelEditing.label": "Cancel Editing", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "I fixed it!", - "ActiveTask.controls.notFixed.label": "Too difficult / Couldn't see", - "ActiveTask.controls.aleadyFixed.label": "Already fixed", - "ActiveTask.controls.cancelEditing.label": "Go Back", + "Task.controls.completionComment.placeholder": "Your comment", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Contact Owner", "Task.controls.edit.label": "Edit", "Task.controls.edit.tooltip": "Edit", "Task.controls.falsePositive.label": "Not an Issue", "Task.controls.falsePositive.tooltip": "Not an Issue", "Task.controls.fixed.label": "I fixed it!", "Task.controls.fixed.tooltip": "I fixed it!", + "Task.controls.moreOptions.label": "More Options", "Task.controls.next.label": "Next Task", - "Task.controls.next.tooltip": "Next Task", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Next Task", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Skip", "Task.controls.skip.tooltip": "Skip Task", - "Task.controls.tooHard.label": "Too hard / Can't see", - "Task.controls.tooHard.tooltip": "Too hard / Can't see", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Task Details", - "ActiveTask.controls.comments.tooltip": "View Comments", - "ActiveTask.subheading.comments": "Comments", - "ActiveTask.heading": "Challenge Information", - "ActiveTask.subheading.instructions": "Instructions", - "ActiveTask.subheading.location": "Location", - "ActiveTask.subheading.progress": "Challenge Progress", - "ActiveTask.subheading.social": "Share", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructions", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "اصلاح", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Track this Task", "Task.controls.untrack.label": "Stop tracking this Task", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Available", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Feature Id", + "Task.fields.id.label": "Internal Id", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "اولویت", + "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Review Status", + "Task.fields.reviewedBy.label": "Reviewer", + "Task.fields.status.label": "وضعیت", + "Task.loadByMethod.proximity": "Nearby", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "اصلاح", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Task marked as", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "High", + "Task.priority.low": "Low", + "Task.priority.medium": "Medium", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Already Fixed", + "Task.status.created": "Created", + "Task.status.deleted": "Deleted", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Not an Issue", + "Task.status.fixed": "Fixed", + "Task.status.skipped": "Skipped", + "Task.status.tooHard": "Too Hard", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "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.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Comments", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Cancel", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Next task:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Existing Status", - "ActiveTask.controls.status.tooltip": "Existing Status", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Your Top Challenges", "TopUserChallenges.widget.label": "Your Top Challenges", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tracked Tasks", + "UserProfile.topChallenges.header": "Your Top Challenges", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Tasks Remaining: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "Challenges", + "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Widgets.ChallengeListWidget.title": "Challenges", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", + "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Overview", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", + "Widgets.ChallengeTasksWidget.label": "Tasks", + "Widgets.ChallengeTasksWidget.title": "Tasks", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Comments", + "Widgets.CommentsWidget.title": "Comments", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Challenge has no tasks", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Leaderboard", + "Widgets.LeaderboardWidget.title": "Leaderboard", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "About Projects", + "Widgets.ProjectAboutWidget.title": "About Projects", + "Widgets.ProjectListWidget.label": "Project List", + "Widgets.ProjectListWidget.search.placeholder": "Search", + "Widgets.ProjectListWidget.title": "Projects", + "Widgets.ProjectManagersWidget.label": "Project Managers", + "Widgets.ProjectOverviewWidget.label": "Overview", + "Widgets.ProjectOverviewWidget.title": "Overview", + "Widgets.RecentActivityWidget.label": "Recent Activity", + "Widgets.RecentActivityWidget.title": "Recent Activity", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Leaderboard", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### 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| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Points", - "Leaderboard.user.topChallenges": "Top Challenges", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Default Editor", - "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.defaultBasemap.label": "Default Basemap", - "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "User locale to use for MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", - "Profile.form.leaderboardOptOut.description": "If yes, you will **not** appear on the public leaderboard.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Updated", - "Activity.action.created": "Created", - "Activity.action.deleted": "Deleted", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Project", - "Activity.item.challenge": "Challenge", - "Activity.item.task": "Task", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Custom", - "Challenge.difficulty.easy": "Easy", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Any", - "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", - "Challenge.keywords.buildings": "Buildings", - "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Anything", - "Challenge.location.nearMe": "Near Me", - "Challenge.location.withinMapBounds": "Within Map Bounds", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Anywhere", - "Challenge.status.none": "Not Applicable", - "Challenge.status.building": "Building", - "Challenge.status.failed": "Failed", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partially Loaded", - "Challenge.status.finished": "Finished", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Challenge", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Edit in iD (web editor)", - "Editor.josm.label": "Edit in JOSM", - "Editor.josmLayer.label": "Edit in new JOSM layer", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Edit in Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", - "Errors.user.unauthenticated": "Please sign in to continue.", - "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Unable to fetch user data from server.", - "Errors.user.notFound": "No user found with that username.", - "Errors.leaderboard.fetchFailure": "Unable to fetch leaderboard.", - "Errors.task.none": "No tasks remain in this challenge.", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Unable to delete task.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "That task does not exist.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Unable to retrieve latest challenge data from server.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Unable to delete challenge.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Edit in Id", - "KeyMapping.openEditor.editJosm": "Edit in JOSM", - "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Edit in Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Cancel Editing", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Skip", - "KeyMapping.taskCompletion.falsePositive": "Not an Issue", - "KeyMapping.taskCompletion.fixed": "I fixed it!", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Already fixed", - "KeyMapping.taskInspect.nextTask": "Next Task", - "KeyMapping.taskInspect.prevTask": "Previous Task", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Newest", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Default", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Nearby", - "Task.priority.high": "High", - "Task.priority.medium": "Medium", - "Task.priority.low": "Low", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Created", - "Task.status.fixed": "Fixed", - "Task.status.falsePositive": "Not an Issue", - "Task.status.skipped": "Skipped", - "Task.status.deleted": "Deleted", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Already Fixed", - "Task.status.tooHard": "Too Hard", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/fr.json b/src/lang/fr.json index db47f09de..2981a9458 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Votre activité récente", - "BurndownChart.heading": "Tâches disponibles {taskCount, number}", - "BurndownChart.tooltip": "Tâches disponibles", - "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "ActiveTask.controls.aleadyFixed.label": "Déjà résolue", + "ActiveTask.controls.cancelEditing.label": "Retour", + "ActiveTask.controls.comments.tooltip": "Voir les commentaires", + "ActiveTask.controls.fixed.label": "J'ai résolu la tâche !", + "ActiveTask.controls.info.tooltip": "Détails de la tâche", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Statut existant", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Informations sur le défi", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Commentaires", + "ActiveTask.subheading.instructions": "Instruction", + "ActiveTask.subheading.location": "Localisation", + "ActiveTask.subheading.progress": "Progression du défi", + "ActiveTask.subheading.social": "Share", + "ActiveTask.subheading.status": "Statut existant", + "Activity.action.created": "Created", + "Activity.action.deleted": "Supprimée", + "Activity.action.questionAnswered": "Question/réponse ", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Updated", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Défi", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Tâche", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Activité récente", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "Clôner", + "Admin.Challenge.controls.delete.label": "Supprimer le Défi", + "Admin.Challenge.controls.edit.label": "Éditer", + "Admin.Challenge.controls.move.label": "Move Challenge", + "Admin.Challenge.controls.move.none": "No permitted projects", + "Admin.Challenge.controls.refreshStatus.label": "Refresh Status", + "Admin.Challenge.controls.start.label": "Démarrer le Défi", + "Admin.Challenge.controls.startChallenge.label": "Démarrer", + "Admin.Challenge.fields.creationDate.label": "Created:", + "Admin.Challenge.fields.enabled.label": "Visible :", + "Admin.Challenge.fields.lastModifiedDate.label": "Modifié :", + "Admin.Challenge.fields.status.label": "Statut :", + "Admin.Challenge.tasksBuilding": "Création de la tâche...", + "Admin.Challenge.tasksCreatedCount": "tâches déjà créées", + "Admin.Challenge.tasksFailed": "La tâche n'a pas réussi à être créée", + "Admin.Challenge.tasksNone": "Pas de tâche", + "Admin.Challenge.totalCreationTime": "Total elapsed time:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Options", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nom du Défi", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Fait", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Visible", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Dernière Activité", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Éditer", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Démarrer", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nom du Défi", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Completion Progress", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Cloner", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Inclure la colonne de statut", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Démarrer le Défi", - "Admin.Challenge.controls.edit.label": "Éditer", - "Admin.Challenge.controls.move.label": "Move Challenge", - "Admin.Challenge.controls.move.none": "No permitted projects", - "Admin.Challenge.controls.clone.label": "Clôner", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Supprimer le Défi", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Éditer", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Manage", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Inclure la colonne de statut", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Démarrer", "Admin.ChallengeList.noChallenges": "Aucun Défi", - "ChallengeProgressBorder.available": "Disponible", - "CompletionRadar.heading": "Tâches achevées : {taskCount, number}", - "Admin.EditProject.unavailable": "Projet indisponible", - "Admin.EditProject.edit.header": "Éditer", - "Admin.EditProject.new.header": "Nouveau Projet", - "Admin.EditProject.controls.save.label": "Sauvegarder", - "Admin.EditProject.controls.cancel.label": "Annuler", - "Admin.EditProject.form.name.label": "Nom", - "Admin.EditProject.form.name.description": "Nom du projet", - "Admin.EditProject.form.displayName.label": "Nom affiché", - "Admin.EditProject.form.displayName.description": "Nom du projet", - "Admin.EditProject.form.enabled.label": "Visible", - "Admin.EditProject.form.enabled.description": "Indiquez si le projet est visible ou non.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtuel", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Description", - "Admin.EditProject.form.description.description": "Description du projet", - "Admin.InspectTask.header": "Inspect Tasks", - "Admin.EditChallenge.edit.header": "Éditer", + "Admin.ChallengeTaskMap.controls.editTask.label": "Éditer la tâche", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspecter la tâche", "Admin.EditChallenge.clone.header": "Clôner", - "Admin.EditChallenge.new.header": "Nouveau défi", - "Admin.EditChallenge.lineNumber": "Ligne {line, number} :", + "Admin.EditChallenge.edit.header": "Éditer", "Admin.EditChallenge.form.addMRTags.placeholder": "Ajouter les tags MR", - "Admin.EditChallenge.form.step1.label": "Général", - "Admin.EditChallenge.form.visible.label": "Visible", - "Admin.EditChallenge.form.visible.description": "Indiquer si la défi est visible ou non.", - "Admin.EditChallenge.form.name.label": "Nom", - "Admin.EditChallenge.form.name.description": "Saisir le nom du défi. (nécessaire)", - "Admin.EditChallenge.form.description.label": "Description", - "Admin.EditChallenge.form.description.description": "Saisir une description du défi. (optionel)", - "Admin.EditChallenge.form.blurb.label": "Accroche", + "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Mots-clés", "Admin.EditChallenge.form.blurb.description": "Rédiger une petite acrroche pour le défi. (optionel)", - "Admin.EditChallenge.form.instruction.label": "Instructions", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Description du groupe de modifications", + "Admin.EditChallenge.form.blurb.label": "Accroche", + "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", + "Admin.EditChallenge.form.category.label": "Catégorie", "Admin.EditChallenge.form.checkinComment.description": "Comment to be associated with changes made by users in editor", - "Admin.EditChallenge.form.checkinSource.label": "Source du Changeset", + "Admin.EditChallenge.form.checkinComment.label": "Description du groupe de modifications", "Admin.EditChallenge.form.checkinSource.description": "Source to be associated with changes made by users in editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", - "Admin.EditChallenge.form.difficulty.label": "Difficulté", + "Admin.EditChallenge.form.checkinSource.label": "Source du Changeset", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Fond de carte personnalisé", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "Admin.EditChallenge.form.defaultBasemap.description": "Fond de carte personnalisé qui sera utilisé pour le défi, il remplacera le fond de carte défini dans les personnalisation de l'utilisateur.", + "Admin.EditChallenge.form.defaultBasemap.label": "Fond de carte du défi", + "Admin.EditChallenge.form.defaultPriority.description": "Ajouter le niveau de priorité par défaut pour les tâches du défi", + "Admin.EditChallenge.form.defaultPriority.label": "Priorité par défaut", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Niveau de zoom par défaut", + "Admin.EditChallenge.form.description.description": "Saisir une description du défi. (optionel)", + "Admin.EditChallenge.form.description.label": "Description", "Admin.EditChallenge.form.difficulty.description": "Saisir le niveau de difficulté du défi", - "Admin.EditChallenge.form.category.label": "Catégorie", - "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", - "Admin.EditChallenge.form.additionalKeywords.label": "Mots-clés", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "En vedette", + "Admin.EditChallenge.form.difficulty.label": "Difficulté", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Featured challenges are shown at the top of the list when browsing and searching challenges. Only super-users may mark a a challenge as featured.", - "Admin.EditChallenge.form.step2.label": "GeoJSON", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON", - "Admin.EditChallenge.form.overpassQL.label": "Requête API Overpass", + "Admin.EditChallenge.form.featured.label": "En vedette", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Allowing the hashtag to be appended to changeset comments is very useful for changeset analysis.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Skip hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Automatically append #maproulette hashtag (highly recommended)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instructions", + "Admin.EditChallenge.form.localGeoJson.description": "Choisisser localement le fichier GeoJSON à téléverser.", + "Admin.EditChallenge.form.localGeoJson.label": "Téléverser le fichier GeoJSON", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Niveau de zoom maximum", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Niveau de zoom minimum", + "Admin.EditChallenge.form.name.description": "Saisir le nom du défi. (nécessaire)", + "Admin.EditChallenge.form.name.label": "Nom", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Se rendre sur la page https://wiki.openstreetmap.org/wiki/FR:Overpass_API/Language_Guide. En entrant des informations ici, cela générera les tâches en arrière-plan. Fournissez une zone de délimitation appropriée (bbox) lors de l'insertion d'une requête Overpass, car cela peut générer de grandes quantités de données et faire tomber le service.", + "Admin.EditChallenge.form.overpassQL.label": "Requête API Overpass", "Admin.EditChallenge.form.overpassQL.placeholder": "Saisir la requête Overpass API ici...", - "Admin.EditChallenge.form.localGeoJson.label": "Téléverser le fichier GeoJSON", - "Admin.EditChallenge.form.localGeoJson.description": "Choisisser localement le fichier GeoJSON à téléverser.", - "Admin.EditChallenge.form.remoteGeoJson.label": "URL du GeoJSON distant", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Saisir l'URL permettant de récupérer le GeoJSON distant.", + "Admin.EditChallenge.form.remoteGeoJson.label": "URL du GeoJSON distant", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Âge de la donnée. Date à laquelle la donnée a été téléchargée, générée, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignore Errors", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Nécessite une connaissance terrain", + "Admin.EditChallenge.form.source.label": "GeoJSON", + "Admin.EditChallenge.form.step1.label": "Général", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Priorités", - "Admin.EditChallenge.form.step3.description": "La priorité des tâches peut être définie par Haut, Moyen ou Bas. Toutes les tâches prioritaires seront affichées en premier, puis moyennes et enfin basses. Cela peut être utile si vous avez un grand nombre de tâches et que vous souhaitez que certaines tâches soient réparées en premier.", - "Admin.EditChallenge.form.defaultPriority.label": "Priorité par défaut", - "Admin.EditChallenge.form.defaultPriority.description": "Ajouter le niveau de priorité par défaut pour les tâches du défi", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Information supplémentaire pour une meilleur expérience cartographique spécifique aux exigences du défi.", - "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Niveau de zoom par défaut", - "Admin.EditChallenge.form.defaultZoom.description": "Définissez le niveau de zoom par défaut qui sera utilisé lorsqu'une tâche est affichée sur la carte.", - "Admin.EditChallenge.form.minZoom.label": "Niveau de zoom minimum", - "Admin.EditChallenge.form.minZoom.description": "Définir le niveau de zoom minimum pour une tâche qui s'affiche sur la carte.", - "Admin.EditChallenge.form.maxZoom.label": "Niveau de zoom maximum", - "Admin.EditChallenge.form.maxZoom.description": "Définir le niveau de zoom maximum pour une tâche qui s'affiche sur la carte.", - "Admin.EditChallenge.form.defaultBasemap.label": "Fond de carte du défi", - "Admin.EditChallenge.form.defaultBasemap.description": "Fond de carte personnalisé qui sera utilisé pour le défi, il remplacera le fond de carte défini dans les personnalisation de l'utilisateur.", - "Admin.EditChallenge.form.customBasemap.label": "Fond de carte personnalisé", - "Admin.EditChallenge.form.customBasemap.description": "Insérez l'URL d'un fond de carte personnalisé ici. Ex. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Terminé", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Effacer", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Terminé", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Nécessite une connaissance terrain", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Défis", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", - "Admin.ManageChallenges.search.placeholder": "Nom", - "Admin.ManageChallenges.allProjectChallenge": "Tous", - "Admin.Challenge.fields.creationDate.label": "Created:", - "Admin.Challenge.fields.lastModifiedDate.label": "Modifié :", - "Admin.Challenge.fields.status.label": "Statut :", - "Admin.Challenge.fields.enabled.label": "Visible :", - "Admin.Challenge.controls.startChallenge.label": "Démarrer", - "Admin.Challenge.activity.label": "Activité récente", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Remove Stale Tasks", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Visible", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "Nouveau défi", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Annuler", + "Admin.EditProject.controls.save.label": "Sauvegarder", + "Admin.EditProject.edit.header": "Éditer", + "Admin.EditProject.form.description.description": "Description du projet", + "Admin.EditProject.form.description.label": "Description", + "Admin.EditProject.form.displayName.description": "Nom du projet", + "Admin.EditProject.form.displayName.label": "Nom affiché", + "Admin.EditProject.form.enabled.description": "Indiquez si le projet est visible ou non.", + "Admin.EditProject.form.enabled.label": "Visible", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtuel", + "Admin.EditProject.form.name.description": "Nom du projet", + "Admin.EditProject.form.name.label": "Nom", + "Admin.EditProject.new.header": "Nouveau Projet", + "Admin.EditProject.unavailable": "Projet indisponible", + "Admin.EditTask.controls.cancel.label": "Annuler", + "Admin.EditTask.controls.save.label": "Sauvegarder", "Admin.EditTask.edit.header": "Éditer la tâche", - "Admin.EditTask.new.header": "Nouvelle tâche", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "Tags MR", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "Détails de la tâche", - "Admin.EditTask.controls.save.label": "Sauvegarder", - "Admin.EditTask.controls.cancel.label": "Annuler", - "Admin.EditTask.form.name.label": "Nom", - "Admin.EditTask.form.name.description": "Nom de la tâche", - "Admin.EditTask.form.instruction.label": "Instructions pour la tâche", - "Admin.EditTask.form.instruction.description": "Saisir les instructions pour la tâche (nécessaire).", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "Sélectionner le GeoJSON pour la tâche (nécessaire).", - "Admin.EditTask.form.priority.label": "Priorité", - "Admin.EditTask.form.status.label": "Statut", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Saisir les instructions pour la tâche (nécessaire).", + "Admin.EditTask.form.instruction.label": "Instructions pour la tâche", + "Admin.EditTask.form.name.description": "Nom de la tâche", + "Admin.EditTask.form.name.label": "Nom", + "Admin.EditTask.form.priority.label": "Priorité", "Admin.EditTask.form.status.description": "Saisir l'état de la tâche", - "Admin.EditTask.form.additionalTags.label": "Tags MR", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Éditer la tâche", - "Admin.Task.controls.editTask.label": "Éditer", - "Admin.manage.header": "Administration", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Défis", - "Admin.ProjectCard.tabs.details.label": "Détails", - "Admin.ProjectCard.tabs.managers.label": "Managers", - "Admin.Project.fields.enabled.tooltip": "Enabled", - "Admin.Project.fields.disabled.tooltip": "Disabled", - "Admin.ProjectCard.controls.editProject.tooltip": "Modifier le projet", - "Admin.ProjectCard.controls.editProject.label": "Modifier le projet", - "Admin.ProjectCard.controls.pinProject.label": "Épingler le projet", - "Admin.ProjectCard.controls.unpinProject.label": "Détacher le projet", + "Admin.EditTask.form.status.label": "Statut", + "Admin.EditTask.new.header": "Nouvelle tâche", + "Admin.InspectTask.header": "Inspect Tasks", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "Tous", + "Admin.ManageChallenges.header": "Défis", + "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.search.placeholder": "Nom", + "Admin.ManageTasks.geographicIndexingNotice": "Merci de noter que l'indexation géographique des défis créé ou modifiés peut prendre jusqu'à {delay} heures. Votre défi (et les tâches) pourrait ne pas apparaître comme attendu dans la navigation géographique ou les recherches tant que l'indexation n'est pas achevée.", + "Admin.ManageTasks.header": "Tâches", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Créer un nouveau défi", + "Admin.Project.controls.addChallenge.tooltip": "Nouveau défi", + "Admin.Project.controls.delete.label": "Supprimer le projet", + "Admin.Project.controls.export.label": "Exporter en CSV", "Admin.Project.controls.manageChallengeList.label": "Gérer la liste des défis", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible :", + "Admin.Project.fields.creationDate.label": "Created:", + "Admin.Project.fields.disabled.tooltip": "Disabled", + "Admin.Project.fields.enabled.tooltip": "Enabled", + "Admin.Project.fields.lastModifiedDate.label": "Modifié :", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Exporter en CSV", - "Admin.ProjectDashboard.controls.edit.label": "Modifier le projet", - "Admin.ProjectDashboard.controls.delete.label": "Supprimer le projet", + "Admin.ProjectCard.controls.editProject.label": "Modifier le projet", + "Admin.ProjectCard.controls.editProject.tooltip": "Modifier le projet", + "Admin.ProjectCard.controls.pinProject.label": "Épingler le projet", + "Admin.ProjectCard.controls.unpinProject.label": "Détacher le projet", + "Admin.ProjectCard.tabs.challenges.label": "Défis", + "Admin.ProjectCard.tabs.details.label": "Détails", + "Admin.ProjectCard.tabs.managers.label": "Managers", "Admin.ProjectDashboard.controls.addChallenge.label": "Ajouter un défi", + "Admin.ProjectDashboard.controls.delete.label": "Supprimer le projet", + "Admin.ProjectDashboard.controls.edit.label": "Modifier le projet", "Admin.ProjectDashboard.controls.manageChallenges.label": "Gérer les défis", - "Admin.Project.fields.creationDate.label": "Created:", - "Admin.Project.fields.lastModifiedDate.label": "Modifié :", - "Admin.Project.controls.delete.label": "Supprimer le projet", - "Admin.Project.controls.visible.label": "Visible :", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choisir un projet", - "ProjectPickerModal.noProjects": "Aucun projet trouvé", - "Admin.ProjectsDashboard.newProject": "Nouveau Projet", + "Admin.ProjectManagers.addManager": "Ajouter un gestionnaire au projet", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nom d'utilisateur OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Êtes-vous sûr de vouloir retirer ce gestionnaire du projet ?", + "Admin.ProjectManagers.controls.removeManager.label": "Retirer un gestionnaire", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Choisir un rôle", + "Admin.ProjectManagers.noManagers": "Aucun gestionnaire", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Propriétaire", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projects serve as a means of grouping related challenges together. All challenges must belong to a project.", - "Admin.ProjectsDashboard.search.placeholder": "Nom", - "Admin.Project.controls.addChallenge.tooltip": "Nouveau défi", + "Admin.ProjectsDashboard.newProject": "Nouveau Projet", "Admin.ProjectsDashboard.regenerateHomeProject": "Merci de vous déconnecter et vous reconnecter pour regénérer la page d'accueil", - "RebuildTasksControl.label": "Rebuild Tasks", - "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge's remote URL and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", - "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Annuler", - "RebuildTasksControl.modal.controls.proceed.label": "Continuer", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Annuler", - "StepNavigation.controls.next.label": "Suivant", - "StepNavigation.controls.prev.label": "Précédent", - "StepNavigation.controls.finish.label": "Sauvegarder", + "Admin.ProjectsDashboard.search.placeholder": "Nom", + "Admin.Task.controls.editTask.label": "Éditer", + "Admin.Task.controls.editTask.tooltip": "Éditer la tâche", + "Admin.Task.fields.name.label": "Task:", + "Admin.Task.fields.status.label": "Statut", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Modifier", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecter", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Vérifier", + "Admin.TaskAnalysisTable.controls.startTask.label": "Commencer", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Affiché", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Sélectionnées : {selectedCount} tâches", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Affichées : {countShown} tâches", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Affichées : {percentShown} % ({countShown}) de {countTotal} tâches", "Admin.TaskDeletingProgress.deletingTasks.header": "Suppression des tâches", "Admin.TaskDeletingProgress.tasksDeleting.label": "tâches supprimées", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Supprimer la règle", - "Admin.TaskPropertyStyleRules.addRule": "Ajouter une autre règle", + "Admin.TaskInspect.controls.editTask.label": "Éditer la tâche", + "Admin.TaskInspect.controls.modifyTask.label": "Modifier la tâche", + "Admin.TaskInspect.controls.nextTask.label": "Suivant", + "Admin.TaskInspect.controls.previousTask.label": "Précédent", + "Admin.TaskInspect.readonly.message": "Prévisualiser la tâche en mode lecture seule", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Ajouter", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Ajouter un autre style", + "Admin.TaskPropertyStyleRules.addRule": "Ajouter une autre règle", + "Admin.TaskPropertyStyleRules.deleteRule": "Supprimer la règle", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Supprimer le style", "Admin.TaskPropertyStyleRules.styleName": "Nom du style", "Admin.TaskPropertyStyleRules.styleValue": "Valeur du style", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "valeur", - "Admin.TaskUploadProgress.uploadingTasks.header": "Création des tâches", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approuver", + "Admin.TaskReview.controls.approvedWithFixes": "Approuver (avec corrections)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Statut de vérification :", + "Admin.TaskReview.controls.currentTaskStatus.label": "Statut de la tâche :", + "Admin.TaskReview.controls.rejected": "Refuser", + "Admin.TaskReview.controls.resubmit": "Renvoyer pour vérification", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Cette tâche est actuellement vérifiée par quelqu'un d'autre.", + "Admin.TaskReview.controls.reviewNotRequested": "Aucune vérification n'a été demandé pour cette tâche.", + "Admin.TaskReview.controls.skipReview": "Passer la vérification", + "Admin.TaskReview.controls.startReview": "Commencer la vérification", + "Admin.TaskReview.controls.taskNotCompleted": "Cette tâche n'est pas encore disponible pour vérification car elle n'a pas encore été finalisée.", + "Admin.TaskReview.controls.taskTags.label": "Tags :", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Mettre à jour le statut de vérification", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "Vous ne pouvez pas vérifier une tâche que vous à laquelle vous avez contribué.", "Admin.TaskUploadProgress.tasksUploaded.label": "tâches chargées", - "Admin.Challenge.tasksBuilding": "Création de la tâche...", - "Admin.Challenge.tasksFailed": "La tâche n'a pas réussi à être créée", - "Admin.Challenge.tasksNone": "Pas de tâche", - "Admin.Challenge.tasksCreatedCount": "tâches déjà créées", - "Admin.Challenge.totalCreationTime": "Total elapsed time:", - "Admin.Challenge.controls.refreshStatus.label": "Refresh Status", - "Admin.ManageTasks.header": "Tâches", - "Admin.ManageTasks.geographicIndexingNotice": "Merci de noter que l'indexation géographique des défis créé ou modifiés peut prendre jusqu'à {delay} heures. Votre défi (et les tâches) pourrait ne pas apparaître comme attendu dans la navigation géographique ou les recherches tant que l'indexation n'est pas achevée.", - "Admin.manageTasks.controls.changePriority.label": "Changer la priorité", - "Admin.manageTasks.priorityLabel": "Priorité", - "Admin.manageTasks.controls.clearFilters.label": "Effacer les filtres", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspecter la tâche", - "Admin.ChallengeTaskMap.controls.editTask.label": "Éditer la tâche", - "Admin.Task.fields.name.label": "Task:", - "Admin.Task.fields.status.label": "Statut", - "Admin.VirtualProject.manageChallenge.label": "Gérer les défis", - "Admin.VirtualProject.controls.done.label": "Terminé", - "Admin.VirtualProject.controls.addChallenge.label": "Ajouter un défi", + "Admin.TaskUploadProgress.uploadingTasks.header": "Création des tâches", "Admin.VirtualProject.ChallengeList.noChallenges": "Aucun défi", "Admin.VirtualProject.ChallengeList.search.placeholder": "Rechercher", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Trouver des défis", "Admin.VirtualProject.controls.add.label": "Ajouter", + "Admin.VirtualProject.controls.addChallenge.label": "Ajouter un défi", + "Admin.VirtualProject.controls.done.label": "Terminé", "Admin.VirtualProject.controls.remove.label": "Supprimer", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Tâches restantes : {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "Défis", - "Widgets.ChallengeListWidget.title": "Défis", - "Widgets.ChallengeListWidget.search.placeholder": "Recherche", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Trouver des défis", + "Admin.VirtualProject.manageChallenge.label": "Gérer les défis", + "Admin.fields.completedDuration.label": "Durée d'achèvement", + "Admin.fields.reviewDuration.label": "Temps de vérification", + "Admin.fields.reviewedAt.label": "Vérifié le", + "Admin.manage.header": "Administration", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Exporter en CSV", - "Widgets.ChallengeOverviewWidget.label": "Aperçu du défi", - "Widgets.ChallengeOverviewWidget.title": "Aperçu", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Créé :", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modifié :", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tâches de :", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Statut :", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible :", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Mots-clefs :", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "projet non visible", - "Widgets.ChallengeTasksWidget.label": "Tâches", - "Widgets.ChallengeTasksWidget.title": "Tâches", - "Widgets.CommentsWidget.label": "Commentaires", - "Widgets.CommentsWidget.title": "Commentaires", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Classement", - "Widgets.LeaderboardWidget.title": "Classement", - "Widgets.ProjectAboutWidget.label": "About Projects", - "Widgets.ProjectAboutWidget.title": "About Projects", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Liste des projets", - "Widgets.ProjectListWidget.title": "Projets", - "Widgets.ProjectListWidget.search.placeholder": "Recherche", - "Widgets.ProjectManagersWidget.label": "Gestionnaires du projet", - "Admin.ProjectManagers.noManagers": "Aucun gestionnaire", - "Admin.ProjectManagers.addManager": "Ajouter un gestionnaire au projet", - "Admin.ProjectManagers.projectOwner": "Propriétaire", - "Admin.ProjectManagers.controls.removeManager.label": "Retirer un gestionnaire", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Êtes-vous sûr de vouloir retirer ce gestionnaire du projet ?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Choisir un rôle", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nom d'utilisateur OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Aperçu", - "Widgets.ProjectOverviewWidget.title": "Aperçu", - "Widgets.RecentActivityWidget.label": "Activité récente", - "Widgets.RecentActivityWidget.title": "Activité récente", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Evaluated by User", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Sélectionner des tâches", + "Admin.manageTasks.controls.changePriority.label": "Changer la priorité", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Effacer les filtres", + "Admin.manageTasks.controls.configureColumns.label": "Configurer les colonnes", + "Admin.manageTasks.controls.exportCSV.label": "Exporter en CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Exporter en GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Marquer la colonne de vérification", + "Admin.manageTasks.controls.showReviewColumns.label": "Afficher la colonne de vérification", + "Admin.manageTasks.priorityLabel": "Priorité", "AutosuggestTextBox.labels.noResults": "No matches", - "Form.textUpload.prompt": "Drop file here or click to select file", - "Form.textUpload.readonly": "Existing file will be used", - "Form.controls.addPriorityRule.label": "Ajouter une règle", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Tâches disponibles {taskCount, number}", + "BurndownChart.tooltip": "Tâches disponibles", + "CalendarHeatmap.heading": "Daily Heatmap: Task Completion", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Personnalisation", + "Challenge.basemap.none": "Aucun", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OSM", + "Challenge.controls.clearFilters.label": "Clear Filters", + "Challenge.controls.loadMore.label": "Plus de résultats", + "Challenge.controls.save.label": "Sauvegarder", + "Challenge.controls.start.label": "Démarrer", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Any", + "Challenge.difficulty.easy": "Facile", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Difficulté", "Challenge.fields.lastTaskRefresh.label": "Tasks From", "Challenge.fields.viewLeaderboard.label": "Voir le classement", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "Voir le classement", - "Project.indicator.label": "Projet", - "ChallengeDetails.controls.goBack.label": "Retour", - "ChallengeDetails.controls.start.label": "Démarrer", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Anything", + "Challenge.keywords.buildings": "Buildings", + "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", + "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Anywhere", + "Challenge.location.intersectingMapBounds": "Affichés sur la carte", + "Challenge.location.nearMe": "Near Me", + "Challenge.location.withinMapBounds": "Within Map Bounds", + "Challenge.management.controls.manage.label": "Gérer", + "Challenge.results.heading": "Défis", + "Challenge.results.noResults": "Aucun défi trouvé", + "Challenge.signIn.label": "Connectez-vous pour commencer", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Le plus récent", + "Challenge.sort.default": "Par défaut", + "Challenge.sort.name": "Nom", + "Challenge.sort.oldest": "Le plus ancien", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Constuit", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Échec", + "Challenge.status.finished": "Terminé", + "Challenge.status.none": "Non applicable", + "Challenge.status.partiallyLoaded": "Partiellement chargé", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Défi", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Retour", + "ChallengeDetails.controls.start.label": "Démarrer", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Gérer", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "Difficulté", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.viewLeaderboard.label": "Voir le classement", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Gérer", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "Contacter le propriétaire", - "Task.controls.contactLink.label": "Envoyer un message à {owner} via OSM", - "ChallengeFilterSubnav.header": "Défis", + "ChallengeFilterSubnav.controls.sortBy.label": "Trier par", "ChallengeFilterSubnav.filter.difficulty.label": "Difficulté", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Autre :", "ChallengeFilterSubnav.filter.location.label": "Localisation", "ChallengeFilterSubnav.filter.search.label": "Chercher par nom", - "Challenge.controls.clearFilters.label": "Clear Filters", - "ChallengeFilterSubnav.controls.sortBy.label": "Trier par", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Autre :", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Sauvegarder", - "Challenge.controls.start.label": "Démarrer", - "Challenge.management.controls.manage.label": "Gérer", - "Challenge.signIn.label": "Connectez-vous pour commencer", - "Challenge.results.heading": "Défis", - "Challenge.results.noResults": "Aucun défi trouvé", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "Plus de résultats", + "ChallengeFilterSubnav.header": "Défis", + "ChallengeFilterSubnav.query.searchType.challenge": "Défis", + "ChallengeFilterSubnav.query.searchType.project": "Projets", "ChallengePane.controls.startChallenge.label": "Commencer le défi", - "Task.fauxStatus.available": "Disponible", - "ChallengeProgress.tooltip.label": "Tâches", - "ChallengeProgress.tasks.remaining": "Tâches restantes : {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "sur {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Vérifier le statut", "ChallengeProgress.metrics.averageTime.label": "Temps moyen par tâche :", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Vérifier le statut", + "ChallengeProgress.tasks.remaining": "Tâches restantes : {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Tâches", + "ChallengeProgressBorder.available": "Disponible", "CommentList.controls.viewTask.label": "Voir la tâche", "CommentList.noComments.label": "Aucun commentaire", - "ConfigureColumnsModal.header": "Choisissez les colonnes à afficher", + "CompletionRadar.heading": "Tâches achevées : {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Colonnes dispolibles", - "ConfigureColumnsModal.showingColumns.header": "Colonnes affichées", "ConfigureColumnsModal.controls.add": "Ajouter", - "ConfigureColumnsModal.controls.remove": "Retirer", "ConfigureColumnsModal.controls.done.label": "Terminé", - "ConfirmAction.title": "Êtes-vous sûr·e ?", - "ConfirmAction.prompt": "Cette action ne peut pas être annulée", + "ConfigureColumnsModal.controls.remove": "Retirer", + "ConfigureColumnsModal.header": "Choisissez les colonnes à afficher", + "ConfigureColumnsModal.showingColumns.header": "Colonnes affichées", "ConfirmAction.cancel": "Annuler", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "Cette action ne peut pas être annulée", + "ConfirmAction.title": "Êtes-vous sûr·e ?", + "CongratulateModal.control.dismiss.label": "Continuer", "CongratulateModal.header": "Félicitations !", "CongratulateModal.primaryMessage": "Le défi est terminé", - "CongratulateModal.control.dismiss.label": "Continuer", - "CountryName.ALL": "Tous les pays", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "\u00c9mirats arabes unis", "CountryName.AF": "Afghanistan", - "CountryName.AO": "Angola", "CountryName.AL": "Albanie", - "CountryName.AE": "\u00c9mirats arabes unis", - "CountryName.AR": "Argentine", + "CountryName.ALL": "Tous les pays", "CountryName.AM": "Arm\u00e9nie", + "CountryName.AO": "Angola", "CountryName.AQ": "Antarctique", - "CountryName.TF": "Terres australes fran\u00e7aises", - "CountryName.AU": "Australie", + "CountryName.AR": "Argentine", "CountryName.AT": "Autriche", + "CountryName.AU": "Australie", "CountryName.AZ": "Azerba\u00efdjan", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosnie-Herz\u00e9govine", + "CountryName.BD": "Bangladesh", "CountryName.BE": "Belgique", - "CountryName.BJ": "B\u00e9nin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesh", "CountryName.BG": "Bulgarie", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bosnie-Herz\u00e9govine", - "CountryName.BY": "Bi\u00e9lorussie", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "B\u00e9nin", + "CountryName.BN": "Brun\u00e9i Darussalam", "CountryName.BO": "Bolivie", "CountryName.BR": "Br\u00e9sil", - "CountryName.BN": "Brun\u00e9i Darussalam", + "CountryName.BS": "Bahamas", "CountryName.BT": "Bhoutan", "CountryName.BW": "Botswana", - "CountryName.CF": "R\u00e9publique centrafricaine", + "CountryName.BY": "Bi\u00e9lorussie", + "CountryName.BZ": "Belize", "CountryName.CA": "Canada", + "CountryName.CD": "Congo-Kinshasa", + "CountryName.CF": "R\u00e9publique centrafricaine", + "CountryName.CG": "Congo-Brazzaville", "CountryName.CH": "Suisse", - "CountryName.CL": "Chili", - "CountryName.CN": "Chine", "CountryName.CI": "C\u00f4te d\u2019Ivoire", + "CountryName.CL": "Chili", "CountryName.CM": "Cameroun", - "CountryName.CD": "Congo-Kinshasa", - "CountryName.CG": "Congo-Brazzaville", + "CountryName.CN": "Chine", "CountryName.CO": "Colombie", "CountryName.CR": "Costa Rica", "CountryName.CU": "Cuba", @@ -415,10 +485,10 @@ "CountryName.DO": "R\u00e9publique dominicaine", "CountryName.DZ": "Alg\u00e9rie", "CountryName.EC": "\u00c9quateur", + "CountryName.EE": "Estonie", "CountryName.EG": "\u00c9gypte", "CountryName.ER": "\u00c9rythr\u00e9e", "CountryName.ES": "Espagne", - "CountryName.EE": "Estonie", "CountryName.ET": "\u00c9thiopie", "CountryName.FI": "Finlande", "CountryName.FJ": "Fidji", @@ -428,57 +498,58 @@ "CountryName.GB": "Royaume-Uni", "CountryName.GE": "G\u00e9orgie", "CountryName.GH": "Ghana", - "CountryName.GN": "Guin\u00e9e", + "CountryName.GL": "Groenland", "CountryName.GM": "Gambie", - "CountryName.GW": "Guin\u00e9e-Bissau", + "CountryName.GN": "Guin\u00e9e", "CountryName.GQ": "Guin\u00e9e \u00e9quatoriale", "CountryName.GR": "Gr\u00e8ce", - "CountryName.GL": "Groenland", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guin\u00e9e-Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Croatie", "CountryName.HT": "Ha\u00efti", "CountryName.HU": "Hongrie", "CountryName.ID": "Indon\u00e9sie", - "CountryName.IN": "Inde", "CountryName.IE": "Irlande", - "CountryName.IR": "Iran", + "CountryName.IL": "Isra\u00ebl", + "CountryName.IN": "Inde", "CountryName.IQ": "Irak", + "CountryName.IR": "Iran", "CountryName.IS": "Islande", - "CountryName.IL": "Isra\u00ebl", "CountryName.IT": "Italie", "CountryName.JM": "Jama\u00efque", "CountryName.JO": "Jordanie", "CountryName.JP": "Japon", - "CountryName.KZ": "Kazakhstan", "CountryName.KE": "Kenya", "CountryName.KG": "Kirghizistan", "CountryName.KH": "Cambodge", + "CountryName.KP": "Cor\u00e9e du Nord", "CountryName.KR": "Cor\u00e9e du Sud", "CountryName.KW": "Kowe\u00eft", + "CountryName.KZ": "Kazakhstan", "CountryName.LA": "Laos", "CountryName.LB": "Liban", - "CountryName.LR": "Lib\u00e9ria", - "CountryName.LY": "Libye", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Lib\u00e9ria", "CountryName.LS": "Lesotho", "CountryName.LT": "Lituanie", "CountryName.LU": "Luxembourg", "CountryName.LV": "Lettonie", + "CountryName.LY": "Libye", "CountryName.MA": "Maroc", "CountryName.MD": "Moldavie", + "CountryName.ME": "Mont\u00e9n\u00e9gro", "CountryName.MG": "Madagascar", - "CountryName.MX": "Mexique", "CountryName.MK": "Mac\u00e9doine", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar (Birmanie)", - "CountryName.ME": "Mont\u00e9n\u00e9gro", "CountryName.MN": "Mongolie", - "CountryName.MZ": "Mozambique", "CountryName.MR": "Mauritanie", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexique", "CountryName.MY": "Malaisie", + "CountryName.MZ": "Mozambique", "CountryName.NA": "Namibie", "CountryName.NC": "Nouvelle-Cal\u00e9donie", "CountryName.NE": "Niger", @@ -489,460 +560,821 @@ "CountryName.NP": "N\u00e9pal", "CountryName.NZ": "Nouvelle-Z\u00e9lande", "CountryName.OM": "Oman", - "CountryName.PK": "Pakistan", "CountryName.PA": "Panama", "CountryName.PE": "P\u00e9rou", - "CountryName.PH": "Philippines", "CountryName.PG": "Papouasie-Nouvelle-Guin\u00e9e", + "CountryName.PH": "Philippines", + "CountryName.PK": "Pakistan", "CountryName.PL": "Pologne", "CountryName.PR": "Porto Rico", - "CountryName.KP": "Cor\u00e9e du Nord", + "CountryName.PS": "Territoires palestiniens", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Qatar", "CountryName.RO": "Roumanie", + "CountryName.RS": "Serbie", "CountryName.RU": "Russie", "CountryName.RW": "Rwanda", "CountryName.SA": "Arabie saoudite", - "CountryName.SD": "Soudan", - "CountryName.SS": "Soudan du Sud", - "CountryName.SN": "S\u00e9n\u00e9gal", "CountryName.SB": "\u00celes Salomon", + "CountryName.SD": "Soudan", + "CountryName.SE": "Su\u00e8de", + "CountryName.SI": "Slov\u00e9nie", + "CountryName.SK": "Slovaquie", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "El Salvador", + "CountryName.SN": "S\u00e9n\u00e9gal", "CountryName.SO": "Somalie", - "CountryName.RS": "Serbie", "CountryName.SR": "Suriname", - "CountryName.SK": "Slovaquie", - "CountryName.SI": "Slov\u00e9nie", - "CountryName.SE": "Su\u00e8de", - "CountryName.SZ": "Swaziland", + "CountryName.SS": "Soudan du Sud", + "CountryName.SV": "El Salvador", "CountryName.SY": "Syrie", + "CountryName.SZ": "Swaziland", "CountryName.TD": "Tchad", + "CountryName.TF": "Terres australes fran\u00e7aises", "CountryName.TG": "Togo", "CountryName.TH": "Tha\u00eflande", "CountryName.TJ": "Tadjikistan", - "CountryName.TM": "Turkm\u00e9nistan", "CountryName.TL": "Timor oriental", - "CountryName.TT": "Trinit\u00e9-et-Tobago", + "CountryName.TM": "Turkm\u00e9nistan", "CountryName.TN": "Tunisie", "CountryName.TR": "Turquie", + "CountryName.TT": "Trinit\u00e9-et-Tobago", "CountryName.TW": "Ta\u00efwan", "CountryName.TZ": "Tanzanie", - "CountryName.UG": "Ouganda", "CountryName.UA": "Ukraine", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Ouganda", "CountryName.US": "\u00c9tats-Unis", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Ouzb\u00e9kistan", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Territoires palestiniens", "CountryName.YE": "Y\u00e9men", "CountryName.ZA": "Afrique du Sud", "CountryName.ZM": "Zambie", "CountryName.ZW": "Zimbabwe", - "FitBoundsControl.tooltip": "Fit map to task features", - "LayerToggle.controls.showTaskFeatures.label": "Task Features", - "LayerToggle.controls.showOSMData.label": "Données OSM", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "Plus", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(chargement...)", - "PropertyList.title": "Propriétés", - "PropertyList.noProperties": "Aucune propriété", - "EnhancedMap.SearchControl.searchLabel": "Rechercher", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Tableau de bord", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "iD", + "Editor.josm.label": "JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "JOSM dans un nouveau calque", + "Editor.level0.label": "Éditer dans Level0", + "Editor.none.label": "Aucun", + "Editor.rapid.label": "Éditer dans RapiD", "EnhancedMap.SearchControl.noResults": "Aucun résultat", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Requêtes Nominatim", + "EnhancedMap.SearchControl.searchLabel": "Rechercher", "ErrorModal.title": "Oups !", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Projet", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "Ce projet utilise des styles personnalisés", - "FeatureStyleLegend.comparators.contains.label": "contient", - "FeatureStyleLegend.comparators.missing.label": "manquant", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Obtenir de l'aide", - "Footer.reportBug": "Signaler un bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Suivez-nous", - "Footer.email.placeholder": "Adresse e-mail", - "Footer.email.submit.label": "Soumettre", - "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "Your Default", - "HomePane.header": "Be an instant contributor to the world's maps", - "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", - "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", - "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Impossible de supprimer le défi.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Impossible de récupérer les dernières données du défi sur le serveur.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Impossible de chercher les défis sur le serveur.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Impossible de trouver le classement", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Cette tâche a déjà été verrouillée par quelqu'un d'autre.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Impossible de supprimer la tâche.", + "Errors.task.doesNotExist": "Cette tâche n'existe pas.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "Il n'y a plus de tâche dans ce défi.", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Unable to fetch user data from server.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please set your home location in your openstreetmap.org settings and then refresh this page to try again.", + "Errors.user.notFound": "Aucun utilisateur avec ce pseudo n'a été trouvé.", + "Errors.user.unauthenticated": "Merci de vous connecter pour continuer.", + "Errors.user.unauthorized": "Please sign in to continue.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contient", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "manquant", + "FeatureStyleLegend.noStyles.label": "Ce projet utilise des styles personnalisés", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Projet", + "FitBoundsControl.tooltip": "Fit map to task features", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Adresse e-mail", + "Footer.email.submit.label": "Soumettre", + "Footer.followUs": "Suivez-nous", + "Footer.getHelp": "Obtenir de l'aide", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Signaler un bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Ajouter une règle", + "Form.textUpload.prompt": "Drop file here or click to select file", + "Form.textUpload.readonly": "Existing file will be used", + "General.controls.moreResults.label": "Plus de résultats", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Help", + "Home.Featured.browse": "Explorer", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Create tasks for others to help improve map data.", + "HomePane.feedback.header": "Feedback", + "HomePane.filterDifficultyIntro": "Work at your own level, from novice to expert.", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Démarrer", - "Admin.TaskInspect.controls.previousTask.label": "Précédent", - "Admin.TaskInspect.controls.nextTask.label": "Suivant", - "Admin.TaskInspect.controls.editTask.label": "Éditer la tâche", - "Admin.TaskInspect.controls.modifyTask.label": "Modifier la tâche", - "Admin.TaskInspect.readonly.message": "Prévisualiser la tâche en mode lecture seule", + "Inbox.actions.openNotification.label": "Ouvrir", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Supprimer", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Gérer les abonnements", + "Inbox.controls.markSelectedRead.label": "Marquer comme lu", + "Inbox.controls.refreshNotifications.label": "Rafraîchir", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "Aucun notification", + "Inbox.notification.controls.deleteNotification.label": "Supprimer", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Défi", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Envoyé", + "Inbox.tableHeaders.fromUsername": "De", + "Inbox.tableHeaders.isRead": "Lu", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Tâche", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", + "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", + "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", + "KeyMapping.openEditor.editId": "Éditer dans iD", + "KeyMapping.openEditor.editJosm": "Éditer dans JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Éditer dans JOSM en tant que nouveau calque", + "KeyMapping.openEditor.editLevel0": "Éditer dans Level0", + "KeyMapping.openEditor.editRapid": "Éditer dans RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Déjà corrigé", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Faux positif", + "KeyMapping.taskCompletion.fixed": "Je l'ai corrigé !", + "KeyMapping.taskCompletion.skip": "Passer", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Annuler", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Suivant", + "KeyMapping.taskInspect.prevTask": "Précédent", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Ajouter un mot-clé", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "Plus de résultats", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "Your Default", + "LayerToggle.controls.more.label": "Plus", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "Données OSM", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Task Features", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(chargement...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Classement", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "Points", + "Leaderboard.user.topChallenges": "Top Challenges", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Classement", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Evaluated by User", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Désolé, MapRoulette n'est pas encore disponible sur les équipements mobiles. ", "MobileNotSupported.pageMessage": "Sorry, this page is not yet compatible with mobile devices and smaller screens.", "MobileNotSupported.widenDisplay": "If using a computer, please widen your window or use a larger display.", - "Navbar.links.dashboard": "Tableau de bord", + "MobileTask.subheading.instructions": "Instructions", + "Navbar.links.admin": "Administration", "Navbar.links.challengeResults": "Défis", - "Navbar.links.leaderboard": "Classement", + "Navbar.links.dashboard": "Tableau de bord", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Apprendre", "Navbar.links.inbox": "Boîte de réception", + "Navbar.links.leaderboard": "Classement", "Navbar.links.review": "Review", - "Navbar.links.admin": "Administration", - "Navbar.links.help": "Apprendre", - "Navbar.links.userProfile": "Paramètres utilisateur", - "Navbar.links.userMetrics": "Statistiques utilisateur", "Navbar.links.signout": "Déconnexion", - "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "Statistiques utilisateur", + "Navbar.links.userProfile": "Paramètres utilisateur", + "Notification.type.challengeCompleted": "Achevé", + "Notification.type.challengeCompletedLong": "Défi achevé", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Mois actuel", + "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "Pages.SignIn.modal.prompt": "Merci de vous connecter pour continuer", + "Pages.SignIn.modal.title": "Ravis de vous revoir !", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Mois actuel", + "PastDurationSelector.customRange.controls.search.label": "Rechercher", + "PastDurationSelector.customRange.endDate": "Date de fin", "PastDurationSelector.customRange.selectOption": "Personnalisé", "PastDurationSelector.customRange.startDate": "Date de début", - "PastDurationSelector.customRange.endDate": "Date de fin", - "PastDurationSelector.customRange.controls.search.label": "Rechercher", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "Mes points", "PopularChallenges.header": "Défis populaires", "PopularChallenges.none": "Aucun défi", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Fond de carte personnalisé", + "Profile.form.defaultBasemap.description": "Sélectionnez le fond de carte par défaut à afficher. Un fond de carte provenant d'un défi peut remplacer cette préférence.", + "Profile.form.defaultBasemap.label": "Fond de carte par défaut", + "Profile.form.defaultEditor.description": "Sélectionnez l'éditeur par défaut pour résoudre les tâches. En sélectionnant cette option, vous pourrez ignorer la boîte de dialogue de sélection de l'éditeur lors de l'édition.", + "Profile.form.defaultEditor.label": "Éditeur par défaut", + "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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "Si oui, vous n'apparaîtrez pas dans le classement publique.", + "Profile.form.leaderboardOptOut.label": "Ne pas apparaître dans le classement", + "Profile.form.locale.description": "Langue de l'interface MapRoulette.", + "Profile.form.locale.label": "Langue", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Oui", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "Paramètres utilisateur", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "Voir le classement", + "Project.indicator.label": "Projet", "ProjectDetails.controls.goBack.label": "Retour", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Enregistrer", - "ProjectDetails.management.controls.manage.label": "Gérer", - "ProjectDetails.management.controls.start.label": "Commencer", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Créé", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modifié", "ProjectDetails.fields.viewLeaderboard.label": "Voir le classement", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Mettre à jour le statut de vérification", - "Admin.TaskReview.controls.currentTaskStatus.label": "Statut de la tâche :", - "Admin.TaskReview.controls.currentReviewStatus.label": "Statut de vérification :", - "Admin.TaskReview.controls.taskTags.label": "Tags :", - "Admin.TaskReview.controls.reviewNotRequested": "Aucune vérification n'a été demandé pour cette tâche.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Cette tâche est actuellement vérifiée par quelqu'un d'autre.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "Vous ne pouvez pas vérifier une tâche que vous à laquelle vous avez contribué.", - "Admin.TaskReview.controls.taskNotCompleted": "Cette tâche n'est pas encore disponible pour vérification car elle n'a pas encore été finalisée.", - "Admin.TaskReview.controls.approved": "Approuver", - "Admin.TaskReview.controls.rejected": "Refuser", - "Admin.TaskReview.controls.approvedWithFixes": "Approuver (avec corrections)", - "Admin.TaskReview.controls.startReview": "Commencer la vérification", - "Admin.TaskReview.controls.skipReview": "Passer la vérification", - "Admin.TaskReview.controls.resubmit": "Renvoyer pour vérification", - "ReviewTaskPane.indicators.locked.label": "Tâche vérouillée", + "ProjectDetails.management.controls.manage.label": "Gérer", + "ProjectDetails.management.controls.start.label": "Commencer", + "ProjectPickerModal.chooseProject": "Choisir un projet", + "ProjectPickerModal.noProjects": "Aucun projet trouvé", + "PropertyList.noProperties": "Aucune propriété", + "PropertyList.title": "Propriétés", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Rebuild Tasks", + "RebuildTasksControl.modal.controls.cancel.label": "Annuler", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Continuer", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Rebuilding will allow you to upload a new local file with the latest GeoJSON data and rebuild the challenge tasks:", + "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Rebuild Challenge Tasks", + "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Id interne", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Commentaires", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Résoudre", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "Voir", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total : {countShown}", + "Review.fields.challenge.label": "Défi", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priorité", + "Review.fields.project.label": "Projet", + "Review.fields.requestedBy.label": "Contributeur", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Vérificateur", + "Review.fields.status.label": "Statut", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Temps moyen par vérification :", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Déverouiller", + "ReviewTaskPane.indicators.locked.label": "Tâche vérouillée", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "Aucun défi", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tracked Tasks", - "Task.unsave.control.tooltip": "Stop Tracking", "SavedTasks.widget.noTasks": "Aucun tâche", "SavedTasks.widget.viewTask": "View Task", "ScreenTooNarrow.header": "Merci d'agrandir la fenêtre de votre navigateur", "ScreenTooNarrow.message": "This page is not yet compatible with smaller screens. Please expand your browser window or switch to a larger device or display.", - "ChallengeFilterSubnav.query.searchType.project": "Projets", - "ChallengeFilterSubnav.query.searchType.challenge": "Défis", "ShareLink.controls.copy.label": "Copy", "SignIn.control.label": "Connexion", "SignIn.control.longLabel": "Sign in to get started", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Annuler", + "StepNavigation.controls.finish.label": "Sauvegarder", + "StepNavigation.controls.next.label": "Suivant", + "StepNavigation.controls.prev.label": "Précédent", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignorer", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Ajouter un tag", + "TagDiffVisualization.controls.cancelEdits.label": "Annuler", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Effacer le tag", "TagDiffVisualization.controls.editTags.tooltip": "Modifier les tags", "TagDiffVisualization.controls.keepTag.label": "Garder le tag", - "TagDiffVisualization.controls.addTag.label": "Ajouter un tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Effacer le tag", - "TagDiffVisualization.controls.saveEdits.label": "Terminé", - "TagDiffVisualization.controls.cancelEdits.label": "Annuler", "TagDiffVisualization.controls.restoreFix.label": "Annuler les modifications", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Terminé", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Nom du tag", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Actions", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Id de la tâche", - "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "Statut", - "Task.fields.priority.label": "Priorité", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Vérifier le statut", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Durée d'achèvement", - "Task.fields.requestedBy.label": "Contributeur", - "Task.fields.reviewedBy.label": "Vérificateur", - "Admin.fields.reviewedAt.label": "Vérifié le", - "Admin.fields.reviewDuration.label": "Temps de vérification", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecter", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Vérifier", - "Admin.TaskAnalysisTable.controls.editTask.label": "Modifier", - "Admin.TaskAnalysisTable.controls.startTask.label": "Commencer", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Sélectionner des tâches", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Affichées : {countShown} tâches", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Sélectionnées : {selectedCount} tâches", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Affichées : {percentShown} % ({countShown}) de {countTotal} tâches", - "Admin.manageTasks.controls.changeStatusTo.label": "Modifier le statut pour", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Afficher la colonne de vérification", - "Admin.manageTasks.controls.hideReviewColumns.label": "Marquer la colonne de vérification", - "Admin.manageTasks.controls.configureColumns.label": "Configurer les colonnes", - "Admin.manageTasks.controls.exportCSV.label": "Exporter en CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Exporter en GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Affiché", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoomez pour voir les tâches", - "TaskClusterMap.message.nearMe.label": "Près de moi", - "TaskClusterMap.message.or.label": "ou", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Optional comment", - "Task.comments.comment.controls.submit.label": "Soumettre", - "Task.controls.completionComment.write.label": "Écrire", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Commentaires", - "TaskConfirmationModal.header": "Merci de confirmer", - "TaskConfirmationModal.submitRevisionHeader": "Merci de confirmer la correction", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Merci de confirmer la vérification", - "TaskConfirmationModal.comment.label": "Laisser un commentaire (optionnel)", - "TaskConfirmationModal.review.label": "Besoin d'une autre paire d'yeux ? Cochez ici pour que votre travail soit vérifié par un humain", - "TaskConfirmationModal.loadBy.label": "Tâche suivant : ", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Annuler", - "TaskConfirmationModal.submit.label": "Soumettre", - "TaskConfirmationModal.osmUploadNotice": "Ces modifications seront chargées sur OpenStreetMap sous votre nom", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspecter le groupe de modifications", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "Commentaire OpenStreetMap", - "TaskConfirmationModal.comment.header": "Commentaire MapRoulette (optionnel)", - "TaskConfirmationModal.comment.placeholder": "Votre commentaire (optionnel)", - "TaskConfirmationModal.nextNearby.label": "Sélectionnez votre prochaine tâche à proximité (optionnel)", - "TaskConfirmationModal.addTags.placeholder": "Ajouter les tags MR", - "TaskConfirmationModal.adjustFilters.label": "Ajuster les filtres", - "TaskConfirmationModal.done.label": "Terminé", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Statut de vérification :", - "TaskConfirmationModal.status.label": "Statut :", - "TaskConfirmationModal.priority.label": "Priorité :", - "TaskConfirmationModal.challenge.label": "Défi :", - "TaskConfirmationModal.mapper.label": "Contributeur :", - "TaskPropertyFilter.label": "Filtrer par propriété", - "TaskPriorityFilter.label": "Filtrer par priorité", - "TaskStatusFilter.label": "Filtrer par statut", - "TaskReviewStatusFilter.label": "Filtrer par statut de vérification", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Tâche marquée comme", - "Task.requestReview.label": "demander une vérification ?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Tâche en attente de vérification.", - "Task.readonly.message": "Prévisualiser la tâche en mode lecture seule", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "Plus d'options", + "Task.comments.comment.controls.submit.label": "Soumettre", "Task.controls.alreadyFixed.label": "Déjà résolue", "Task.controls.alreadyFixed.tooltip": "Déjà résolue", "Task.controls.cancelEditing.label": "Annuler la modification", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "J'ai résolu la tâche !", - "ActiveTask.controls.notFixed.label": "Trop difficile/Impossible", - "ActiveTask.controls.aleadyFixed.label": "Déjà résolue", - "ActiveTask.controls.cancelEditing.label": "Retour", + "Task.controls.completionComment.placeholder": "Optional comment", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Écrire", + "Task.controls.contactLink.label": "Envoyer un message à {owner} via OSM", + "Task.controls.contactOwner.label": "Contacter le propriétaire", "Task.controls.edit.label": "Éditer", "Task.controls.edit.tooltip": "Éditer", "Task.controls.falsePositive.label": "Faux positif", "Task.controls.falsePositive.tooltip": "Faux positif", "Task.controls.fixed.label": "J'ai résolu la tâche !", "Task.controls.fixed.tooltip": "J'ai résolu la tâche !", + "Task.controls.moreOptions.label": "Plus d'options", "Task.controls.next.label": "Suivant", - "Task.controls.next.tooltip": "Suivant", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Suivant", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Pas d'accord avec la vérification", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Renvoyer pour vérification", - "Task.controls.revised.dispute": "Pas d'accord avec la vérification", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Passer", "Task.controls.skip.tooltip": "Passer la tâcher", - "Task.controls.tooHard.label": "Trop difficile/Impossible", - "Task.controls.tooHard.tooltip": "Trop difficile/Impossible", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Détails de la tâche", - "ActiveTask.controls.comments.tooltip": "Voir les commentaires", - "ActiveTask.subheading.comments": "Commentaires", - "ActiveTask.heading": "Informations sur le défi", - "ActiveTask.subheading.instructions": "Instruction", - "ActiveTask.subheading.location": "Localisation", - "ActiveTask.subheading.progress": "Progression du défi", - "ActiveTask.subheading.social": "Share", - "Task.pane.controls.inspect.label": "Inspecter", - "Task.pane.indicators.locked.label": "Tâche verrouillée", - "Task.pane.indicators.readOnly.label": "Prévisualisation en lecture seule", - "Task.pane.controls.unlock.label": "Déverrouiller", - "Task.pane.controls.tryLock.label": "Essayer de verrouiller", - "Task.pane.controls.preview.label": "Prévisualiser la tâche", - "Task.pane.controls.browseChallenge.label": "Parcourir le défi", - "Task.pane.controls.retryLock.label": "Réessayer de verrouiller", - "Task.pane.lockFailedDialog.title": "Impossible de verrouiller la tâche", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructions", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspecter", - "Task.management.controls.modify.label": "Modify", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Tâche actuelle", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "Aucun tâche à proximité disponible", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priorité :", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Statut :", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Suivre cette tâche", "Task.controls.untrack.label": "Ne plus suivre cette tâche", - "TaskPropertyQueryBuilder.controls.search": "Recherche", - "TaskPropertyQueryBuilder.controls.clear": "Effacer", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Disponible", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Feature Id", + "Task.fields.id.label": "Id de la tâche", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "Priorité", + "Task.fields.requestedBy.label": "Contributeur", + "Task.fields.reviewStatus.label": "Vérifier le statut", + "Task.fields.reviewedBy.label": "Vérificateur", + "Task.fields.status.label": "Statut", + "Task.loadByMethod.proximity": "Proximity", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Inspecter", + "Task.management.controls.modify.label": "Modify", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Tâche marquée comme", + "Task.pane.controls.browseChallenge.label": "Parcourir le défi", + "Task.pane.controls.inspect.label": "Inspecter", + "Task.pane.controls.preview.label": "Prévisualiser la tâche", + "Task.pane.controls.retryLock.label": "Réessayer de verrouiller", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Essayer de verrouiller", + "Task.pane.controls.unlock.label": "Déverrouiller", + "Task.pane.indicators.locked.label": "Tâche verrouillée", + "Task.pane.indicators.readOnly.label": "Prévisualisation en lecture seule", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Impossible de verrouiller la tâche", + "Task.priority.high": "Haut", + "Task.priority.low": "Bas", + "Task.priority.medium": "Moyen", + "Task.property.operationType.and": "et", + "Task.property.operationType.or": "ou", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Prévisualiser la tâche en mode lecture seule", + "Task.requestReview.label": "demander une vérification ?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Déjà résolue", + "Task.status.created": "Created", + "Task.status.deleted": "Supprimée", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Faux positif", + "Task.status.fixed": "Résolue", + "Task.status.skipped": "Esquivée", + "Task.status.tooHard": "Trop difficile", + "Task.taskTags.add.label": "Ajouter les tags MR", + "Task.taskTags.addTags.placeholder": "Ajouter les tags MR", + "Task.taskTags.cancel.label": "Annuler", + "Task.taskTags.label": "Tags MR :", + "Task.taskTags.modify.label": "Modifier les tags MR", + "Task.taskTags.save.label": "Enregistrer", + "Task.taskTags.update.label": "Mettre à jour les tags MR", + "Task.unsave.control.tooltip": "Stop Tracking", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Près de moi", + "TaskClusterMap.message.or.label": "ou", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoomez pour voir les tâches", + "TaskCommentsModal.header": "Commentaires", + "TaskConfirmationModal.addTags.placeholder": "Ajouter les tags MR", + "TaskConfirmationModal.adjustFilters.label": "Ajuster les filtres", + "TaskConfirmationModal.cancel.label": "Annuler", + "TaskConfirmationModal.challenge.label": "Défi :", + "TaskConfirmationModal.comment.header": "Commentaire MapRoulette (optionnel)", + "TaskConfirmationModal.comment.label": "Laisser un commentaire (optionnel)", + "TaskConfirmationModal.comment.placeholder": "Votre commentaire (optionnel)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspecter le groupe de modifications", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Terminé", + "TaskConfirmationModal.header": "Merci de confirmer", + "TaskConfirmationModal.inReviewHeader": "Merci de confirmer la vérification", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Tâche suivant : ", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Contributeur :", + "TaskConfirmationModal.nextNearby.label": "Sélectionnez votre prochaine tâche à proximité (optionnel)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "Commentaire OpenStreetMap", + "TaskConfirmationModal.osmUploadNotice": "Ces modifications seront chargées sur OpenStreetMap sous votre nom", + "TaskConfirmationModal.priority.label": "Priorité :", + "TaskConfirmationModal.review.label": "Besoin d'une autre paire d'yeux ? Cochez ici pour que votre travail soit vérifié par un humain", + "TaskConfirmationModal.reviewStatus.label": "Statut de vérification :", + "TaskConfirmationModal.status.label": "Statut :", + "TaskConfirmationModal.submit.label": "Soumettre", + "TaskConfirmationModal.submitRevisionHeader": "Merci de confirmer la correction", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filtrer par priorité", + "TaskPropertyFilter.label": "Filtrer par propriété", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Données séparées par une virgule", "TaskPropertyQueryBuilder.controls.addValue": "Ajouter une valeur", - "TaskPropertyQueryBuilder.options.none.label": "Aucun", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Effacer", + "TaskPropertyQueryBuilder.controls.search": "Recherche", "TaskPropertyQueryBuilder.error.missingKey": "Merci de choisir un nom de propriété.", - "TaskPropertyQueryBuilder.error.missingValue": "Vous devez saisir une valeur.", + "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", "TaskPropertyQueryBuilder.error.missingPropertyType": "Merci de choisir un type de propriété.", + "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.error.missingStyleName": "Vous devez choisir un nom pour le style.", + "TaskPropertyQueryBuilder.error.missingStyleValue": "Vous devez saisir une valeur pour le style.", + "TaskPropertyQueryBuilder.error.missingValue": "Vous devez saisir une valeur.", "TaskPropertyQueryBuilder.error.notNumericValue": "La valeur donnée à la propriété n'est pas un nombre valide.", - "TaskPropertyQueryBuilder.propertyType.stringType": "texte", - "TaskPropertyQueryBuilder.propertyType.numberType": "nombre", + "TaskPropertyQueryBuilder.options.none.label": "Aucun", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "Vous devez saisir une valeur pour le style.", - "TaskPropertyQueryBuilder.error.missingStyleName": "Vous devez choisir un nom pour le style.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Données séparées par une virgule", - "ActiveTask.subheading.status": "Statut existant", - "ActiveTask.controls.status.tooltip": "Statut existant", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "Tags MR :", - "Task.taskTags.add.label": "Ajouter les tags MR", - "Task.taskTags.update.label": "Mettre à jour les tags MR", - "Task.taskTags.save.label": "Enregistrer", - "Task.taskTags.cancel.label": "Annuler", - "Task.taskTags.modify.label": "Modifier les tags MR", - "Task.taskTags.addTags.placeholder": "Ajouter les tags MR", + "TaskPropertyQueryBuilder.propertyType.numberType": "nombre", + "TaskPropertyQueryBuilder.propertyType.stringType": "texte", + "TaskReviewStatusFilter.label": "Filtrer par statut de vérification", + "TaskStatusFilter.label": "Filtrer par statut", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Plus récent", "Taxonomy.indicators.popular.label": "Populaire", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Vos top défis", "TopUserChallenges.widget.label": "Vos top défis", "TopUserChallenges.widget.noChallenges": "Aucun défi", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tracked Tasks", + "UserProfile.topChallenges.header": "Vos top défis", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Annuler", + "WidgetWorkspace.exportModal.controls.download.label": "Télécharge", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Cliquer pour charger le fichier", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Tâches restantes : {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "Défis", + "Widgets.ChallengeListWidget.search.placeholder": "Recherche", + "Widgets.ChallengeListWidget.title": "Défis", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Créé :", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible :", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Mots-clefs :", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modifié :", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Statut :", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tâches de :", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", + "Widgets.ChallengeOverviewWidget.label": "Aperçu du défi", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "projet non visible", + "Widgets.ChallengeOverviewWidget.title": "Aperçu", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Partager", + "Widgets.ChallengeTasksWidget.label": "Tâches", + "Widgets.ChallengeTasksWidget.title": "Tâches", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Commentaires", + "Widgets.CommentsWidget.title": "Commentaires", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Le défi n'a aucune tâche", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Raccourcis clavier", "Widgets.KeyboardShortcutsWidget.title": "Raccourcis clavier", + "Widgets.LeaderboardWidget.label": "Classement", + "Widgets.LeaderboardWidget.title": "Classement", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "About Projects", + "Widgets.ProjectAboutWidget.title": "About Projects", + "Widgets.ProjectListWidget.label": "Liste des projets", + "Widgets.ProjectListWidget.search.placeholder": "Recherche", + "Widgets.ProjectListWidget.title": "Projets", + "Widgets.ProjectManagersWidget.label": "Gestionnaires du projet", + "Widgets.ProjectOverviewWidget.label": "Aperçu", + "Widgets.ProjectOverviewWidget.title": "Aperçu", + "Widgets.RecentActivityWidget.label": "Activité récente", + "Widgets.RecentActivityWidget.title": "Activité récente", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Vérifier les statistiques de statut", "Widgets.ReviewStatusMetricsWidget.title": "Vérifier le statut", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Statut de la tâche", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Exporter en CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Modification de tag OSM proposée", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Montrer tous les tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Effacer les filtres", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Id interne :", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Statut :", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priorité :", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Sélectionné", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Montrer tous les tags", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Modification de tag OSM proposée", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Compléter ensemble", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Effacer les filtres", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(tâche actuelle)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Travaillent sur {taskCount, number} tâches ensemble", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Sélectionné", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priorité :", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Statut :", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Id interne :", "Widgets.TaskBundleWidget.readOnly": "Prévisualiser la tâche en mode lecture seule", - "Widgets.TaskCompletionWidget.label": "Achèvement", - "Widgets.TaskCompletionWidget.title": "Achèvement", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Travaillent sur {taskCount, number} tâches ensemble", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Achèvement", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Achèvement", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Localisation", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Tâche actuelle", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "Aucun tâche à proximité disponible", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Statut de la tâche", "Widgets.TaskStatusWidget.title": "Statut de la tâche", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Annuler", - "WidgetWorkspace.exportModal.controls.download.label": "Télécharge", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Cliquer pour charger le fichier", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Tableau de bord", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explorer", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Rafraîchir", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Gérer les abonnements", - "Inbox.controls.markSelectedRead.label": "Marquer comme lu", - "Inbox.controls.deleteSelected.label": "Supprimer", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Envoyé", - "Inbox.tableHeaders.fromUsername": "De", - "Inbox.tableHeaders.challengeName": "Défi", - "Inbox.tableHeaders.isRead": "Lu", - "Inbox.tableHeaders.taskId": "Tâche", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Ouvrir", - "Inbox.noNotifications": "Aucun notification", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Supprimer", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Classement", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### Des points sont attribués pour chaque tâche achevée comme suit :\n\n| Statut | Points |\n| :------------ | -----: |\n| Corrigée | 5 |\n| Faux positif | 3 |\n| Déjà corrigée | 3 |\n| Trop difficilé | 1 |\n| Passée | 0 |", - "Leaderboard.user.points": "Points", - "Leaderboard.user.topChallenges": "Top Challenges", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Classement", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "Paramètres utilisateur", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Éditeur par défaut", - "Profile.form.defaultEditor.description": "Sélectionnez l'éditeur par défaut pour résoudre les tâches. En sélectionnant cette option, vous pourrez ignorer la boîte de dialogue de sélection de l'éditeur lors de l'édition.", - "Profile.form.defaultBasemap.label": "Fond de carte par défaut", - "Profile.form.defaultBasemap.description": "Sélectionnez le fond de carte par défaut à afficher. Un fond de carte provenant d'un défi peut remplacer cette préférence.", - "Profile.form.customBasemap.label": "Fond de carte personnalisé", - "Profile.form.customBasemap.description": "Insérez une carte de base personnalisée ici. Exemple : `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Langue", - "Profile.form.locale.description": "Langue de l'interface MapRoulette.", - "Profile.form.leaderboardOptOut.label": "Ne pas apparaître dans le classement", - "Profile.form.leaderboardOptOut.description": "Si oui, vous n'apparaîtrez pas dans le classement publique.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Oui", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Temps moyen par vérification :", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total : {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Commentaires", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Id interne", - "Review.fields.status.label": "Statut", - "Review.fields.priority.label": "Priorité", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Contributeur", - "Review.fields.reviewedBy.label": "Vérificateur", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Résoudre", - "Review.TaskAnalysisTable.controls.viewTask.label": "Voir", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Défi", - "Review.fields.project.label": "Projet", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Ravis de vous revoir !", - "Pages.SignIn.modal.prompt": "Merci de vous connecter pour continuer", - "Activity.action.updated": "Updated", - "Activity.action.created": "Created", - "Activity.action.deleted": "Supprimée", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Question/réponse ", - "Activity.item.project": "Project", - "Activity.item.challenge": "Défi", - "Activity.item.task": "Tâche", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "Aucun", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OSM", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Personnalisation", - "Challenge.difficulty.easy": "Facile", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Any", - "Challenge.keywords.navigation": "Roads / Pedestrian / Cycleways", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Points / Areas of Interest", - "Challenge.keywords.buildings": "Buildings", - "Challenge.keywords.landUse": "Land Use / Administrative Boundaries", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Anything", - "Challenge.location.nearMe": "Near Me", - "Challenge.location.withinMapBounds": "Within Map Bounds", - "Challenge.location.intersectingMapBounds": "Affichés sur la carte", - "Challenge.location.any": "Anywhere", - "Challenge.status.none": "Non applicable", - "Challenge.status.building": "Constuit", - "Challenge.status.failed": "Échec", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partiellement chargé", - "Challenge.status.finished": "Terminé", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Défi", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "Aucun", - "Editor.id.label": "iD", - "Editor.josm.label": "JOSM", - "Editor.josmLayer.label": "JOSM dans un nouveau calque", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Éditer dans Level0", - "Editor.rapid.label": "Éditer dans RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please set your home location in your openstreetmap.org settings and then refresh this page to try again.", - "Errors.user.unauthenticated": "Merci de vous connecter pour continuer.", - "Errors.user.unauthorized": "Please sign in to continue.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Unable to fetch user data from server.", - "Errors.user.notFound": "Aucun utilisateur avec ce pseudo n'a été trouvé.", - "Errors.leaderboard.fetchFailure": "Impossible de trouver le classement", - "Errors.task.none": "Il n'y a plus de tâche dans ce défi.", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Impossible de supprimer la tâche.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "Cette tâche n'existe pas.", - "Errors.task.alreadyLocked": "Cette tâche a déjà été verrouillée par quelqu'un d'autre.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Impossible de récupérer les dernières données du défi sur le serveur.", - "Errors.challenge.searchFailure": "Impossible de chercher les défis sur le serveur.", - "Errors.challenge.deleteFailure": "Impossible de supprimer le défi.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Unable to retrieve latest virtual challenge data from server.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Unable to retrieve latest project data from server.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Éditer dans iD", - "KeyMapping.openEditor.editJosm": "Éditer dans JOSM", - "KeyMapping.openEditor.editJosmLayer": "Éditer dans JOSM en tant que nouveau calque", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Éditer dans Level0", - "KeyMapping.openEditor.editRapid": "Éditer dans RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Annuler", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Passer", - "KeyMapping.taskCompletion.falsePositive": "Faux positif", - "KeyMapping.taskCompletion.fixed": "Je l'ai corrigé !", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Déjà corrigé", - "KeyMapping.taskInspect.nextTask": "Suivant", - "KeyMapping.taskInspect.prevTask": "Précédent", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignorer", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Achevé", - "Notification.type.challengeCompletedLong": "Défi achevé", - "Challenge.sort.name": "Nom", - "Challenge.sort.created": "Le plus récent", - "Challenge.sort.oldest": "Le plus ancien", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Par défaut", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Proximity", - "Task.priority.high": "Haut", - "Task.priority.medium": "Moyen", - "Task.priority.low": "Bas", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "et", - "Task.property.operationType.or": "ou", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Created", - "Task.status.fixed": "Résolue", - "Task.status.falsePositive": "Faux positif", - "Task.status.skipped": "Esquivée", - "Task.status.deleted": "Supprimée", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Déjà résolue", - "Task.status.tooHard": "Trop difficile", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/ja.json b/src/lang/ja.json index 121ba9834..546bbdecb 100644 --- a/src/lang/ja.json +++ b/src/lang/ja.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Your Recent Activity", - "BurndownChart.heading": "残タスク: {taskCount, number}", - "BurndownChart.tooltip": "残タスク", - "CalendarHeatmap.heading": "きょうのヒートマップ: タスク完成度", + "ActiveTask.controls.aleadyFixed.label": "修正済", + "ActiveTask.controls.cancelEditing.label": "戻る", + "ActiveTask.controls.comments.tooltip": "コメントを見る", + "ActiveTask.controls.fixed.label": "修正しました!", + "ActiveTask.controls.info.tooltip": "タスクの詳細", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "既存の状態", + "ActiveTask.controls.viewChangset.label": "変更セットを見る", + "ActiveTask.heading": "チャレンジの情報", + "ActiveTask.indicators.virtualChallenge.tooltip": "仮想チャレンジ", + "ActiveTask.keyboardShortcuts.label": "キーボードショートカットを見る", + "ActiveTask.subheading.comments": "コメント", + "ActiveTask.subheading.instructions": "手順", + "ActiveTask.subheading.location": "位置", + "ActiveTask.subheading.progress": "チャレンジの進捗", + "ActiveTask.subheading.social": "共有", + "ActiveTask.subheading.status": "既存の状態", + "Activity.action.created": "作成日", + "Activity.action.deleted": "削除日", + "Activity.action.questionAnswered": "回答済みの質問をオン", + "Activity.action.tagAdded": "タグの追加先:", + "Activity.action.tagRemoved": "タグの削除元:", + "Activity.action.taskStatusSet": "状態を次のように設定:", + "Activity.action.taskViewed": "閲覧日", + "Activity.action.updated": "更新日", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "チャレンジ", + "Activity.item.grant": "Grant", + "Activity.item.group": "グループ", + "Activity.item.project": "プロジェクト", + "Activity.item.survey": "サーベイ", + "Activity.item.tag": "タグ", + "Activity.item.task": "タスク", + "Activity.item.user": "ユーザー", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "最近の活動", + "Admin.Challenge.basemap.none": "ユーザーの既定値", + "Admin.Challenge.controls.clone.label": "複製", + "Admin.Challenge.controls.delete.label": "チャレンジを削除", + "Admin.Challenge.controls.edit.label": "編集", + "Admin.Challenge.controls.move.label": "移動", + "Admin.Challenge.controls.move.none": "許可されたプロジェクトがありません", + "Admin.Challenge.controls.refreshStatus.label": "状態を更新", + "Admin.Challenge.controls.start.label": "開始", + "Admin.Challenge.controls.startChallenge.label": "チャレンジを開始", + "Admin.Challenge.fields.creationDate.label": "作成日:", + "Admin.Challenge.fields.enabled.label": "表示:", + "Admin.Challenge.fields.lastModifiedDate.label": "更新日:", + "Admin.Challenge.fields.status.label": "状態:", + "Admin.Challenge.tasksBuilding": "構築中のタスク...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "構築に失敗したタスク", + "Admin.Challenge.tasksNone": "タスクなし", + "Admin.Challenge.totalCreationTime": "Total elapsed time:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "オプション", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "チャレンジ名", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "終了", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "完成度の進捗", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "表示", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "最新の活動", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "管理", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "編集", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "開始", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "チャレンジ名", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "完成度の進捗", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "複製", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "状態カラムを含める", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "開始", - "Admin.Challenge.controls.edit.label": "編集", - "Admin.Challenge.controls.move.label": "移動", - "Admin.Challenge.controls.move.none": "許可されたプロジェクトがありません", - "Admin.Challenge.controls.clone.label": "複製", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "チャレンジを削除", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "編集", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "管理", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "状態カラムを含める", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "開始", "Admin.ChallengeList.noChallenges": "チャレンジがありません", - "ChallengeProgressBorder.available": "Available", - "CompletionRadar.heading": "完了タスク: {taskCount, number}", - "Admin.EditProject.unavailable": "利用できないプロジェクト", - "Admin.EditProject.edit.header": "編集", - "Admin.EditProject.new.header": "新しいプロジェクト", - "Admin.EditProject.controls.save.label": "保存", - "Admin.EditProject.controls.cancel.label": "キャンセル", - "Admin.EditProject.form.name.label": "名前", - "Admin.EditProject.form.name.description": "プロジェクトの名前", - "Admin.EditProject.form.displayName.label": "表示名", - "Admin.EditProject.form.displayName.description": "プロジェクトの表示名", - "Admin.EditProject.form.enabled.label": "表示", - "Admin.EditProject.form.enabled.description": "自分のプロジェクトを表示に設定するとその配下の表示と設定されたチャレンジも全て他のユーザーから利用・発見・検索可能になります。利便性のために、自分のプロジェクトを表示にすると配下で表示設定されたあらゆるチャレンジも公開されます。それ以降も自分のチャレンジで作業できますし、静的なチャレンジのURLをどれでも他の人にシェアすることもできます。そのためプロジェクトを表示に設定するまでは、自分のプロジェクトをチャレンジのテスト用として見ることができます。", - "Admin.EditProject.form.featured.label": "オススメ", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "説明", - "Admin.EditProject.form.description.description": "プロジェクトの説明", - "Admin.InspectTask.header": "タスクをレビュー", - "Admin.EditChallenge.edit.header": "編集", + "Admin.ChallengeTaskMap.controls.editTask.label": "タスクを編集", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "タスクをレビュー", "Admin.EditChallenge.clone.header": "複製", - "Admin.EditChallenge.new.header": "新しいチャレンジ", - "Admin.EditChallenge.lineNumber": "行 {line, number}:", + "Admin.EditChallenge.edit.header": "編集", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "全般", - "Admin.EditChallenge.form.visible.label": "表示", - "Admin.EditChallenge.form.visible.description": "あなたのチャレンジを表示して他のユーザーが見つけられるようにします(プロジェクトの表示設定による)。新しいチャレンジを自信をもって作成しているのでなければ、最初はこれを「no」に設定することをお勧めします。とりわけ親プロジェクトが表示としている場合には。自分の表示設定を「yes」にすると、親プロジェクトも表示に設定されている場合には、ホームページ、チャレンジの検索、統計上に表示されます。", - "Admin.EditChallenge.form.name.label": "名前", - "Admin.EditChallenge.form.name.description": "あなたのチャレンジ名で、アプリケーションの至る所で表示されます。これは検索する際にも使われます。この項目は入力必須でプレーンテキストのみサポートします。", - "Admin.EditChallenge.form.description.label": "説明", - "Admin.EditChallenge.form.description.description": "ユーザーがチャレンジの中身を知ろうとクリックした際に表示されるあなたのチャレンジの最初の、やや長い説明。この項目はマークダウン記法をサポートしています。", - "Admin.EditChallenge.form.blurb.label": "短い説明", + "Admin.EditChallenge.form.additionalKeywords.description": "あなたのチャレンジをさらに見つけやすくするためにオプションで付加的なキーワードを提供することもできます。ユーザーはカテゴリのドロップダウンフィルターから、あるいはハッシュ・サイン(例 #tourism)を前につけて検索ボックス内でキーワードで検索できます。", + "Admin.EditChallenge.form.additionalKeywords.label": "キーワード", "Admin.EditChallenge.form.blurb.description": "マップのマーカーのポップアップのように小さいスペースに表示するのに適した、あなたのチャレンジのごく短い説明。この項目はマークダウン記法をサポートしています。", - "Admin.EditChallenge.form.instruction.label": "手順", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "変更セットの説明", + "Admin.EditChallenge.form.blurb.label": "短い説明", + "Admin.EditChallenge.form.category.description": "あなたのチャレンジ用に適切な高レベルのカテゴリを選ぶと、ユーザーが自分の興味に応じてチャレンジを見つけやすくなります。適切なものが無ければ別のカテゴリを選んでください。", + "Admin.EditChallenge.form.category.label": "カテゴリ", "Admin.EditChallenge.form.checkinComment.description": "エディタ内でユーザーが行った変更に伴うコメント", - "Admin.EditChallenge.form.checkinSource.label": "変更セットのソース", + "Admin.EditChallenge.form.checkinComment.label": "変更セットの説明", "Admin.EditChallenge.form.checkinSource.description": "エディタ内でユーザーが行った変更に関連付けるソース", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "#maproulette ハッシュタグを自動的に追加(強く推奨)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "ハッシュタグをスキップ", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "変更セットにハッシュタグを追加するようにしておけば変更セットの分析にたいへん有用です。", - "Admin.EditChallenge.form.difficulty.label": "難易度", + "Admin.EditChallenge.form.checkinSource.label": "変更セットのソース", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "カスタム・ベースマップ", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "Admin.EditChallenge.form.defaultBasemap.description": "チャレンジで使うデフォルトのベースマップで、ユーザー定義のデフォルトを上書きします", + "Admin.EditChallenge.form.defaultBasemap.label": "チャレンジのベースマップ", + "Admin.EditChallenge.form.defaultPriority.description": "このチャレンジ内タスクの既定の優先度レベル", + "Admin.EditChallenge.form.defaultPriority.label": "既定の優先度", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "既定のズームレベル", + "Admin.EditChallenge.form.description.description": "ユーザーがチャレンジの中身を知ろうとクリックした際に表示されるあなたのチャレンジの最初の、やや長い説明。この項目はマークダウン記法をサポートしています。", + "Admin.EditChallenge.form.description.label": "説明", "Admin.EditChallenge.form.difficulty.description": "あなたのチャレンジでタスクを解決するのにどのレベルのスキルが必要かをマッパーに示すために、簡単、普通、高度から選んでください。経験の浅いマッパーには「簡単」レベルのチャレンジが適しています。", - "Admin.EditChallenge.form.category.label": "カテゴリ", - "Admin.EditChallenge.form.category.description": "あなたのチャレンジ用に適切な高レベルのカテゴリを選ぶと、ユーザーが自分の興味に応じてチャレンジを見つけやすくなります。適切なものが無ければ別のカテゴリを選んでください。", - "Admin.EditChallenge.form.additionalKeywords.label": "キーワード", - "Admin.EditChallenge.form.additionalKeywords.description": "あなたのチャレンジをさらに見つけやすくするためにオプションで付加的なキーワードを提供することもできます。ユーザーはカテゴリのドロップダウンフィルターから、あるいはハッシュ・サイン(例 #tourism)を前につけて検索ボックス内でキーワードで検索できます。", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "オススメ", + "Admin.EditChallenge.form.difficulty.label": "難易度", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "オススメのチャレンジは、チャレンジをウラウズしたり検索したりする際にリストの先頭に表示されます。スパーユーザーだけがチャレンジにオススメの印を付けられます。", - "Admin.EditChallenge.form.step2.label": "GeoJSON ソース", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON ソース", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API クエリー", + "Admin.EditChallenge.form.featured.label": "オススメ", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "ソースデータ内にエラーが検知されても先に進みます。その意味をよく分かっている専門家だけがこれを試してください。", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "エラーを無視", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "変更セットにハッシュタグを追加するようにしておけば変更セットの分析にたいへん有用です。", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "ハッシュタグをスキップ", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "#maproulette ハッシュタグを自動的に追加(強く推奨)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "手順", + "Admin.EditChallenge.form.localGeoJson.description": "あなたのコンピュータからローカルのGeoJSONファイルをアップロードしてください", + "Admin.EditChallenge.form.localGeoJson.label": "ファイルをアップロード", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "最大ズームレベル", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "最小ズームレベル", + "Admin.EditChallenge.form.name.description": "あなたのチャレンジ名で、アプリケーションの至る所で表示されます。これは検索する際にも使われます。この項目は入力必須でプレーンテキストのみサポートします。", + "Admin.EditChallenge.form.name.label": "名前", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Overpassクエリーを入力する際には適切なbbox(矩形)を設定してください。さもないと大量データを生成してシステムダウンを引き起こす可能性があります。", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API クエリー", "Admin.EditChallenge.form.overpassQL.placeholder": "Overpass API クエリーをここに入力...", - "Admin.EditChallenge.form.localGeoJson.label": "ファイルをアップロード", - "Admin.EditChallenge.form.localGeoJson.description": "あなたのコンピュータからローカルのGeoJSONファイルをアップロードしてください", - "Admin.EditChallenge.form.remoteGeoJson.label": "リモートURL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "GeoJSONを参照するためのリモートURLの場所", + "Admin.EditChallenge.form.remoteGeoJson.label": "リモートURL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "エラーを無視", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "ソースデータ内にエラーが検知されても先に進みます。その意味をよく分かっている専門家だけがこれを試してください。", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON ソース", + "Admin.EditChallenge.form.step1.label": "全般", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON ソース", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "優先度", - "Admin.EditChallenge.form.step3.description": "タスクの優先度は高、中、低で定義できます。優先度高の全てのタスクが最初に表示され、次に中、最後に低が表示されます。", - "Admin.EditChallenge.form.defaultPriority.label": "既定の優先度", - "Admin.EditChallenge.form.defaultPriority.description": "このチャレンジ内タスクの既定の優先度レベル", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "特別", "Admin.EditChallenge.form.step4.description": "チャレンジに特有の要件をマッピングしやすくするためにオプションでセットできる特別な情報", - "Admin.EditChallenge.form.updateTasks.label": "古くなったタスクを削除", - "Admin.EditChallenge.form.updateTasks.description": "作成済やスキップ済のまま古くなった(~30日ほど更新されていない)タスクを定期的に削除します。定期的に自分のチャレンジのタスクをリフレッシュしたり、古いものを定期的に削除したい場合に有用です。たいていの場合は「no」にセットしたいでしょう。", - "Admin.EditChallenge.form.defaultZoom.label": "既定のズームレベル", - "Admin.EditChallenge.form.defaultZoom.description": "ユーザーがあるタスクについて作業を始める時、MapRoulette はタスクの地物の境界に合ったズームレベルを自動的に使おうと試みます。しかし、それができない場合、このデフォルトズームレベルが使われます。あなたのチャレンジでたいていの場合適しているようなレベルにセットすべきです。", - "Admin.EditChallenge.form.minZoom.label": "最小ズームレベル", - "Admin.EditChallenge.form.minZoom.description": "あなたのチャレンジで許可された最小のズームレベル。これはあるタスクについて、役に立たないズームアウトのレベルではなく、ユーザーが作業するのに十分にズームアウトできるようなレベルにセットすべきです。", - "Admin.EditChallenge.form.maxZoom.label": "最大ズームレベル", - "Admin.EditChallenge.form.maxZoom.description": "あなたのチャレンジで許可される最大のズームレベル。これはあるタスクについて、役に立たないズームインのレベルやその地域で画像の解像度を超えるようなレベルではなく、ユーザーが作業するのに十分にズームインできるようなレベルにセットすべきです。", - "Admin.EditChallenge.form.defaultBasemap.label": "チャレンジのベースマップ", - "Admin.EditChallenge.form.defaultBasemap.description": "チャレンジで使うデフォルトのベースマップで、ユーザー定義のデフォルトを上書きします", - "Admin.EditChallenge.form.customBasemap.label": "カスタム・ベースマップ", - "Admin.EditChallenge.form.customBasemap.description": "ここにカスタムベースマップのURLを記入. 例) `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "特別", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "チャレンジ", - "Admin.ManageChallenges.help.info": "チャレンジは、OpenStreetMapのデータで特定の問題や短所を示す、多くのタスクから成っています。タスクは典型的には新しいチャレンジを作成する際にあなたが提供したOverpassQLのクエリーから自動的に生成されます。しかしまた、GeoJSONの地物を含むローカルのファイルやリモートURLからもロードすることができます。チャレンジは好きなだけ作れます。", - "Admin.ManageChallenges.search.placeholder": "名前", - "Admin.ManageChallenges.allProjectChallenge": "すべて", - "Admin.Challenge.fields.creationDate.label": "作成日:", - "Admin.Challenge.fields.lastModifiedDate.label": "更新日:", - "Admin.Challenge.fields.status.label": "状態:", - "Admin.Challenge.fields.enabled.label": "表示:", - "Admin.Challenge.controls.startChallenge.label": "チャレンジを開始", - "Admin.Challenge.activity.label": "最近の活動", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "作成済やスキップ済のまま古くなった(~30日ほど更新されていない)タスクを定期的に削除します。定期的に自分のチャレンジのタスクをリフレッシュしたり、古いものを定期的に削除したい場合に有用です。たいていの場合は「no」にセットしたいでしょう。", + "Admin.EditChallenge.form.updateTasks.label": "古くなったタスクを削除", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "表示", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "新しいチャレンジ", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo のショートカットはサポートされていません。使用したい場合は、Overpass Turbo のサイトで自分のクエリーをテストして、 エクスポート -> クエリー -> スタンドアロン -> コピー の順に選んでここに貼り付けてください。", + "Admin.EditProject.controls.cancel.label": "キャンセル", + "Admin.EditProject.controls.save.label": "保存", + "Admin.EditProject.edit.header": "編集", + "Admin.EditProject.form.description.description": "プロジェクトの説明", + "Admin.EditProject.form.description.label": "説明", + "Admin.EditProject.form.displayName.description": "プロジェクトの表示名", + "Admin.EditProject.form.displayName.label": "表示名", + "Admin.EditProject.form.enabled.description": "自分のプロジェクトを表示に設定するとその配下の表示と設定されたチャレンジも全て他のユーザーから利用・発見・検索可能になります。利便性のために、自分のプロジェクトを表示にすると配下で表示設定されたあらゆるチャレンジも公開されます。それ以降も自分のチャレンジで作業できますし、静的なチャレンジのURLをどれでも他の人にシェアすることもできます。そのためプロジェクトを表示に設定するまでは、自分のプロジェクトをチャレンジのテスト用として見ることができます。", + "Admin.EditProject.form.enabled.label": "表示", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "オススメ", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "プロジェクトの名前", + "Admin.EditProject.form.name.label": "名前", + "Admin.EditProject.new.header": "新しいプロジェクト", + "Admin.EditProject.unavailable": "利用できないプロジェクト", + "Admin.EditTask.controls.cancel.label": "キャンセル", + "Admin.EditTask.controls.save.label": "保存", "Admin.EditTask.edit.header": "タスクを編集", - "Admin.EditTask.new.header": "新しいタスク", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "タスクの詳細", - "Admin.EditTask.controls.save.label": "保存", - "Admin.EditTask.controls.cancel.label": "キャンセル", - "Admin.EditTask.form.name.label": "名前", - "Admin.EditTask.form.name.description": "タスクの名前。", - "Admin.EditTask.form.instruction.label": "手順", - "Admin.EditTask.form.instruction.description": "この特定のタスクを実施しているユーザー向けの手順(チャレンジの手順を上書きします)。", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "このタスク用のGeoJSON。 MapRoulette のタスクは全て、基本的にGeoJSONで記述されたポイント、ライン、ポリゴンといったジオメトリから成っており、マップ上であなたがマッパーに注意して欲しいことを指し示します。", - "Admin.EditTask.form.priority.label": "優先度", - "Admin.EditTask.form.status.label": "状態", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "この特定のタスクを実施しているユーザー向けの手順(チャレンジの手順を上書きします)。", + "Admin.EditTask.form.instruction.label": "手順", + "Admin.EditTask.form.name.description": "タスクの名前。", + "Admin.EditTask.form.name.label": "名前", + "Admin.EditTask.form.priority.label": "優先度", "Admin.EditTask.form.status.description": "タスクの状態。現在の状態により、状態の更新時に選べるものが制限されます。", - "Admin.EditTask.form.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "タスクを編集", - "Admin.Task.controls.editTask.label": "編集", - "Admin.manage.header": "作成 & 管理", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "チャレンジ", - "Admin.ProjectCard.tabs.details.label": "詳細", - "Admin.ProjectCard.tabs.managers.label": "管理者", - "Admin.Project.fields.enabled.tooltip": "有効", - "Admin.Project.fields.disabled.tooltip": "無効", - "Admin.ProjectCard.controls.editProject.tooltip": "プロジェクトを編集", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "状態", + "Admin.EditTask.new.header": "新しいタスク", + "Admin.InspectTask.header": "タスクをレビュー", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "すべて", + "Admin.ManageChallenges.header": "チャレンジ", + "Admin.ManageChallenges.help.info": "チャレンジは、OpenStreetMapのデータで特定の問題や短所を示す、多くのタスクから成っています。タスクは典型的には新しいチャレンジを作成する際にあなたが提供したOverpassQLのクエリーから自動的に生成されます。しかしまた、GeoJSONの地物を含むローカルのファイルやリモートURLからもロードすることができます。チャレンジは好きなだけ作れます。", + "Admin.ManageChallenges.search.placeholder": "名前", + "Admin.ManageTasks.geographicIndexingNotice": "新規のあるいは変更されたチャレンジを地理的にインデックス化するのに最大{delay} 時間ほど掛かることがありますのでご注意ください。あなたのチャレンジ(及びタスク)は、インデックス化が完了するまでは特定の地域のブラウジングや検索で期待した通りに表示されない場合があります。", + "Admin.ManageTasks.header": "タスク", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "チャレンジを追加", + "Admin.Project.controls.addChallenge.tooltip": "新しいチャレンジ", + "Admin.Project.controls.delete.label": "プロジェクトを削除", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Manage Challenge List", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "作成日:", + "Admin.Project.fields.disabled.tooltip": "無効", + "Admin.Project.fields.enabled.tooltip": "有効", + "Admin.Project.fields.lastModifiedDate.label": "更新日:", "Admin.Project.headers.challengePreview": "チャレンジ・マッチ", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "編集", - "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "プロジェクトを編集", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "チャレンジ", + "Admin.ProjectCard.tabs.details.label": "詳細", + "Admin.ProjectCard.tabs.managers.label": "管理者", "Admin.ProjectDashboard.controls.addChallenge.label": "チャレンジを追加", + "Admin.ProjectDashboard.controls.delete.label": "Delete Project", + "Admin.ProjectDashboard.controls.edit.label": "編集", "Admin.ProjectDashboard.controls.manageChallenges.label": "Manage Challenges", - "Admin.Project.fields.creationDate.label": "作成日:", - "Admin.Project.fields.lastModifiedDate.label": "更新日:", - "Admin.Project.controls.delete.label": "プロジェクトを削除", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "プロジェクトを追加", + "Admin.ProjectManagers.addManager": "プロジェクト管理者を追加", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMapのユーザー名", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "本当にこの管理者をプロジェクトから削除しますか?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "ロールを選ぶ", + "Admin.ProjectManagers.noManagers": "管理者なし", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "所有者", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "プロジェクトは関連するチャレンジをグループ化する手段として働きます。全てのチャレンジはプロジェクトに所属しなければなりません。", - "Admin.ProjectsDashboard.search.placeholder": "プロジェクトまたはチャレンジの名前", - "Admin.Project.controls.addChallenge.tooltip": "新しいチャレンジ", + "Admin.ProjectsDashboard.newProject": "プロジェクトを追加", "Admin.ProjectsDashboard.regenerateHomeProject": "新しいホームプロジェクトを再生成するにはいったんサインアウトしてサインインし直してください。", - "RebuildTasksControl.label": "再構築", - "RebuildTasksControl.modal.title": "チャレンジのタクスを再構築", - "RebuildTasksControl.modal.intro.overpass": "再構築ではOverpassクエリーを再実行し、チャレンジのタスクを最新データで再構築します:", - "RebuildTasksControl.modal.intro.remote": "再構築ではGeoJsonデータをチャレンジのリモートURLから再ダウンロードしてチャレンジのタスクを最新データで再構築します:", - "RebuildTasksControl.modal.intro.local": "再構築では最新GeoJsonデータで新しいローカルファイルをアップロードしてチャレンジのタスクを再構築できます:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "警告: 再構築をすると、地物のIDが正しく設定されていなかったり、新旧データがうまく一致しなかった場合などにタスクの複製が起こる場合があります。この操作は取り消せません!", - "RebuildTasksControl.modal.moreInfo": "[詳細](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "キャンセル", - "RebuildTasksControl.modal.controls.proceed.label": "進む", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "キャンセル", - "StepNavigation.controls.next.label": "次へ", - "StepNavigation.controls.prev.label": "前へ", - "StepNavigation.controls.finish.label": "終了", + "Admin.ProjectsDashboard.search.placeholder": "プロジェクトまたはチャレンジの名前", + "Admin.Task.controls.editTask.label": "編集", + "Admin.Task.controls.editTask.tooltip": "タスクを編集", + "Admin.Task.fields.name.label": "タスク:", + "Admin.Task.fields.status.label": "状態:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "操作", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "編集", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "レビュー", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Admin.TaskAnalysisTable.controls.startTask.label": "開始", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "tasks deleted", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "タスクを編集", + "Admin.TaskInspect.controls.modifyTask.label": "タスクのデータを変更", + "Admin.TaskInspect.controls.nextTask.label": "次のタスク", + "Admin.TaskInspect.controls.previousTask.label": "前のタスク", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "再構築中のタスク", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approve", + "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", + "Admin.TaskReview.controls.rejected": "Reject", + "Admin.TaskReview.controls.resubmit": "Submit for Review Again", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Start Review", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "アップロード済のタスク", - "Admin.Challenge.tasksBuilding": "構築中のタスク...", - "Admin.Challenge.tasksFailed": "構築に失敗したタスク", - "Admin.Challenge.tasksNone": "タスクなし", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Total elapsed time:", - "Admin.Challenge.controls.refreshStatus.label": "状態を更新", - "Admin.ManageTasks.header": "タスク", - "Admin.ManageTasks.geographicIndexingNotice": "新規のあるいは変更されたチャレンジを地理的にインデックス化するのに最大{delay} 時間ほど掛かることがありますのでご注意ください。あなたのチャレンジ(及びタスク)は、インデックス化が完了するまでは特定の地域のブラウジングや検索で期待した通りに表示されない場合があります。", - "Admin.manageTasks.controls.changePriority.label": "優先度を変更", - "Admin.manageTasks.priorityLabel": "優先度", - "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "タスクをレビュー", - "Admin.ChallengeTaskMap.controls.editTask.label": "タスクを編集", - "Admin.Task.fields.name.label": "タスク:", - "Admin.Task.fields.status.label": "状態:", - "Admin.VirtualProject.manageChallenge.label": "チャレンジを管理", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.TaskUploadProgress.uploadingTasks.header": "再構築中のタスク", "Admin.VirtualProject.ChallengeList.noChallenges": "No Challenges", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "チャレンジを探す", "Admin.VirtualProject.controls.add.label": "Add", + "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Remove", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "残タスク: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", - "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", - "Widgets.ChallengeListWidget.label": "チャレンジ", - "Widgets.ChallengeListWidget.title": "チャレンジ", - "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "チャレンジを探す", + "Admin.VirtualProject.manageChallenge.label": "チャレンジを管理", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Reviewed On", + "Admin.manage.header": "作成 & 管理", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", - "Widgets.ChallengeOverviewWidget.title": "Overview", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "タスク作成日:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Tasks", - "Widgets.ChallengeTasksWidget.title": "Tasks", - "Widgets.CommentsWidget.label": "Comments", - "Widgets.CommentsWidget.title": "Comments", - "Widgets.CommentsWidget.controls.export.label": "Export", - "Widgets.LeaderboardWidget.label": "Leaderboard", - "Widgets.LeaderboardWidget.title": "Leaderboard", - "Widgets.ProjectAboutWidget.label": "About Projects", - "Widgets.ProjectAboutWidget.title": "About Projects", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Project List", - "Widgets.ProjectListWidget.title": "Projects", - "Widgets.ProjectListWidget.search.placeholder": "Search", - "Widgets.ProjectManagersWidget.label": "Project Managers", - "Admin.ProjectManagers.noManagers": "管理者なし", - "Admin.ProjectManagers.addManager": "プロジェクト管理者を追加", - "Admin.ProjectManagers.projectOwner": "所有者", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "本当にこの管理者をプロジェクトから削除しますか?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "ロールを選ぶ", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMapのユーザー名", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Overview", - "Widgets.ProjectOverviewWidget.title": "Overview", - "Widgets.RecentActivityWidget.label": "Recent Activity", - "Widgets.RecentActivityWidget.title": "Recent Activity", - "Widgets.StatusRadarWidget.label": "Status Radar", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "ユーザー評価済のタスク", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "優先度を変更", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Clear Filters", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "CSVをエクスポート", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "優先度", "AutosuggestTextBox.labels.noResults": "一致なし", - "Form.textUpload.prompt": "GeoJSONファイルをここにドロップするか、クリックしてファイルを選択", - "Form.textUpload.readonly": "既存のファイルが使われます", - "Form.controls.addPriorityRule.label": "ルールを追加", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "残タスク: {taskCount, number}", + "BurndownChart.tooltip": "残タスク", + "CalendarHeatmap.heading": "きょうのヒートマップ: タスク完成度", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "カスタム", + "Challenge.basemap.none": "なし", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "フィルターをクリア", + "Challenge.controls.loadMore.label": "結果の詳細", + "Challenge.controls.save.label": "保存", + "Challenge.controls.start.label": "開始", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "保存しない", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "任意", + "Challenge.difficulty.easy": "簡単", + "Challenge.difficulty.expert": "高度", + "Challenge.difficulty.normal": "普通", "Challenge.fields.difficulty.label": "難易度", "Challenge.fields.lastTaskRefresh.label": "Tasks From", "Challenge.fields.viewLeaderboard.label": "リーダーボードを見る", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "リーダーボードを見る", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "すべて", + "Challenge.keywords.buildings": "建物", + "Challenge.keywords.landUse": "土地利用 / 行政界", + "Challenge.keywords.navigation": "道路 / 歩道 / 自転車道", + "Challenge.keywords.other": "その他", + "Challenge.keywords.pointsOfInterest": "興味深いポイント / エリア", + "Challenge.keywords.transit": "公共交通", + "Challenge.keywords.water": "水系", + "Challenge.location.any": "どこでも", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "自分の近所", + "Challenge.location.withinMapBounds": "マップの矩形範囲", + "Challenge.management.controls.manage.label": "管理", + "Challenge.results.heading": "チャレンジ", + "Challenge.results.noResults": "結果なし", + "Challenge.signIn.label": "サインイン", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "最新", + "Challenge.sort.default": "スマート", + "Challenge.sort.name": "名前", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "人気", + "Challenge.status.building": "建物", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "失敗", + "Challenge.status.finished": "終了", + "Challenge.status.none": "利用不可", + "Challenge.status.partiallyLoaded": "部分的にロード済", + "Challenge.status.ready": "準備完了", + "Challenge.type.challenge": "チャレンジ", + "Challenge.type.survey": "サーベイ", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Manage", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "難易度", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "タスク作成日", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "タスク作成日", "ChallengeDetails.fields.viewLeaderboard.label": "リーダーボードを見る", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Manage", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "所有者に連絡", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "チャレンジ", + "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", "ChallengeFilterSubnav.filter.difficulty.label": "難易度", "ChallengeFilterSubnav.filter.keyword.label": "作業中", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", "ChallengeFilterSubnav.filter.location.label": "位置", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "フィルターをクリア", - "ChallengeFilterSubnav.controls.sortBy.label": "Sort by", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Other:", - "Challenge.controls.unsave.label": "保存しない", - "Challenge.controls.save.label": "保存", - "Challenge.controls.start.label": "開始", - "Challenge.management.controls.manage.label": "管理", - "Challenge.signIn.label": "サインイン", - "Challenge.results.heading": "チャレンジ", - "Challenge.results.noResults": "結果なし", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "{taskCount, number} 件のマッピングされたタスクで作業中", - "VirtualChallenge.fields.name.label": "自分の \"仮想\" チャレンジに名前をつける", - "Challenge.controls.loadMore.label": "結果の詳細", + "ChallengeFilterSubnav.header": "チャレンジ", + "ChallengeFilterSubnav.query.searchType.challenge": "チャレンジ", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "利用可能", - "ChallengeProgress.tooltip.label": "タスク", - "ChallengeProgress.tasks.remaining": "残タスク: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "平均所要時間", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "残タスク: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "タスク", + "ChallengeProgressBorder.available": "Available", "CommentList.controls.viewTask.label": "タスクを見る", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "完了タスク: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "キャンセル", "ConfirmAction.proceed": "進む", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "続行", "CongratulateModal.header": "おめでとうございます!", "CongratulateModal.primaryMessage": "チャレンジは達成されました", - "CongratulateModal.control.dismiss.label": "続行", - "CountryName.ALL": "All Countries", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6", "CountryName.AF": "\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3", - "CountryName.AO": "\u30a2\u30f3\u30b4\u30e9", "CountryName.AL": "\u30a2\u30eb\u30d0\u30cb\u30a2", - "CountryName.AE": "\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6", - "CountryName.AR": "\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3", + "CountryName.ALL": "All Countries", "CountryName.AM": "\u30a2\u30eb\u30e1\u30cb\u30a2", + "CountryName.AO": "\u30a2\u30f3\u30b4\u30e9", "CountryName.AQ": "\u5357\u6975", - "CountryName.TF": "\u4ecf\u9818\u6975\u5357\u8af8\u5cf6", - "CountryName.AU": "\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2", + "CountryName.AR": "\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3", "CountryName.AT": "\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2", + "CountryName.AU": "\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2", "CountryName.AZ": "\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3", - "CountryName.BI": "\u30d6\u30eb\u30f3\u30b8", + "CountryName.BA": "\u30dc\u30b9\u30cb\u30a2\u30fb\u30d8\u30eb\u30c4\u30a7\u30b4\u30d3\u30ca", + "CountryName.BD": "\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5", "CountryName.BE": "\u30d9\u30eb\u30ae\u30fc", - "CountryName.BJ": "\u30d9\u30ca\u30f3", "CountryName.BF": "\u30d6\u30eb\u30ad\u30ca\u30d5\u30a1\u30bd", - "CountryName.BD": "\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5", "CountryName.BG": "\u30d6\u30eb\u30ac\u30ea\u30a2", - "CountryName.BS": "\u30d0\u30cf\u30de", - "CountryName.BA": "\u30dc\u30b9\u30cb\u30a2\u30fb\u30d8\u30eb\u30c4\u30a7\u30b4\u30d3\u30ca", - "CountryName.BY": "\u30d9\u30e9\u30eb\u30fc\u30b7", - "CountryName.BZ": "\u30d9\u30ea\u30fc\u30ba", + "CountryName.BI": "\u30d6\u30eb\u30f3\u30b8", + "CountryName.BJ": "\u30d9\u30ca\u30f3", + "CountryName.BN": "\u30d6\u30eb\u30cd\u30a4", "CountryName.BO": "\u30dc\u30ea\u30d3\u30a2", "CountryName.BR": "\u30d6\u30e9\u30b8\u30eb", - "CountryName.BN": "\u30d6\u30eb\u30cd\u30a4", + "CountryName.BS": "\u30d0\u30cf\u30de", "CountryName.BT": "\u30d6\u30fc\u30bf\u30f3", "CountryName.BW": "\u30dc\u30c4\u30ef\u30ca", - "CountryName.CF": "\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u5171\u548c\u56fd", + "CountryName.BY": "\u30d9\u30e9\u30eb\u30fc\u30b7", + "CountryName.BZ": "\u30d9\u30ea\u30fc\u30ba", "CountryName.CA": "\u30ab\u30ca\u30c0", + "CountryName.CD": "\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd(\u30ad\u30f3\u30b7\u30e3\u30b5)", + "CountryName.CF": "\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u5171\u548c\u56fd", + "CountryName.CG": "\u30b3\u30f3\u30b4\u5171\u548c\u56fd(\u30d6\u30e9\u30b6\u30d3\u30eb)", "CountryName.CH": "\u30b9\u30a4\u30b9", - "CountryName.CL": "\u30c1\u30ea", - "CountryName.CN": "\u4e2d\u56fd", "CountryName.CI": "\u30b3\u30fc\u30c8\u30b8\u30dc\u30ef\u30fc\u30eb", + "CountryName.CL": "\u30c1\u30ea", "CountryName.CM": "\u30ab\u30e1\u30eb\u30fc\u30f3", - "CountryName.CD": "\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd(\u30ad\u30f3\u30b7\u30e3\u30b5)", - "CountryName.CG": "\u30b3\u30f3\u30b4\u5171\u548c\u56fd(\u30d6\u30e9\u30b6\u30d3\u30eb)", + "CountryName.CN": "\u4e2d\u56fd", "CountryName.CO": "\u30b3\u30ed\u30f3\u30d3\u30a2", "CountryName.CR": "\u30b3\u30b9\u30bf\u30ea\u30ab", "CountryName.CU": "\u30ad\u30e5\u30fc\u30d0", @@ -415,10 +485,10 @@ "CountryName.DO": "\u30c9\u30df\u30cb\u30ab\u5171\u548c\u56fd", "CountryName.DZ": "\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2", "CountryName.EC": "\u30a8\u30af\u30a2\u30c9\u30eb", + "CountryName.EE": "\u30a8\u30b9\u30c8\u30cb\u30a2", "CountryName.EG": "\u30a8\u30b8\u30d7\u30c8", "CountryName.ER": "\u30a8\u30ea\u30c8\u30ea\u30a2", "CountryName.ES": "\u30b9\u30da\u30a4\u30f3", - "CountryName.EE": "\u30a8\u30b9\u30c8\u30cb\u30a2", "CountryName.ET": "\u30a8\u30c1\u30aa\u30d4\u30a2", "CountryName.FI": "\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9", "CountryName.FJ": "\u30d5\u30a3\u30b8\u30fc", @@ -428,57 +498,58 @@ "CountryName.GB": "\u30a4\u30ae\u30ea\u30b9", "CountryName.GE": "\u30b8\u30e7\u30fc\u30b8\u30a2", "CountryName.GH": "\u30ac\u30fc\u30ca", - "CountryName.GN": "\u30ae\u30cb\u30a2", + "CountryName.GL": "\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9", "CountryName.GM": "\u30ac\u30f3\u30d3\u30a2", - "CountryName.GW": "\u30ae\u30cb\u30a2\u30d3\u30b5\u30a6", + "CountryName.GN": "\u30ae\u30cb\u30a2", "CountryName.GQ": "\u8d64\u9053\u30ae\u30cb\u30a2", "CountryName.GR": "\u30ae\u30ea\u30b7\u30e3", - "CountryName.GL": "\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9", "CountryName.GT": "\u30b0\u30a2\u30c6\u30de\u30e9", + "CountryName.GW": "\u30ae\u30cb\u30a2\u30d3\u30b5\u30a6", "CountryName.GY": "\u30ac\u30a4\u30a2\u30ca", "CountryName.HN": "\u30db\u30f3\u30b8\u30e5\u30e9\u30b9", "CountryName.HR": "\u30af\u30ed\u30a2\u30c1\u30a2", "CountryName.HT": "\u30cf\u30a4\u30c1", "CountryName.HU": "\u30cf\u30f3\u30ac\u30ea\u30fc", "CountryName.ID": "\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2", - "CountryName.IN": "\u30a4\u30f3\u30c9", "CountryName.IE": "\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9", - "CountryName.IR": "\u30a4\u30e9\u30f3", + "CountryName.IL": "\u30a4\u30b9\u30e9\u30a8\u30eb", + "CountryName.IN": "\u30a4\u30f3\u30c9", "CountryName.IQ": "\u30a4\u30e9\u30af", + "CountryName.IR": "\u30a4\u30e9\u30f3", "CountryName.IS": "\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9", - "CountryName.IL": "\u30a4\u30b9\u30e9\u30a8\u30eb", "CountryName.IT": "\u30a4\u30bf\u30ea\u30a2", "CountryName.JM": "\u30b8\u30e3\u30de\u30a4\u30ab", "CountryName.JO": "\u30e8\u30eb\u30c0\u30f3", "CountryName.JP": "\u65e5\u672c", - "CountryName.KZ": "\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3", "CountryName.KE": "\u30b1\u30cb\u30a2", "CountryName.KG": "\u30ad\u30eb\u30ae\u30b9", "CountryName.KH": "\u30ab\u30f3\u30dc\u30b8\u30a2", + "CountryName.KP": "\u671d\u9bae\u6c11\u4e3b\u4e3b\u7fa9\u4eba\u6c11\u5171\u548c\u56fd", "CountryName.KR": "\u5927\u97d3\u6c11\u56fd", "CountryName.KW": "\u30af\u30a6\u30a7\u30fc\u30c8", + "CountryName.KZ": "\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3", "CountryName.LA": "\u30e9\u30aa\u30b9", "CountryName.LB": "\u30ec\u30d0\u30ce\u30f3", - "CountryName.LR": "\u30ea\u30d9\u30ea\u30a2", - "CountryName.LY": "\u30ea\u30d3\u30a2", "CountryName.LK": "\u30b9\u30ea\u30e9\u30f3\u30ab", + "CountryName.LR": "\u30ea\u30d9\u30ea\u30a2", "CountryName.LS": "\u30ec\u30bd\u30c8", "CountryName.LT": "\u30ea\u30c8\u30a2\u30cb\u30a2", "CountryName.LU": "\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af", "CountryName.LV": "\u30e9\u30c8\u30d3\u30a2", + "CountryName.LY": "\u30ea\u30d3\u30a2", "CountryName.MA": "\u30e2\u30ed\u30c3\u30b3", "CountryName.MD": "\u30e2\u30eb\u30c9\u30d0", + "CountryName.ME": "\u30e2\u30f3\u30c6\u30cd\u30b0\u30ed", "CountryName.MG": "\u30de\u30c0\u30ac\u30b9\u30ab\u30eb", - "CountryName.MX": "\u30e1\u30ad\u30b7\u30b3", "CountryName.MK": "\u30de\u30b1\u30c9\u30cb\u30a2", "CountryName.ML": "\u30de\u30ea", "CountryName.MM": "\u30df\u30e3\u30f3\u30de\u30fc", - "CountryName.ME": "\u30e2\u30f3\u30c6\u30cd\u30b0\u30ed", "CountryName.MN": "\u30e2\u30f3\u30b4\u30eb", - "CountryName.MZ": "\u30e2\u30b6\u30f3\u30d3\u30fc\u30af", "CountryName.MR": "\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2", "CountryName.MW": "\u30de\u30e9\u30a6\u30a4", + "CountryName.MX": "\u30e1\u30ad\u30b7\u30b3", "CountryName.MY": "\u30de\u30ec\u30fc\u30b7\u30a2", + "CountryName.MZ": "\u30e2\u30b6\u30f3\u30d3\u30fc\u30af", "CountryName.NA": "\u30ca\u30df\u30d3\u30a2", "CountryName.NC": "\u30cb\u30e5\u30fc\u30ab\u30ec\u30c9\u30cb\u30a2", "CountryName.NE": "\u30cb\u30b8\u30a7\u30fc\u30eb", @@ -489,460 +560,821 @@ "CountryName.NP": "\u30cd\u30d1\u30fc\u30eb", "CountryName.NZ": "\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9", "CountryName.OM": "\u30aa\u30de\u30fc\u30f3", - "CountryName.PK": "\u30d1\u30ad\u30b9\u30bf\u30f3", "CountryName.PA": "\u30d1\u30ca\u30de", "CountryName.PE": "\u30da\u30eb\u30fc", - "CountryName.PH": "\u30d5\u30a3\u30ea\u30d4\u30f3", "CountryName.PG": "\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2", + "CountryName.PH": "\u30d5\u30a3\u30ea\u30d4\u30f3", + "CountryName.PK": "\u30d1\u30ad\u30b9\u30bf\u30f3", "CountryName.PL": "\u30dd\u30fc\u30e9\u30f3\u30c9", "CountryName.PR": "\u30d7\u30a8\u30eb\u30c8\u30ea\u30b3", - "CountryName.KP": "\u671d\u9bae\u6c11\u4e3b\u4e3b\u7fa9\u4eba\u6c11\u5171\u548c\u56fd", + "CountryName.PS": "\u30d1\u30ec\u30b9\u30c1\u30ca\u81ea\u6cbb\u533a", "CountryName.PT": "\u30dd\u30eb\u30c8\u30ac\u30eb", "CountryName.PY": "\u30d1\u30e9\u30b0\u30a2\u30a4", "CountryName.QA": "\u30ab\u30bf\u30fc\u30eb", "CountryName.RO": "\u30eb\u30fc\u30de\u30cb\u30a2", + "CountryName.RS": "\u30bb\u30eb\u30d3\u30a2", "CountryName.RU": "\u30ed\u30b7\u30a2", "CountryName.RW": "\u30eb\u30ef\u30f3\u30c0", "CountryName.SA": "\u30b5\u30a6\u30b8\u30a2\u30e9\u30d3\u30a2", - "CountryName.SD": "\u30b9\u30fc\u30c0\u30f3", - "CountryName.SS": "\u5357\u30b9\u30fc\u30c0\u30f3", - "CountryName.SN": "\u30bb\u30cd\u30ac\u30eb", "CountryName.SB": "\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6", + "CountryName.SD": "\u30b9\u30fc\u30c0\u30f3", + "CountryName.SE": "\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3", + "CountryName.SI": "\u30b9\u30ed\u30d9\u30cb\u30a2", + "CountryName.SK": "\u30b9\u30ed\u30d0\u30ad\u30a2", "CountryName.SL": "\u30b7\u30a8\u30e9\u30ec\u30aa\u30cd", - "CountryName.SV": "\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb", + "CountryName.SN": "\u30bb\u30cd\u30ac\u30eb", "CountryName.SO": "\u30bd\u30de\u30ea\u30a2", - "CountryName.RS": "\u30bb\u30eb\u30d3\u30a2", "CountryName.SR": "\u30b9\u30ea\u30ca\u30e0", - "CountryName.SK": "\u30b9\u30ed\u30d0\u30ad\u30a2", - "CountryName.SI": "\u30b9\u30ed\u30d9\u30cb\u30a2", - "CountryName.SE": "\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3", - "CountryName.SZ": "\u30b9\u30ef\u30b8\u30e9\u30f3\u30c9", + "CountryName.SS": "\u5357\u30b9\u30fc\u30c0\u30f3", + "CountryName.SV": "\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb", "CountryName.SY": "\u30b7\u30ea\u30a2", + "CountryName.SZ": "\u30b9\u30ef\u30b8\u30e9\u30f3\u30c9", "CountryName.TD": "\u30c1\u30e3\u30c9", + "CountryName.TF": "\u4ecf\u9818\u6975\u5357\u8af8\u5cf6", "CountryName.TG": "\u30c8\u30fc\u30b4", "CountryName.TH": "\u30bf\u30a4", "CountryName.TJ": "\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3", - "CountryName.TM": "\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3", "CountryName.TL": "\u6771\u30c6\u30a3\u30e2\u30fc\u30eb", - "CountryName.TT": "\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4", + "CountryName.TM": "\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3", "CountryName.TN": "\u30c1\u30e5\u30cb\u30b8\u30a2", "CountryName.TR": "\u30c8\u30eb\u30b3", + "CountryName.TT": "\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4", "CountryName.TW": "\u53f0\u6e7e", "CountryName.TZ": "\u30bf\u30f3\u30b6\u30cb\u30a2", - "CountryName.UG": "\u30a6\u30ac\u30f3\u30c0", "CountryName.UA": "\u30a6\u30af\u30e9\u30a4\u30ca", - "CountryName.UY": "\u30a6\u30eb\u30b0\u30a2\u30a4", + "CountryName.UG": "\u30a6\u30ac\u30f3\u30c0", "CountryName.US": "\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd", + "CountryName.UY": "\u30a6\u30eb\u30b0\u30a2\u30a4", "CountryName.UZ": "\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3", "CountryName.VE": "\u30d9\u30cd\u30ba\u30a8\u30e9", "CountryName.VN": "\u30d9\u30c8\u30ca\u30e0", "CountryName.VU": "\u30d0\u30cc\u30a2\u30c4", - "CountryName.PS": "\u30d1\u30ec\u30b9\u30c1\u30ca\u81ea\u6cbb\u533a", "CountryName.YE": "\u30a4\u30a8\u30e1\u30f3", "CountryName.ZA": "\u5357\u30a2\u30d5\u30ea\u30ab", "CountryName.ZM": "\u30b6\u30f3\u30d3\u30a2", "CountryName.ZW": "\u30b8\u30f3\u30d0\u30d6\u30a8", - "FitBoundsControl.tooltip": "タスクの内容にマップを合わせる", - "LayerToggle.controls.showTaskFeatures.label": "タスクの内容", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(ロード中...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "ピン留め", + "Dashboard.ChallengeFilter.visible.label": "表示", + "Dashboard.ProjectFilter.owner.label": "所有", + "Dashboard.ProjectFilter.pinned.label": "ピン留め", + "Dashboard.ProjectFilter.visible.label": "表示", + "Dashboard.header": "ダッシュボード", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "iD (webのエディタ)で編集", + "Editor.josm.label": "JOSMで編集", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "新しいJOSMレイヤで編集", + "Editor.level0.label": "Level0で編集", + "Editor.none.label": "なし", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Get Help", - "Footer.reportBug": "Report a Bug", - "Footer.joinNewsletter": "Join the Newsletter!", - "Footer.followUs": "Follow Us", - "Footer.email.placeholder": "Email Address", - "Footer.email.submit.label": "Submit", - "HelpPopout.control.label": "ヘルプ", - "LayerSource.challengeDefault.label": "チャレンジの既定値", - "LayerSource.userDefault.label": "自分の既定値", - "HomePane.header": "世界地図を素早く編集しよう", - "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "あなたにとって重要なタスクを探します", - "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", - "HomePane.filterDifficultyIntro": "初心者から上級者まで、レベルに応じた作業が可能", - "HomePane.createChallenges": "タスクを作成して地図データを改善", + "Errors.boundedTask.fetchFailure": "マップで囲まれたタスクを取得できません", + "Errors.challenge.deleteFailure": "チャレンジを削除できません。", + "Errors.challenge.doesNotExist": "そのチャレンジはありません。", + "Errors.challenge.fetchFailure": "サーバーから最新のチャレンジデータを参照できません。", + "Errors.challenge.rebuildFailure": "チャレンジのタスクを再構築できません", + "Errors.challenge.saveFailure": "あなたのチャレンジを保存できません{details}", + "Errors.challenge.searchFailure": "サーバー上のチャレンジが見つかりません。", + "Errors.clusteredTask.fetchFailure": "タクスのクラスタを取得できません", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSMリモート制御が反応しません。JOSMのリモート制御は有効化されていますか?", + "Errors.leaderboard.fetchFailure": "リーダーボードを取得できません。", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", + "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", + "Errors.project.deleteFailure": "プロジェクトを削除できません。", + "Errors.project.fetchFailure": "サーバーから最新のプロジェクトデータを参照できません。", + "Errors.project.notManager": "先に進むにはそのプロジェクトの管理者でなければなりません。", + "Errors.project.saveFailure": "あなたのチャレンジを保存できません{details}", + "Errors.project.searchFailure": "プロジェクトを検索できません。", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "タスクを削除できません。", + "Errors.task.doesNotExist": "そのタスクはありません。", + "Errors.task.fetchFailure": "作業するタスクを取得できません。", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "このチャレンジにはタスクが残っていません。", + "Errors.task.saveFailure": "あなたの変更を保存できません{details}", + "Errors.task.updateFailure": "あなたの変更を保存できません。", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "サーバーからあなたのユーザーデータを取得できません。", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "ホームの位置が見つかりません。ブラウザに許可するか openstreetmap.org設定のホーム位置をセットしてください(OpenStreetMap の設定変更後にその内容を反映させるには、その後でMapRouletteいったんサインアウトしてサインインし直してください)。", + "Errors.user.notFound": "このユーザー名は見つかりません。", + "Errors.user.unauthenticated": "続けるにはサインインしてください。", + "Errors.user.unauthorized": "すみません、あなたはその操作の権限がありません。", + "Errors.user.updateFailure": "サーバー上であなたのユーザーデータを更新できません。", + "Errors.virtualChallenge.createFailure": "仮想チャレンジを参照できません{details}", + "Errors.virtualChallenge.expired": "仮想チャレンジは期限切れです。", + "Errors.virtualChallenge.fetchFailure": "サーバーから最新の仮想チャレンジのデータを参照できません。", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "タスクの内容にマップを合わせる", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Email Address", + "Footer.email.submit.label": "Submit", + "Footer.followUs": "Follow Us", + "Footer.getHelp": "Get Help", + "Footer.joinNewsletter": "Join the Newsletter!", + "Footer.reportBug": "Report a Bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "ルールを追加", + "Form.textUpload.prompt": "GeoJSONファイルをここにドロップするか、クリックしてファイルを選択", + "Form.textUpload.readonly": "既存のファイルが使われます", + "General.controls.moreResults.label": "More Results", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "ヘルプ", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "タスクを作成して地図データを改善", + "HomePane.feedback.header": "Feedback", + "HomePane.filterDifficultyIntro": "初心者から上級者まで、レベルに応じた作業が可能", + "HomePane.filterLocationIntro": "Make fixes in local areas you care about.", + "HomePane.filterTagIntro": "あなたにとって重要なタスクを探します", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "始める", - "Admin.TaskInspect.controls.previousTask.label": "前のタスク", - "Admin.TaskInspect.controls.nextTask.label": "次のタスク", - "Admin.TaskInspect.controls.editTask.label": "タスクを編集", - "Admin.TaskInspect.controls.modifyTask.label": "タスクのデータを変更", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", + "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", + "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", + "KeyMapping.openEditor.editId": "iDで編集", + "KeyMapping.openEditor.editJosm": "JOSMで編集", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "新しいJOSMレイヤで編集", + "KeyMapping.openEditor.editLevel0": "Level0で編集", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "既に修正済", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "イシュー以外", + "KeyMapping.taskCompletion.fixed": "修正しました!", + "KeyMapping.taskCompletion.skip": "スキップ", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "編集をキャンセル", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "タスクの内容にマップを合わせる", + "KeyMapping.taskInspect.nextTask": "次のタスク", + "KeyMapping.taskInspect.prevTask": "前のタスク", + "KeyboardShortcuts.control.label": "キーボードショートカット", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "キーワードを追加", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "More Results", + "LayerSource.challengeDefault.label": "チャレンジの既定値", + "LayerSource.userDefault.label": "自分の既定値", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "タスクの内容", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(ロード中...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "スコアリング手法", + "Leaderboard.title": "Leaderboard for", + "Leaderboard.updatedDaily": "Updated every 24 hours", + "Leaderboard.updatedFrequently": "Updated every 15 minutes", + "Leaderboard.user.points": "ポイント", + "Leaderboard.user.topChallenges": "トップチャレンジ", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "トップチャレンジ", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "ユーザー評価済のタスク", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "自分のコンピュータで訪問してください", "MobileNotSupported.message": "すみません、MapRouletteは現在モバイル端末をサポートしていません。", "MobileNotSupported.pageMessage": "すみません、このページはまだあなたのモバイル端末には対応対応していません。", "MobileNotSupported.widenDisplay": "If using a computer, please widen your window or use a larger display.", - "Navbar.links.dashboard": "ダッシュボード", + "MobileTask.subheading.instructions": "手順", + "Navbar.links.admin": "作成", "Navbar.links.challengeResults": "チャレンジ", - "Navbar.links.leaderboard": "リーダーボード", + "Navbar.links.dashboard": "ダッシュボード", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "ヘルプ", "Navbar.links.inbox": "メールボックス", + "Navbar.links.leaderboard": "リーダーボード", "Navbar.links.review": "レビュー", - "Navbar.links.admin": "作成", - "Navbar.links.help": "ヘルプ", - "Navbar.links.userProfile": "ユーザープロファイル", - "Navbar.links.userMetrics": "統計情報", "Navbar.links.signout": "サインアウト", - "PageNotFound.message": "すみません、ここには海しかありません。", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "統計情報", + "Navbar.links.userProfile": "ユーザープロファイル", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "ホームページ", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "すみません、ここには海しかありません。", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "ポイント", "PopularChallenges.header": "人気のチャレンジ", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "コピー", + "Profile.apiKey.controls.reset.label": "リセット", + "Profile.apiKey.header": "APIキー", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "カスタム・ベースマップ", + "Profile.form.defaultBasemap.description": "マップ上に表示させる既定のベースマップを選んでください。既定のチャレンジ用ベースマップだけがここでの選択内容を上書きします。", + "Profile.form.defaultBasemap.label": "既定のベースマップ", + "Profile.form.defaultEditor.description": "タスクに取り組む際に使いたい既定のエディタを選びます。このオプションを指定しておくと、タスク内で編集をクリックした際に表示されるダイアログ選択を省略できます。", + "Profile.form.defaultEditor.label": "既定のエディタ", + "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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "「yes」にすると公開リーダーボードにあなたは表示され**ません**", + "Profile.form.leaderboardOptOut.label": "リーダーボードのオプトアウト", + "Profile.form.locale.description": "MapRoulette UI用のユーザーの言語と地域。", + "Profile.form.locale.label": "言語と地域", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "リーダーボードを見る", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "リーダーボードを見る", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", - "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "Approve", - "Admin.TaskReview.controls.rejected": "Reject", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", - "Admin.TaskReview.controls.startReview": "Start Review", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Submit for Review Again", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "再構築", + "RebuildTasksControl.modal.controls.cancel.label": "キャンセル", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "進む", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "再構築では最新GeoJsonデータで新しいローカルファイルをアップロードしてチャレンジのタスクを再構築できます:", + "RebuildTasksControl.modal.intro.overpass": "再構築ではOverpassクエリーを再実行し、チャレンジのタスクを最新データで再構築します:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[詳細](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "チャレンジのタクスを再構築", + "RebuildTasksControl.modal.warning": "警告: 再構築をすると、地物のIDが正しく設定されていなかったり、新旧データがうまく一致しなかった場合などにタスクの複製が起こる場合があります。この操作は取り消せません!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tracked Tasks", - "Task.unsave.control.tooltip": "追跡を中止", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "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.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "チャレンジ", "ShareLink.controls.copy.label": "コピー", "SignIn.control.label": "サインイン", "SignIn.control.longLabel": "サインイン", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "キャンセル", + "StepNavigation.controls.finish.label": "終了", + "StepNavigation.controls.next.label": "次へ", + "StepNavigation.controls.prev.label": "前へ", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "操作", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "内部Id", - "Task.fields.featureId.label": "オススメId", - "Task.fields.status.label": "状態", - "Task.fields.priority.label": "優先度", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Review Status", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapper", - "Task.fields.reviewedBy.label": "Reviewer", - "Admin.fields.reviewedAt.label": "Reviewed On", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "レビュー", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Admin.TaskAnalysisTable.controls.editTask.label": "編集", - "Admin.TaskAnalysisTable.controls.startTask.label": "開始", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Change status to", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "CSVをエクスポート", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "オプションのコメント", - "Task.comments.comment.controls.submit.label": "Submit", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Comments", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Next task:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Cancel", - "TaskConfirmationModal.submit.label": "Submit", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Task marked as", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "オプション詳細", + "Task.comments.comment.controls.submit.label": "Submit", "Task.controls.alreadyFixed.label": "修正済", "Task.controls.alreadyFixed.tooltip": "修正済", "Task.controls.cancelEditing.label": "戻る", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "修正しました!", - "ActiveTask.controls.notFixed.label": "難しすぎ / 見つからない", - "ActiveTask.controls.aleadyFixed.label": "修正済", - "ActiveTask.controls.cancelEditing.label": "戻る", + "Task.controls.completionComment.placeholder": "オプションのコメント", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "所有者に連絡", "Task.controls.edit.label": "編集", "Task.controls.edit.tooltip": "編集", "Task.controls.falsePositive.label": "イシュー以外", "Task.controls.falsePositive.tooltip": "イシュー以外", "Task.controls.fixed.label": "修正しました!", "Task.controls.fixed.tooltip": "修正しました!", + "Task.controls.moreOptions.label": "オプション詳細", "Task.controls.next.label": "次のタスク", - "Task.controls.next.tooltip": "次のタスク", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "次のタスク", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "スキップ", "Task.controls.skip.tooltip": "タスクをスキップ", - "Task.controls.tooHard.label": "難しすぎ / 見つからない", - "Task.controls.tooHard.tooltip": "難しすぎ / 見つからない", - "KeyboardShortcuts.control.label": "キーボードショートカット", - "ActiveTask.keyboardShortcuts.label": "キーボードショートカットを見る", - "ActiveTask.controls.info.tooltip": "タスクの詳細", - "ActiveTask.controls.comments.tooltip": "コメントを見る", - "ActiveTask.subheading.comments": "コメント", - "ActiveTask.heading": "チャレンジの情報", - "ActiveTask.subheading.instructions": "手順", - "ActiveTask.subheading.location": "位置", - "ActiveTask.subheading.progress": "チャレンジの進捗", - "ActiveTask.subheading.social": "共有", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "手順", - "Task.management.heading": "管理オプション", - "Task.management.controls.inspect.label": "レビュー", - "Task.management.controls.modify.label": "変更", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "このタスクを追跡", "Task.controls.untrack.label": "このタスクの追跡を中止", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "利用可能", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "オススメId", + "Task.fields.id.label": "内部Id", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "優先度", + "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Review Status", + "Task.fields.reviewedBy.label": "Reviewer", + "Task.fields.status.label": "状態", + "Task.loadByMethod.proximity": "近隣", + "Task.loadByMethod.random": "ランダム", + "Task.management.controls.inspect.label": "レビュー", + "Task.management.controls.modify.label": "変更", + "Task.management.heading": "管理オプション", + "Task.markedAs.label": "Task marked as", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "高", + "Task.priority.low": "低", + "Task.priority.medium": "中", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "既に修正済", + "Task.status.created": "作成済", + "Task.status.deleted": "削除済", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "イシュー以外", + "Task.status.fixed": "修正済", + "Task.status.skipped": "スキップ済", + "Task.status.tooHard": "難しすぎ", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "Task.unsave.control.tooltip": "追跡を中止", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Comments", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Cancel", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Next task:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "既存の状態", - "ActiveTask.controls.status.tooltip": "既存の状態", - "ActiveTask.controls.viewChangset.label": "変更セットを見る", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Your Top Challenges", "TopUserChallenges.widget.label": "Your Top Challenges", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "仮想チャレンジ", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tracked Tasks", + "UserProfile.topChallenges.header": "Your Top Challenges", + "VirtualChallenge.controls.create.label": "{taskCount, number} 件のマッピングされたタスクで作業中", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "自分の \"仮想\" チャレンジに名前をつける", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", + "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", + "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Current layout:", + "WidgetWorkspace.labels.switchTo": "Switch to:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "残タスク: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Daily Heatmap", + "Widgets.CalendarHeatmapWidget.title": "Daily Heatmap: Task Completion", + "Widgets.ChallengeListWidget.label": "チャレンジ", + "Widgets.ChallengeListWidget.search.placeholder": "Search", + "Widgets.ChallengeListWidget.title": "チャレンジ", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Created:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visible:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modified:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "タスク作成日:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tasks Refreshed:", + "Widgets.ChallengeOverviewWidget.label": "Challenge Overview", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Overview", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", + "Widgets.ChallengeTasksWidget.label": "Tasks", + "Widgets.ChallengeTasksWidget.title": "Tasks", + "Widgets.CommentsWidget.controls.export.label": "Export", + "Widgets.CommentsWidget.label": "Comments", + "Widgets.CommentsWidget.title": "Comments", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Challenge has no tasks", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Leaderboard", + "Widgets.LeaderboardWidget.title": "Leaderboard", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "About Projects", + "Widgets.ProjectAboutWidget.title": "About Projects", + "Widgets.ProjectListWidget.label": "Project List", + "Widgets.ProjectListWidget.search.placeholder": "Search", + "Widgets.ProjectListWidget.title": "Projects", + "Widgets.ProjectManagersWidget.label": "Project Managers", + "Widgets.ProjectOverviewWidget.label": "Overview", + "Widgets.ProjectOverviewWidget.title": "Overview", + "Widgets.RecentActivityWidget.label": "Recent Activity", + "Widgets.RecentActivityWidget.title": "Recent Activity", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Status Radar", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Edit Layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Done Editing", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Add New Layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Delete Layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Reset Layout to Default", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Current layout:", - "WidgetWorkspace.labels.switchTo": "Switch to:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo のショートカットはサポートされていません。使用したい場合は、Overpass Turbo のサイトで自分のクエリーをテストして、 エクスポート -> クエリー -> スタンドアロン -> コピー の順に選んでここに貼り付けてください。", - "Dashboard.header": "ダッシュボード", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Leaderboard for", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "スコアリング手法", - "Leaderboard.scoringMethod.explanation": "##### ポイントは完了したタスクに応じて次のように付与されます:\n\n| 状態 | ポイント |\n| :------------ | -----: |\n| 修正済 | 5 |\n| イシュー以外 | 3 |\n| 既に修正済 | 3 |\n| 難しすぎ | 1 |\n| スキップ済 | 0 |", - "Leaderboard.user.points": "ポイント", - "Leaderboard.user.topChallenges": "トップチャレンジ", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Updated every 15 minutes", - "Leaderboard.updatedDaily": "Updated every 24 hours", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "トップチャレンジ", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "既定のエディタ", - "Profile.form.defaultEditor.description": "タスクに取り組む際に使いたい既定のエディタを選びます。このオプションを指定しておくと、タスク内で編集をクリックした際に表示されるダイアログ選択を省略できます。", - "Profile.form.defaultBasemap.label": "既定のベースマップ", - "Profile.form.defaultBasemap.description": "マップ上に表示させる既定のベースマップを選んでください。既定のチャレンジ用ベースマップだけがここでの選択内容を上書きします。", - "Profile.form.customBasemap.label": "カスタム・ベースマップ", - "Profile.form.customBasemap.description": "ここにカスタム・ベースマップを入力してください。例) `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "言語と地域", - "Profile.form.locale.description": "MapRoulette UI用のユーザーの言語と地域。", - "Profile.form.leaderboardOptOut.label": "リーダーボードのオプトアウト", - "Profile.form.leaderboardOptOut.description": "「yes」にすると公開リーダーボードにあなたは表示され**ません**", - "Profile.apiKey.header": "APIキー", - "Profile.apiKey.controls.copy.label": "コピー", - "Profile.apiKey.controls.reset.label": "リセット", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "更新日", - "Activity.action.created": "作成日", - "Activity.action.deleted": "削除日", - "Activity.action.taskViewed": "閲覧日", - "Activity.action.taskStatusSet": "状態を次のように設定:", - "Activity.action.tagAdded": "タグの追加先:", - "Activity.action.tagRemoved": "タグの削除元:", - "Activity.action.questionAnswered": "回答済みの質問をオン", - "Activity.item.project": "プロジェクト", - "Activity.item.challenge": "チャレンジ", - "Activity.item.task": "タスク", - "Activity.item.tag": "タグ", - "Activity.item.survey": "サーベイ", - "Activity.item.user": "ユーザー", - "Activity.item.group": "グループ", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "なし", - "Admin.Challenge.basemap.none": "ユーザーの既定値", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "カスタム", - "Challenge.difficulty.easy": "簡単", - "Challenge.difficulty.normal": "普通", - "Challenge.difficulty.expert": "高度", - "Challenge.difficulty.any": "任意", - "Challenge.keywords.navigation": "道路 / 歩道 / 自転車道", - "Challenge.keywords.water": "水系", - "Challenge.keywords.pointsOfInterest": "興味深いポイント / エリア", - "Challenge.keywords.buildings": "建物", - "Challenge.keywords.landUse": "土地利用 / 行政界", - "Challenge.keywords.transit": "公共交通", - "Challenge.keywords.other": "その他", - "Challenge.keywords.any": "すべて", - "Challenge.location.nearMe": "自分の近所", - "Challenge.location.withinMapBounds": "マップの矩形範囲", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "どこでも", - "Challenge.status.none": "利用不可", - "Challenge.status.building": "建物", - "Challenge.status.failed": "失敗", - "Challenge.status.ready": "準備完了", - "Challenge.status.partiallyLoaded": "部分的にロード済", - "Challenge.status.finished": "終了", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "チャレンジ", - "Challenge.type.survey": "サーベイ", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "なし", - "Editor.id.label": "iD (webのエディタ)で編集", - "Editor.josm.label": "JOSMで編集", - "Editor.josmLayer.label": "新しいJOSMレイヤで編集", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Level0で編集", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "ホームの位置が見つかりません。ブラウザに許可するか openstreetmap.org設定のホーム位置をセットしてください(OpenStreetMap の設定変更後にその内容を反映させるには、その後でMapRouletteいったんサインアウトしてサインインし直してください)。", - "Errors.user.unauthenticated": "続けるにはサインインしてください。", - "Errors.user.unauthorized": "すみません、あなたはその操作の権限がありません。", - "Errors.user.updateFailure": "サーバー上であなたのユーザーデータを更新できません。", - "Errors.user.fetchFailure": "サーバーからあなたのユーザーデータを取得できません。", - "Errors.user.notFound": "このユーザー名は見つかりません。", - "Errors.leaderboard.fetchFailure": "リーダーボードを取得できません。", - "Errors.task.none": "このチャレンジにはタスクが残っていません。", - "Errors.task.saveFailure": "あなたの変更を保存できません{details}", - "Errors.task.updateFailure": "あなたの変更を保存できません。", - "Errors.task.deleteFailure": "タスクを削除できません。", - "Errors.task.fetchFailure": "作業するタスクを取得できません。", - "Errors.task.doesNotExist": "そのタスクはありません。", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "OpenStreetMap data request too large", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Unable to fetch data from OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "タクスのクラスタを取得できません", - "Errors.boundedTask.fetchFailure": "マップで囲まれたタスクを取得できません", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "サーバーから最新のチャレンジデータを参照できません。", - "Errors.challenge.searchFailure": "サーバー上のチャレンジが見つかりません。", - "Errors.challenge.deleteFailure": "チャレンジを削除できません。", - "Errors.challenge.saveFailure": "あなたのチャレンジを保存できません{details}", - "Errors.challenge.rebuildFailure": "チャレンジのタスクを再構築できません", - "Errors.challenge.doesNotExist": "そのチャレンジはありません。", - "Errors.virtualChallenge.fetchFailure": "サーバーから最新の仮想チャレンジのデータを参照できません。", - "Errors.virtualChallenge.createFailure": "仮想チャレンジを参照できません{details}", - "Errors.virtualChallenge.expired": "仮想チャレンジは期限切れです。", - "Errors.project.saveFailure": "あなたのチャレンジを保存できません{details}", - "Errors.project.fetchFailure": "サーバーから最新のプロジェクトデータを参照できません。", - "Errors.project.searchFailure": "プロジェクトを検索できません。", - "Errors.project.deleteFailure": "プロジェクトを削除できません。", - "Errors.project.notManager": "先に進むにはそのプロジェクトの管理者でなければなりません。", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "OSMリモート制御が反応しません。JOSMのリモート制御は有効化されていますか?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "iDで編集", - "KeyMapping.openEditor.editJosm": "JOSMで編集", - "KeyMapping.openEditor.editJosmLayer": "新しいJOSMレイヤで編集", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Level0で編集", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "編集をキャンセル", - "KeyMapping.taskEditing.fitBounds": "タスクの内容にマップを合わせる", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "スキップ", - "KeyMapping.taskCompletion.falsePositive": "イシュー以外", - "KeyMapping.taskCompletion.fixed": "修正しました!", - "KeyMapping.taskCompletion.tooHard": "難しすぎ / 見つからない", - "KeyMapping.taskCompletion.alreadyFixed": "既に修正済", - "KeyMapping.taskInspect.nextTask": "次のタスク", - "KeyMapping.taskInspect.prevTask": "前のタスク", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "名前", - "Challenge.sort.created": "最新", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "人気", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "スマート", - "Task.loadByMethod.random": "ランダム", - "Task.loadByMethod.proximity": "近隣", - "Task.priority.high": "高", - "Task.priority.medium": "中", - "Task.priority.low": "低", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "作成済", - "Task.status.fixed": "修正済", - "Task.status.falsePositive": "イシュー以外", - "Task.status.skipped": "スキップ済", - "Task.status.deleted": "削除済", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "既に修正済", - "Task.status.tooHard": "難しすぎ", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "表示", - "Dashboard.ChallengeFilter.pinned.label": "ピン留め", - "Dashboard.ProjectFilter.visible.label": "表示", - "Dashboard.ProjectFilter.owner.label": "所有", - "Dashboard.ProjectFilter.pinned.label": "ピン留め" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/ko.json b/src/lang/ko.json index 2560ba9f5..deb2149d3 100644 --- a/src/lang/ko.json +++ b/src/lang/ko.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "나의 최근 활동", - "BurndownChart.heading": "남은 작업: {taskCount, number}", - "BurndownChart.tooltip": "남은 작업", - "CalendarHeatmap.heading": "일별 히트맵: 작업 완료", + "ActiveTask.controls.aleadyFixed.label": "이미 고쳐짐", + "ActiveTask.controls.cancelEditing.label": "뒤로", + "ActiveTask.controls.comments.tooltip": "댓글 보기", + "ActiveTask.controls.fixed.label": "직접 고쳤습니다!", + "ActiveTask.controls.info.tooltip": "작업 자세히 보기", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "기존 상태", + "ActiveTask.controls.viewChangset.label": "바뀜집합 보기", + "ActiveTask.heading": "도전 정보", + "ActiveTask.indicators.virtualChallenge.tooltip": "가상 도전", + "ActiveTask.keyboardShortcuts.label": "키보드 단축키 보기", + "ActiveTask.subheading.comments": "댓글", + "ActiveTask.subheading.instructions": "지시", + "ActiveTask.subheading.location": "위치", + "ActiveTask.subheading.progress": "도전 진척도", + "ActiveTask.subheading.social": "공유", + "ActiveTask.subheading.status": "기존 상태", + "Activity.action.created": "생성됨", + "Activity.action.deleted": "삭제됨", + "Activity.action.questionAnswered": "답변된 질문:", + "Activity.action.tagAdded": "다음 지물에 태그 추가:", + "Activity.action.tagRemoved": "다음 지물에서 태그 삭제:", + "Activity.action.taskStatusSet": "상태를 다음으로 설정:", + "Activity.action.taskViewed": "봄", + "Activity.action.updated": "업데이트됨", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "작업", + "Activity.item.grant": "Grant", + "Activity.item.group": "그룹", + "Activity.item.project": "프로젝트", + "Activity.item.survey": "조사", + "Activity.item.tag": "태그", + "Activity.item.task": "작업", + "Activity.item.user": "사용자", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "최근 활동", + "Admin.Challenge.basemap.none": "기본값", + "Admin.Challenge.controls.clone.label": "도전 복제", + "Admin.Challenge.controls.delete.label": "도전 삭제", + "Admin.Challenge.controls.edit.label": "수정", + "Admin.Challenge.controls.move.label": "이동", + "Admin.Challenge.controls.move.none": "허가된 프로젝트 없음", + "Admin.Challenge.controls.refreshStatus.label": "상태 새로고침", + "Admin.Challenge.controls.start.label": "시작", + "Admin.Challenge.controls.startChallenge.label": "도전 시작", + "Admin.Challenge.fields.creationDate.label": "만들어짐:", + "Admin.Challenge.fields.enabled.label": "공개:", + "Admin.Challenge.fields.lastModifiedDate.label": "수정됨:", + "Admin.Challenge.fields.status.label": "상태:", + "Admin.Challenge.tasksBuilding": "작업을 구축하는 중...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "작업을 구축하는 데 실패했습니다", + "Admin.Challenge.tasksNone": "작업 없음", + "Admin.Challenge.totalCreationTime": "총 소요 시간:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "옵션", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "도전명", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "완료", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "진척도", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "보이게 하기", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "마지막 활동", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "관리", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "수정", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "시작", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "도전명", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "진척도", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "복제", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "'상태' 열 추가", - "ChallengeCard.totalTasks": "모든 작업", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "시작", - "Admin.Challenge.controls.edit.label": "수정", - "Admin.Challenge.controls.move.label": "이동", - "Admin.Challenge.controls.move.none": "허가된 프로젝트 없음", - "Admin.Challenge.controls.clone.label": "도전 복제", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "도전 삭제", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "수정", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "관리", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "'상태' 열 추가", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "시작", "Admin.ChallengeList.noChallenges": "도전 없음", - "ChallengeProgressBorder.available": "이용 가능", - "CompletionRadar.heading": "완료된 작업: {taskCount, number}", - "Admin.EditProject.unavailable": "이용할 수 없는 프로젝트", - "Admin.EditProject.edit.header": "수정", - "Admin.EditProject.new.header": "새 프로젝트", - "Admin.EditProject.controls.save.label": "저장", - "Admin.EditProject.controls.cancel.label": "취소", - "Admin.EditProject.form.name.label": "이름", - "Admin.EditProject.form.name.description": "프로젝트명", - "Admin.EditProject.form.displayName.label": "표시할 명칭", - "Admin.EditProject.form.displayName.description": "표시할 프로젝트명", - "Admin.EditProject.form.enabled.label": "보이기", - "Admin.EditProject.form.enabled.description": "프로젝트를 보이게 설정하면 다른 사람들이 프로젝트에 속한 모든 도전을 검색할 수 있으며, 모든 도전에 참여할 수 있습니다. 다시 말해, 프로젝트를 보이게 설정한다는 것은 프로젝트에 속한 모든 도전을 보이게 설정한다는 것과 똑같습니다. 당신을 포함한 모든 사람이 프로젝트에 속한 도전에 참여할 수 있고, 도전 통계 URL을 공유할 수도 있습니다. 만들어 놓은 도전을 검토하는 시간을 가지려면 프로젝트를 보이지 않게 설정하세요.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "가상", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "설명", - "Admin.EditProject.form.description.description": "프로젝트 설명", - "Admin.InspectTask.header": "작업 검사", - "Admin.EditChallenge.edit.header": "편집", + "Admin.ChallengeTaskMap.controls.editTask.label": "작업 수정", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "작업 검사", "Admin.EditChallenge.clone.header": "복제", - "Admin.EditChallenge.new.header": "새 도전", - "Admin.EditChallenge.lineNumber": "줄 {line, number}:", + "Admin.EditChallenge.edit.header": "편집", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "기본 설정", - "Admin.EditChallenge.form.visible.label": "공개", - "Admin.EditChallenge.form.visible.description": "도전을 다른 사람들에게 보이게 할지 보이지 않게 할지(프로젝트 공개 여부)를 결정합니다. 새 도전을 만드는 데 자신이 있는 게 아니라면, 처음에는 '아니오'로 설정하는 것을 권장드립니다. 특히 이 도전이 속해 있는 프로젝트를 공개로 설정해 놓았을 때는 '아니오'로 설정하는 것이 좋습니다. 도전 공개 여부를 '예'로 설정하면 메인 페이지, 도전 검색 결과, 리더보드에서 도전을 볼 수 있습니다(단, 도전이 속해 있는 프로젝트가 공개 설정되어 있을 때만).", - "Admin.EditChallenge.form.name.label": "도전명", - "Admin.EditChallenge.form.name.description": "사이트 곳곳에 표시될 도전명입니다. 검색창에 이 제목을 입력하면 검색 결과에 이 도전이 뜨게 됩니다. 이 칸은 무조건 채워야 하며, 평문(일반적인 텍스트)만 사용할 수 있습니다.", - "Admin.EditChallenge.form.description.label": "설명", - "Admin.EditChallenge.form.description.description": "더 자세한 정보를 보려고 도전을 클릭한 사람들에게 보여줄 설명입니다. 이 칸은 마크다운 문법을 지원합니다.", - "Admin.EditChallenge.form.blurb.label": "짧은 설명", + "Admin.EditChallenge.form.additionalKeywords.description": "도전과 관련 있는 키워드를 입력하면 다른 사람들이 해당 도전을 쉽게 찾을 수 있습니다. 도전을 찾을 때 '작업 분야' 검색 필터의 '기타'에서 키워드로 검색할 수 있으며, 검색창에서도 #을 붙여(예시: #tourism) 키워드로 검색할 수 있습니다.", + "Admin.EditChallenge.form.additionalKeywords.label": "키워드", "Admin.EditChallenge.form.blurb.description": "지도에 띄우는 팝업 같은 작은 공간에 들어갈 짧은 설명입니다. 이 칸은 마크다운 문법을 지원합니다.", - "Admin.EditChallenge.form.instruction.label": "지시", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "바뀜집합 설명", + "Admin.EditChallenge.form.blurb.label": "짧은 설명", + "Admin.EditChallenge.form.category.description": "도전에 알맞은 카테고리를 선택하세요. 특정 분야에 관심이 있는 사람들에게 이 도전을 추천할 수 있습니다. 알맞은 카테고리가 없다면 '기타'를 선택하세요.", + "Admin.EditChallenge.form.category.label": "카테고리", "Admin.EditChallenge.form.checkinComment.description": "편집 내역과 관련된 내용(편집기로 이동할 때 자동으로 적용)", - "Admin.EditChallenge.form.checkinSource.label": "바뀜집합 출처", + "Admin.EditChallenge.form.checkinComment.label": "바뀜집합 설명", "Admin.EditChallenge.form.checkinSource.description": "편집할 때 이용한 자료의 출처(편집기로 이동할 때 자동으로 적용)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "자동으로 뒤에 #maproulette 해시태그를 붙임(매우 권장)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "해시태그 붙이지 않음", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "해시태그를 바뀜집합 댓글 끝에 붙이면 추후 바뀜집합 분석 작업에 유용하게 사용할 수 있습니다.", - "Admin.EditChallenge.form.difficulty.label": "난이도", + "Admin.EditChallenge.form.checkinSource.label": "바뀜집합 출처", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "사용자 설정 배경 지도", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "Admin.EditChallenge.form.defaultBasemap.description": "도전에 적용될 기본 배경 지도입니다. 각 참여자들이 사용자 설정에서 지정한 기본 배경 지도보다 우선시됩니다.", + "Admin.EditChallenge.form.defaultBasemap.label": "배경 지도", + "Admin.EditChallenge.form.defaultPriority.description": "이 도전에 속한 작업의 기본 우선순위", + "Admin.EditChallenge.form.defaultPriority.label": "기본 우선순위", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "기본 배율", + "Admin.EditChallenge.form.description.description": "더 자세한 정보를 보려고 도전을 클릭한 사람들에게 보여줄 설명입니다. 이 칸은 마크다운 문법을 지원합니다.", + "Admin.EditChallenge.form.description.label": "설명", "Admin.EditChallenge.form.difficulty.description": "쉬움, 중간, 전문가 중 하나를 선택하세요. 참여자들에게 해당 도전의 작업을 진행하려면 지도 제작 능력을 얼마나 갖춰야 하는지를 알려줍니다. '쉬움' 난이도의 도전은 경험이 거의 없는 초보자들도 할 수 있어야 합니다.", - "Admin.EditChallenge.form.category.label": "카테고리", - "Admin.EditChallenge.form.category.description": "도전에 알맞은 카테고리를 선택하세요. 특정 분야에 관심이 있는 사람들에게 이 도전을 추천할 수 있습니다. 알맞은 카테고리가 없다면 '기타'를 선택하세요.", - "Admin.EditChallenge.form.additionalKeywords.label": "키워드", - "Admin.EditChallenge.form.additionalKeywords.description": "도전과 관련 있는 키워드를 입력하면 다른 사람들이 해당 도전을 쉽게 찾을 수 있습니다. 도전을 찾을 때 '작업 분야' 검색 필터의 '기타'에서 키워드로 검색할 수 있으며, 검색창에서도 #을 붙여(예시: #tourism) 키워드로 검색할 수 있습니다.", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "대표 도전", + "Admin.EditChallenge.form.difficulty.label": "난이도", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "도전을 검색하거나 찾을 때 대표 도전은 목록의 맨 위에 표시됩니다. 권한이 있는 사용자(Super-user)만 도전을 대표 도전으로 지정할 수 있습니다.", - "Admin.EditChallenge.form.step2.label": "GeoJSON 소스", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON 소스", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API 쿼리", + "Admin.EditChallenge.form.featured.label": "대표 도전", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "원본 데이터에 오류가 있어도 무시하고 진행합니다. 오류를 무시해서 생길 결과를 확실히 예측할 수 있는 경우에만 사용하세요.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "오류 무시", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "해시태그를 바뀜집합 댓글 끝에 붙이면 추후 바뀜집합 분석 작업에 유용하게 사용할 수 있습니다.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "해시태그 붙이지 않음", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "자동으로 뒤에 #maproulette 해시태그를 붙임(매우 권장)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "지시", + "Admin.EditChallenge.form.localGeoJson.description": "컴퓨터에 있는 GeoJSON 파일을 업로드해 주세요", + "Admin.EditChallenge.form.localGeoJson.label": "파일 업로드", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "최대 배율", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "최소 배율", + "Admin.EditChallenge.form.name.description": "사이트 곳곳에 표시될 도전명입니다. 검색창에 이 제목을 입력하면 검색 결과에 이 도전이 뜨게 됩니다. 이 칸은 무조건 채워야 하며, 평문(일반적인 텍스트)만 사용할 수 있습니다.", + "Admin.EditChallenge.form.name.label": "도전명", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Overpass 쿼리를 적용할 경계선 상자를 지정해 주세요. 너무 크게 지정하면 데이터의 용량이 너무 커지고, 시스템이 다운될 수도 있습니다.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API 쿼리", "Admin.EditChallenge.form.overpassQL.placeholder": "Overpass API 쿼리 명령어를 입력해 주세요...", - "Admin.EditChallenge.form.localGeoJson.label": "파일 업로드", - "Admin.EditChallenge.form.localGeoJson.description": "컴퓨터에 있는 GeoJSON 파일을 업로드해 주세요", - "Admin.EditChallenge.form.remoteGeoJson.label": "원격 URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "GeoJSON 파일을 가져올 URL을 입력해 주세요", + "Admin.EditChallenge.form.remoteGeoJson.label": "원격 URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "오류 무시", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "원본 데이터에 오류가 있어도 무시하고 진행합니다. 오류를 무시해서 생길 결과를 확실히 예측할 수 있는 경우에만 사용하세요.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON 소스", + "Admin.EditChallenge.form.step1.label": "기본 설정", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON 소스", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "우선 순위", - "Admin.EditChallenge.form.step3.description": "작업의 우선 순위를 높음, 중간, 낮음으로 지정할 수 있습니다. 우선 순위가 '높음'인 모든 작업은 참여자들에게 최우선으로 제시됩니다. '높음'인 작업이 모두 끝나면 '보통'인 작업이 제시되고, 마지막으로 '낮음'인 작업이 제시됩니다. 아래에 적어넣은 규칙과 각 지물의 속성(Overpass 쿼리를 사용하는 경우에는 '오픈스트리트맵 태그', 그 외의 경우에는 GeoJSON 파일에 들어 있는 '모든 속성')이 서로 일치하는 경우 해당 우선순위가 적용됩니다. 어느 규칙도 적용되지 않는 지물은 기본 우선 순위가 적용됩니다.", - "Admin.EditChallenge.form.defaultPriority.label": "기본 우선순위", - "Admin.EditChallenge.form.defaultPriority.description": "이 도전에 속한 작업의 기본 우선순위", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "부가 정보", "Admin.EditChallenge.form.step4.description": "도전 참가자들이 작업할 때 도움을 줄 부가 정보를 적을 수 있습니다", - "Admin.EditChallenge.form.updateTasks.label": "오래된 작업 제거", - "Admin.EditChallenge.form.updateTasks.description": "주기적으로 '생성됨'과 '넘김' 처리된 작업 중 오래된 작업(30일 동안 업데이트되지 않음)을 삭제합니다. 도전을 주기적으로 새로고침해서 오래된 작업을 삭제하고 싶을 때 유용합니다. 작업을 삭제하고 싶지 않다면 '아니오'로 설정하세요.", - "Admin.EditChallenge.form.defaultZoom.label": "기본 배율", - "Admin.EditChallenge.form.defaultZoom.description": "작업을 시작할 때 MapRoulette에서 작업할 지물의 크기에 따라 배율을 자동으로 맞춥니다. 그러나 자동으로 배율을 맞출 수 없는 경우에는 이 기본 배율이 적용됩니다. 작업 대부분에 맞는 배율을 기본 배율로 설정해야 합니다.", - "Admin.EditChallenge.form.minZoom.label": "최소 배율", - "Admin.EditChallenge.form.minZoom.description": "도전에 적용될 최소 배율입니다. 최소 배율은 작업하기 어려울 정도로 낮은 배율로 설정되는 막기 위한 것으로, 작업을 편하게 할 수 있을 정도로 충분히 작게 설정해야 합니다.", - "Admin.EditChallenge.form.maxZoom.label": "최대 배율", - "Admin.EditChallenge.form.maxZoom.description": "도전에 적용될 최대 배율입니다. 최대 배율은 작업하기 어려워지거나 지도/이미지의 최대 해상도를 넘길 정도로 높은 배율로 설정되는 막기 위한 것으로, 작업을 편하게 할 수 있을 정도로 충분히 크게 설정해야 합니다.", - "Admin.EditChallenge.form.defaultBasemap.label": "배경 지도", - "Admin.EditChallenge.form.defaultBasemap.description": "도전에 적용될 기본 배경 지도입니다. 각 참여자들이 사용자 설정에서 지정한 기본 배경 지도보다 우선시됩니다.", - "Admin.EditChallenge.form.customBasemap.label": "사용자 설정 배경 지도", - "Admin.EditChallenge.form.customBasemap.description": "URL을 입력해서 원하는 배경 지도를 삽입할 수 있습니다. 예시: `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "부가 정보", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "도전", - "Admin.ManageChallenges.help.info": "도전은 오픈스트리트맵 데이터에 있는 특정한 문제나 결함을 지도에 표시하는 데 도움을 주는 수많은 작업들로 이루어져 있습니다. 도전을 처음 만들었을 때, 적어넣은 OverpassQL 쿼리를 통해서 자동으로 작업이 생성됩니다. 그러나 작업은 GeoJSON 지물을 담고 있는 파일이나 URL에서 가져올 수도 있씁니다. 도전은 원하는 대로 만들 수 있습니다.", - "Admin.ManageChallenges.search.placeholder": "이름", - "Admin.ManageChallenges.allProjectChallenge": "전체", - "Admin.Challenge.fields.creationDate.label": "만들어짐:", - "Admin.Challenge.fields.lastModifiedDate.label": "수정됨:", - "Admin.Challenge.fields.status.label": "상태:", - "Admin.Challenge.fields.enabled.label": "공개:", - "Admin.Challenge.controls.startChallenge.label": "도전 시작", - "Admin.Challenge.activity.label": "최근 활동", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "주기적으로 '생성됨'과 '넘김' 처리된 작업 중 오래된 작업(30일 동안 업데이트되지 않음)을 삭제합니다. 도전을 주기적으로 새로고침해서 오래된 작업을 삭제하고 싶을 때 유용합니다. 작업을 삭제하고 싶지 않다면 '아니오'로 설정하세요.", + "Admin.EditChallenge.form.updateTasks.label": "오래된 작업 제거", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "공개", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "새 도전", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo 축약어는 지원되지 않습니다. 이 소스 코드를 사용하고 싶다면, Overpass Turbo로 들어가 쿼리를 테스트해 보고 나서, 내보내기 -> 쿼리 -> 독립 -> 복사한 내용을 여기에 붙여넣기하세요.", + "Admin.EditProject.controls.cancel.label": "취소", + "Admin.EditProject.controls.save.label": "저장", + "Admin.EditProject.edit.header": "수정", + "Admin.EditProject.form.description.description": "프로젝트 설명", + "Admin.EditProject.form.description.label": "설명", + "Admin.EditProject.form.displayName.description": "표시할 프로젝트명", + "Admin.EditProject.form.displayName.label": "표시할 명칭", + "Admin.EditProject.form.enabled.description": "프로젝트를 보이게 설정하면 다른 사람들이 프로젝트에 속한 모든 도전을 검색할 수 있으며, 모든 도전에 참여할 수 있습니다. 다시 말해, 프로젝트를 보이게 설정한다는 것은 프로젝트에 속한 모든 도전을 보이게 설정한다는 것과 똑같습니다. 당신을 포함한 모든 사람이 프로젝트에 속한 도전에 참여할 수 있고, 도전 통계 URL을 공유할 수도 있습니다. 만들어 놓은 도전을 검토하는 시간을 가지려면 프로젝트를 보이지 않게 설정하세요.", + "Admin.EditProject.form.enabled.label": "보이기", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "가상", + "Admin.EditProject.form.name.description": "프로젝트명", + "Admin.EditProject.form.name.label": "이름", + "Admin.EditProject.new.header": "새 프로젝트", + "Admin.EditProject.unavailable": "이용할 수 없는 프로젝트", + "Admin.EditTask.controls.cancel.label": "취소", + "Admin.EditTask.controls.save.label": "저장", "Admin.EditTask.edit.header": "작업 수정", - "Admin.EditTask.new.header": "새 작업", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR 태그", + "Admin.EditTask.form.additionalTags.placeholder": "MR 태그 추가", "Admin.EditTask.form.formTitle": "자세한 정보", - "Admin.EditTask.controls.save.label": "저장", - "Admin.EditTask.controls.cancel.label": "취소", - "Admin.EditTask.form.name.label": "이름", - "Admin.EditTask.form.name.description": "작업의 이름입니다.", - "Admin.EditTask.form.instruction.label": "지시", - "Admin.EditTask.form.instruction.description": "이 작업을 진행하는 사람에게 내리는 지시입니다. 도전 지시보다 우선시됩니다.", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "이 작업에 대한 GeoJSON입니다. MapRoulette의 모든 작업은 기본적으로 참여자가 집중해야 할 영역을 나타낸 도형(점, 선, 다각형)으로 이루어져 있으며, 이 도형은 GeoJSON에서 가져온 데이터로 표현됩니다.", - "Admin.EditTask.form.priority.label": "우선순위", - "Admin.EditTask.form.status.label": "상태", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "이 작업을 진행하는 사람에게 내리는 지시입니다. 도전 지시보다 우선시됩니다.", + "Admin.EditTask.form.instruction.label": "지시", + "Admin.EditTask.form.name.description": "작업의 이름입니다.", + "Admin.EditTask.form.name.label": "이름", + "Admin.EditTask.form.priority.label": "우선순위", "Admin.EditTask.form.status.description": "이 작업의 상태입니다. 현재 상태가 무엇인지에 따라 상태를 변경하는 데 제한이 있습니다.", - "Admin.EditTask.form.additionalTags.label": "MR 태그", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "MR 태그 추가", - "Admin.Task.controls.editTask.tooltip": "작업 수정", - "Admin.Task.controls.editTask.label": "수정", - "Admin.manage.header": "생성&관리", - "Admin.manage.virtual": "가상", - "Admin.ProjectCard.tabs.challenges.label": "도전", - "Admin.ProjectCard.tabs.details.label": "자세한 정보", - "Admin.ProjectCard.tabs.managers.label": "관리자", - "Admin.Project.fields.enabled.tooltip": "활성화", - "Admin.Project.fields.disabled.tooltip": "비활성화", - "Admin.ProjectCard.controls.editProject.tooltip": "프로젝트 수정", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "상태", + "Admin.EditTask.new.header": "새 작업", + "Admin.InspectTask.header": "작업 검사", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "전체", + "Admin.ManageChallenges.header": "도전", + "Admin.ManageChallenges.help.info": "도전은 오픈스트리트맵 데이터에 있는 특정한 문제나 결함을 지도에 표시하는 데 도움을 주는 수많은 작업들로 이루어져 있습니다. 도전을 처음 만들었을 때, 적어넣은 OverpassQL 쿼리를 통해서 자동으로 작업이 생성됩니다. 그러나 작업은 GeoJSON 지물을 담고 있는 파일이나 URL에서 가져올 수도 있씁니다. 도전은 원하는 대로 만들 수 있습니다.", + "Admin.ManageChallenges.search.placeholder": "이름", + "Admin.ManageTasks.geographicIndexingNotice": "새롭게 만든 도전이나 수정된 도전에서 색인 작업을 마치는 데 {delay}시간 정도 걸릴 수 있다는 점을 알아 두세요. 지도에 위치를 색인하는 작업이 끝나기 전까지는 위치를 기준으로 검색할 때 찾고자 하는 작업이 예상한 대로 나타나지 않을 수 있습니다.", + "Admin.ManageTasks.header": "작업", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "도전 추가", + "Admin.Project.controls.addChallenge.tooltip": "새 도전", + "Admin.Project.controls.delete.label": "프로젝트 삭제", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "도전 목록 관리", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "생성됨:", + "Admin.Project.fields.disabled.tooltip": "비활성화", + "Admin.Project.fields.enabled.tooltip": "활성화", + "Admin.Project.fields.lastModifiedDate.label": "수정됨:", "Admin.Project.headers.challengePreview": "일치하는 도전", "Admin.Project.headers.virtual": "6568/9568", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "수정", - "Admin.ProjectDashboard.controls.delete.label": "프로젝트 삭제", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "프로젝트 수정", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "도전", + "Admin.ProjectCard.tabs.details.label": "자세한 정보", + "Admin.ProjectCard.tabs.managers.label": "관리자", "Admin.ProjectDashboard.controls.addChallenge.label": "도전 추가", + "Admin.ProjectDashboard.controls.delete.label": "프로젝트 삭제", + "Admin.ProjectDashboard.controls.edit.label": "수정", "Admin.ProjectDashboard.controls.manageChallenges.label": "도전 관리", - "Admin.Project.fields.creationDate.label": "생성됨:", - "Admin.Project.fields.lastModifiedDate.label": "수정됨:", - "Admin.Project.controls.delete.label": "프로젝트 삭제", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "프로젝트 추가", + "Admin.ProjectManagers.addManager": "프로젝트 관리자 추가", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "오픈스트리트맵 사용자명", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "정말 이 프로젝트에서 관리자를 삭제하시겠습니까?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "역할 선택", + "Admin.ProjectManagers.noManagers": "관리자 없음", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "소유자", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "프로젝트는 서로 관련 있는 도전을 엮은 것입니다. 모든 도전은 프로젝트에 속해 있어야 합니다.", - "Admin.ProjectsDashboard.search.placeholder": "프로젝트/도전명", - "Admin.Project.controls.addChallenge.tooltip": "새 도전", + "Admin.ProjectsDashboard.newProject": "프로젝트 추가", "Admin.ProjectsDashboard.regenerateHomeProject": "홈 프로젝트를 새롭게 재생성하려면 로그아웃하고 다시 로그인해 주세요.", - "RebuildTasksControl.label": "재구축", - "RebuildTasksControl.modal.title": "도전에 속한 작업들을 재구축하는 중", - "RebuildTasksControl.modal.intro.overpass": "재구축 작업은 Overpass 쿼리를 재실행하고 도전에 속한 작업들을 최신 데이터로 재구축합니다:", - "RebuildTasksControl.modal.intro.remote": "재구축 작업은 GeoJSON 데이터를 도전 설정에서 등록한 URL에서 다시 다운로드하고 도전에 속한 작업들을 최신 데이터로 재구축합니다:", - "RebuildTasksControl.modal.intro.local": "재구축 작업으로 최신 GeoJSON 데이터 파일을 업로드해 도전에 속한 작업들을 최근 데이터로 재구축할 수 있습니다:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "경고: 지물 ID가 적절하게 설정되어 있지 않거나 기존 데이터와 새로운 데이터 간의 일치 작업이 제대로 되지 않았을 경우 재구축 작업 시 작업이 복제될 수 있습니다. 이 작업은 되돌릴 수 없습니다!", - "RebuildTasksControl.modal.moreInfo": "[자세히 알아보기](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "취소", - "RebuildTasksControl.modal.controls.proceed.label": "계속", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "취소", - "StepNavigation.controls.next.label": "다음", - "StepNavigation.controls.prev.label": "이전", - "StepNavigation.controls.finish.label": "완료", + "Admin.ProjectsDashboard.search.placeholder": "프로젝트/도전명", + "Admin.Task.controls.editTask.label": "수정", + "Admin.Task.controls.editTask.tooltip": "작업 수정", + "Admin.Task.fields.name.label": "작업:", + "Admin.Task.fields.status.label": "상태:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "행동", + "Admin.TaskAnalysisTable.columnHeaders.comments": "댓글", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "수정", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "검사", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "검토", + "Admin.TaskAnalysisTable.controls.startTask.label": "시작", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "작업을 삭제하는 중", "Admin.TaskDeletingProgress.tasksDeleting.label": "삭제된 작업", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "작업 수정", + "Admin.TaskInspect.controls.modifyTask.label": "작업 수정", + "Admin.TaskInspect.controls.nextTask.label": "다음 작업", + "Admin.TaskInspect.controls.previousTask.label": "이전 작업", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "작업을 재구축하는 중", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "인가", + "Admin.TaskReview.controls.approvedWithFixes": "인가(고쳐준 부분 있음)", + "Admin.TaskReview.controls.currentReviewStatus.label": "검토 현황:", + "Admin.TaskReview.controls.currentTaskStatus.label": "작업 현황:", + "Admin.TaskReview.controls.rejected": "거부", + "Admin.TaskReview.controls.resubmit": "다시 검토 내역 제출하기", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "검토 시작", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "태그:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "검토 현황 업데이트", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "작업 업로드 완료", - "Admin.Challenge.tasksBuilding": "작업을 구축하는 중...", - "Admin.Challenge.tasksFailed": "작업을 구축하는 데 실패했습니다", - "Admin.Challenge.tasksNone": "작업 없음", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "총 소요 시간:", - "Admin.Challenge.controls.refreshStatus.label": "상태 새로고침", - "Admin.ManageTasks.header": "작업", - "Admin.ManageTasks.geographicIndexingNotice": "새롭게 만든 도전이나 수정된 도전에서 색인 작업을 마치는 데 {delay}시간 정도 걸릴 수 있다는 점을 알아 두세요. 지도에 위치를 색인하는 작업이 끝나기 전까지는 위치를 기준으로 검색할 때 찾고자 하는 작업이 예상한 대로 나타나지 않을 수 있습니다.", - "Admin.manageTasks.controls.changePriority.label": "우선순위 변경", - "Admin.manageTasks.priorityLabel": "우선순위", - "Admin.manageTasks.controls.clearFilters.label": "필터 초기화", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "작업 검사", - "Admin.ChallengeTaskMap.controls.editTask.label": "작업 수정", - "Admin.Task.fields.name.label": "작업:", - "Admin.Task.fields.status.label": "상태:", - "Admin.VirtualProject.manageChallenge.label": "도전 관리", - "Admin.VirtualProject.controls.done.label": "완료", - "Admin.VirtualProject.controls.addChallenge.label": "도전 추가", + "Admin.TaskUploadProgress.uploadingTasks.header": "작업을 재구축하는 중", "Admin.VirtualProject.ChallengeList.noChallenges": "도전 없음", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "다음 내부의 도전:", - "Admin.VirtualProject.findChallenges.label": "도전 찾기", "Admin.VirtualProject.controls.add.label": "추가", + "Admin.VirtualProject.controls.addChallenge.label": "도전 추가", + "Admin.VirtualProject.controls.done.label": "완료", "Admin.VirtualProject.controls.remove.label": "제거", - "Widgets.BurndownChartWidget.label": "번다운 차트", - "Widgets.BurndownChartWidget.title": "남은 작업: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "일일 히트맵", - "Widgets.CalendarHeatmapWidget.title": "일일 히트맵: 작업 완료", - "Widgets.ChallengeListWidget.label": "도전", - "Widgets.ChallengeListWidget.title": "도전", - "Widgets.ChallengeListWidget.search.placeholder": "검색", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "도전 찾기", + "Admin.VirtualProject.manageChallenge.label": "도전 관리", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "검토 중", + "Admin.manage.header": "생성&관리", + "Admin.manage.virtual": "가상", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "도전 개요", - "Widgets.ChallengeOverviewWidget.title": "개요", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "생성:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "수정:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "작업 새로고침:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "상태:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "보이기:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "작업", - "Widgets.ChallengeTasksWidget.title": "작업", - "Widgets.CommentsWidget.label": "댓글", - "Widgets.CommentsWidget.title": "댓글", - "Widgets.CommentsWidget.controls.export.label": "내보내기", - "Widgets.LeaderboardWidget.label": "리더보드", - "Widgets.LeaderboardWidget.title": "리더보드", - "Widgets.ProjectAboutWidget.label": "프로젝트 개요", - "Widgets.ProjectAboutWidget.title": "프로젝트 개요", - "Widgets.ProjectAboutWidget.content": "프로젝트는 서로 관련 있는 도전을 엮은 것입니다. \n모든 도전은 프로젝트에 속해 있어야 합니다.\n\n프로젝트는 필요한 만큼 얼마든지 만들 수 있으며, \n다른 MapRoulette 유저를 초대해 프로젝트 관리자로 삼을 수도 있습니다.\n\n프로젝트에 속한 개별 도전을 공개하기 전에 프로젝트를 먼저 공개해야 합니다.\n", - "Widgets.ProjectListWidget.label": "프로젝트 목록", - "Widgets.ProjectListWidget.title": "프로젝트", - "Widgets.ProjectListWidget.search.placeholder": "검색", - "Widgets.ProjectManagersWidget.label": "프로젝트 관리자", - "Admin.ProjectManagers.noManagers": "관리자 없음", - "Admin.ProjectManagers.addManager": "프로젝트 관리자 추가", - "Admin.ProjectManagers.projectOwner": "소유자", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "정말 이 프로젝트에서 관리자를 삭제하시겠습니까?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "역할 선택", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "오픈스트리트맵 사용자명", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "개요", - "Widgets.ProjectOverviewWidget.title": "개요", - "Widgets.RecentActivityWidget.label": "최근 활동", - "Widgets.RecentActivityWidget.title": "최근 활동", - "Widgets.StatusRadarWidget.label": "상태 레이더", - "Widgets.StatusRadarWidget.title": "작업의 상태 분포도", - "Metrics.tasks.evaluatedByUser.label": "유저가 평가한 작업", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "우선순위 변경", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "필터 초기화", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "CSV 내보내기", + "Admin.manageTasks.controls.exportGeoJSON.label": "GeoJSON 내보내기", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "검토란 숨기기", + "Admin.manageTasks.controls.showReviewColumns.label": "검토란 보이기", + "Admin.manageTasks.priorityLabel": "우선순위", "AutosuggestTextBox.labels.noResults": "일치하는 결과 없음", - "Form.textUpload.prompt": "GeoJSON 파일을 여기에 놓거나 여기를 클릭해서 파일을 선택하세요", - "Form.textUpload.readonly": "기존 파일이 사용됩니다", - "Form.controls.addPriorityRule.label": "규칙 추가", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "남은 작업: {taskCount, number}", + "BurndownChart.tooltip": "남은 작업", + "CalendarHeatmap.heading": "일별 히트맵: 작업 완료", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "사용자 지정", + "Challenge.basemap.none": "없음", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "오픈스트리트맵", + "Challenge.controls.clearFilters.label": "필터 초기화", + "Challenge.controls.loadMore.label": "결과 더 보기", + "Challenge.controls.save.label": "저장", + "Challenge.controls.start.label": "시작", + "Challenge.controls.taskLoadBy.label": "작업을 불러오는 방식:", + "Challenge.controls.unsave.label": "저장하지 않음", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "전부", + "Challenge.difficulty.easy": "쉬움", + "Challenge.difficulty.expert": "전문가", + "Challenge.difficulty.normal": "보통", "Challenge.fields.difficulty.label": "난이도", "Challenge.fields.lastTaskRefresh.label": "마지막 갱신", "Challenge.fields.viewLeaderboard.label": "리더보드 보기", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "시작", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "전부", + "Challenge.keywords.buildings": "건물", + "Challenge.keywords.landUse": "토지 이용/행정 경계", + "Challenge.keywords.navigation": "도로/보행자 도로/자전거 도로", + "Challenge.keywords.other": "기타", + "Challenge.keywords.pointsOfInterest": "관심 지점/영역", + "Challenge.keywords.transit": "교통", + "Challenge.keywords.water": "수역", + "Challenge.location.any": "전체", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "내 근처", + "Challenge.location.withinMapBounds": "지도 경계 안쪽만", + "Challenge.management.controls.manage.label": "관리", + "Challenge.results.heading": "도전", + "Challenge.results.noResults": "결과 없음", + "Challenge.signIn.label": "시작하려면 로그인하세요", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "생성 날짜", + "Challenge.sort.default": "기본", + "Challenge.sort.name": "이름", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "인기", + "Challenge.status.building": "구축 중", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "실패", + "Challenge.status.finished": "완료", + "Challenge.status.none": "적용할 수 없음", + "Challenge.status.partiallyLoaded": "일부만 불러오기 완료됨", + "Challenge.status.ready": "준비됨", + "Challenge.type.challenge": "도전", + "Challenge.type.survey": "조사", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "모든 작업", + "ChallengeDetails.Task.fields.featured.label": "대표", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "시작", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "관리", - "ChallengeDetails.Task.fields.featured.label": "대표", "ChallengeDetails.fields.difficulty.label": "난이도", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "작업 출처", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "작업 출처", "ChallengeDetails.fields.viewLeaderboard.label": "리더보드 표시", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "관리", + "ChallengeEndModal.control.dismiss.label": "계속", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "계속", - "Task.controls.contactOwner.label": "연락처 주인", - "Task.controls.contactLink.label": "osm.org에서 {owner}에게 메시지 보내기", - "ChallengeFilterSubnav.header": "도전", + "ChallengeFilterSubnav.controls.sortBy.label": "정렬 기준", "ChallengeFilterSubnav.filter.difficulty.label": "난이도", "ChallengeFilterSubnav.filter.keyword.label": "작업 종류", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "기타:", "ChallengeFilterSubnav.filter.location.label": "위치", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "필터 초기화", - "ChallengeFilterSubnav.controls.sortBy.label": "정렬 기준", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "기타:", - "Challenge.controls.unsave.label": "저장하지 않음", - "Challenge.controls.save.label": "저장", - "Challenge.controls.start.label": "시작", - "Challenge.management.controls.manage.label": "관리", - "Challenge.signIn.label": "시작하려면 로그인하세요", - "Challenge.results.heading": "도전", - "Challenge.results.noResults": "결과 없음", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "작업 {taskCount, number}개로 만들기", - "VirtualChallenge.fields.name.label": "\"가상\" 도전의 명칭", - "Challenge.controls.loadMore.label": "결과 더 보기", + "ChallengeFilterSubnav.header": "도전", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "고칠 수 있음", - "ChallengeProgress.tooltip.label": "작업", - "ChallengeProgress.tasks.remaining": "남은 작업: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "/ {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "남은 작업: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "작업", + "ChallengeProgressBorder.available": "이용 가능", "CommentList.controls.viewTask.label": "작업 보기", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "완료된 작업: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "취소", "ConfirmAction.proceed": "계속", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "계속", "CongratulateModal.header": "축하드립니다!", "CongratulateModal.primaryMessage": "도전이 완료되었습니다", - "CongratulateModal.control.dismiss.label": "계속", - "CountryName.ALL": "모든 국가", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "아랍 에미리트", "CountryName.AF": "아프가니스탄", - "CountryName.AO": "앙골라", "CountryName.AL": "알바니아", - "CountryName.AE": "아랍 에미리트", - "CountryName.AR": "아르헨티나", + "CountryName.ALL": "모든 국가", "CountryName.AM": "아르메니아", + "CountryName.AO": "앙골라", "CountryName.AQ": "남극", - "CountryName.TF": "프랑스령 남방 및 남극", - "CountryName.AU": "오스트레일리아", + "CountryName.AR": "아르헨티나", "CountryName.AT": "오스트리아", + "CountryName.AU": "오스트레일리아", "CountryName.AZ": "아제르바이잔", - "CountryName.BI": "브룬디", + "CountryName.BA": "보스니아 헤르체고비나", + "CountryName.BD": "방글라데시", "CountryName.BE": "벨기에", - "CountryName.BJ": "베냉", "CountryName.BF": "부르키나파소", - "CountryName.BD": "방글라데시", "CountryName.BG": "불가리아", - "CountryName.BS": "바하마", - "CountryName.BA": "보스니아 헤르체고비나", - "CountryName.BY": "벨라루스", - "CountryName.BZ": "벨리즈", + "CountryName.BI": "브룬디", + "CountryName.BJ": "베냉", + "CountryName.BN": "브루나이", "CountryName.BO": "볼리비아", "CountryName.BR": "브라질", - "CountryName.BN": "브루나이", + "CountryName.BS": "바하마", "CountryName.BT": "부탄", "CountryName.BW": "보츠와나", - "CountryName.CF": "중앙아프리카 공화국", + "CountryName.BY": "벨라루스", + "CountryName.BZ": "벨리즈", "CountryName.CA": "캐나다", + "CountryName.CD": "콩고 민주 공화국", + "CountryName.CF": "중앙아프리카 공화국", + "CountryName.CG": "콩고", "CountryName.CH": "스위스", - "CountryName.CL": "칠레", - "CountryName.CN": "중국", "CountryName.CI": "코트디부아르", + "CountryName.CL": "칠레", "CountryName.CM": "카메룬", - "CountryName.CD": "콩고 민주 공화국", - "CountryName.CG": "콩고", + "CountryName.CN": "중국", "CountryName.CO": "콜롬비아", "CountryName.CR": "코스타리카", "CountryName.CU": "쿠바", @@ -415,10 +485,10 @@ "CountryName.DO": "도미니카 공화국", "CountryName.DZ": "알제리", "CountryName.EC": "에콰도르", + "CountryName.EE": "에스토니아", "CountryName.EG": "이집트", "CountryName.ER": "에리트레아", "CountryName.ES": "스페인", - "CountryName.EE": "에스토니아", "CountryName.ET": "에티오피아", "CountryName.FI": "핀란드", "CountryName.FJ": "피지", @@ -428,57 +498,58 @@ "CountryName.GB": "영국", "CountryName.GE": "조지아", "CountryName.GH": "가나", - "CountryName.GN": "기니", + "CountryName.GL": "그린란드", "CountryName.GM": "감비아", - "CountryName.GW": "기니비사우", + "CountryName.GN": "기니", "CountryName.GQ": "적도 기니", "CountryName.GR": "그리스", - "CountryName.GL": "그린란드", "CountryName.GT": "과테말라", + "CountryName.GW": "기니비사우", "CountryName.GY": "가이아나", "CountryName.HN": "온두라스", "CountryName.HR": "크로아티아", "CountryName.HT": "아이티", "CountryName.HU": "헝가리", "CountryName.ID": "인도네시아", - "CountryName.IN": "인도", "CountryName.IE": "아일랜드", - "CountryName.IR": "이란", + "CountryName.IL": "이스라엘", + "CountryName.IN": "인도", "CountryName.IQ": "이라크", + "CountryName.IR": "이란", "CountryName.IS": "아이슬란드", - "CountryName.IL": "이스라엘", "CountryName.IT": "이탈리아", "CountryName.JM": "자메이카", "CountryName.JO": "요르단", "CountryName.JP": "일본", - "CountryName.KZ": "카자흐스탄", "CountryName.KE": "케냐", "CountryName.KG": "키르기스스탄", "CountryName.KH": "캄보디아", + "CountryName.KP": "조선민주주의인민공화국", "CountryName.KR": "대한민국", "CountryName.KW": "쿠웨이트", + "CountryName.KZ": "카자흐스탄", "CountryName.LA": "라오스", "CountryName.LB": "레바논", - "CountryName.LR": "라이베리아", - "CountryName.LY": "리비아", "CountryName.LK": "스리랑크", + "CountryName.LR": "라이베리아", "CountryName.LS": "레소토", "CountryName.LT": "리투아니아", "CountryName.LU": "룩셈부르크", "CountryName.LV": "라트비아", + "CountryName.LY": "리비아", "CountryName.MA": "모로코", "CountryName.MD": "몰도바", + "CountryName.ME": "몬테네그로", "CountryName.MG": "마다가스카르", - "CountryName.MX": "멕시코", "CountryName.MK": "마케도니아", "CountryName.ML": "말리", "CountryName.MM": "미얀마", - "CountryName.ME": "몬테네그로", "CountryName.MN": "몽골", - "CountryName.MZ": "모잠비크", "CountryName.MR": "모리타니", "CountryName.MW": "말라위", + "CountryName.MX": "멕시코", "CountryName.MY": "말레이시아", + "CountryName.MZ": "모잠비크", "CountryName.NA": "나미비아", "CountryName.NC": "누벨칼레도니", "CountryName.NE": "니제르", @@ -489,460 +560,821 @@ "CountryName.NP": "네팔", "CountryName.NZ": "뉴질랜드", "CountryName.OM": "오만", - "CountryName.PK": "파키스탄", "CountryName.PA": "파나마", "CountryName.PE": "페루", - "CountryName.PH": "필리핀", "CountryName.PG": "파푸아뉴기니", + "CountryName.PH": "필리핀", + "CountryName.PK": "파키스탄", "CountryName.PL": "폴란드", "CountryName.PR": "푸에르토리코", - "CountryName.KP": "조선민주주의인민공화국", + "CountryName.PS": "서안 지구", "CountryName.PT": "포르투갈", "CountryName.PY": "파라과이", "CountryName.QA": "카타르", "CountryName.RO": "루마니아", + "CountryName.RS": "세르비아", "CountryName.RU": "러시아", "CountryName.RW": "르완다", "CountryName.SA": "사우디아라비아", - "CountryName.SD": "수단", - "CountryName.SS": "남수단", - "CountryName.SN": "세네갈", "CountryName.SB": "솔로몬 제도", + "CountryName.SD": "수단", + "CountryName.SE": "스웨덴", + "CountryName.SI": "슬로베니아", + "CountryName.SK": "슬로바키아", "CountryName.SL": "시에라리온", - "CountryName.SV": "엘살바도르", + "CountryName.SN": "세네갈", "CountryName.SO": "소말리아", - "CountryName.RS": "세르비아", "CountryName.SR": "수리남", - "CountryName.SK": "슬로바키아", - "CountryName.SI": "슬로베니아", - "CountryName.SE": "스웨덴", - "CountryName.SZ": "에스와티니", + "CountryName.SS": "남수단", + "CountryName.SV": "엘살바도르", "CountryName.SY": "시리아", + "CountryName.SZ": "에스와티니", "CountryName.TD": "차드", + "CountryName.TF": "프랑스령 남방 및 남극", "CountryName.TG": "토고", "CountryName.TH": "태국", "CountryName.TJ": "타지키스탄", - "CountryName.TM": "투르크메니스탄", "CountryName.TL": "동티모르", - "CountryName.TT": "트리니다드 토바고", + "CountryName.TM": "투르크메니스탄", "CountryName.TN": "튀니지", "CountryName.TR": "터키", + "CountryName.TT": "트리니다드 토바고", "CountryName.TW": "대만", "CountryName.TZ": "탄자니아", - "CountryName.UG": "우간다", "CountryName.UA": "우크라이나", - "CountryName.UY": "우루과이", + "CountryName.UG": "우간다", "CountryName.US": "미국", + "CountryName.UY": "우루과이", "CountryName.UZ": "우즈베키스탄", "CountryName.VE": "베네수엘라", "CountryName.VN": "베트남", "CountryName.VU": "바누아투", - "CountryName.PS": "서안 지구", "CountryName.YE": "예멘", "CountryName.ZA": "남아프리카 공화국", "CountryName.ZM": "잠비아", "CountryName.ZW": "짐바브웨", - "FitBoundsControl.tooltip": "지도의 작업할 지물에 맞춤", - "LayerToggle.controls.showTaskFeatures.label": "작업할 지물", - "LayerToggle.controls.showOSMData.label": "오픈스트리트맵 데이터", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {이미지 없음} other {이미지 #개}})", - "LayerToggle.loading": "(불러오는 중...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "고정됨", + "Dashboard.ChallengeFilter.visible.label": "공개", + "Dashboard.ProjectFilter.owner.label": "소유함", + "Dashboard.ProjectFilter.pinned.label": "고정됨", + "Dashboard.ProjectFilter.visible.label": "공개", + "Dashboard.header": "대시보드", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "iD(웹 편집기)에서 편집", + "Editor.josm.label": "JOSM에서 편집", + "Editor.josmFeatures.label": "JOSM에서 해당 지물만 편집", + "Editor.josmLayer.label": "새 JOSM 레이어에서 편집", + "Editor.level0.label": "Level0에서 편집", + "Editor.none.label": "없음", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "도움말", - "Footer.reportBug": "버그 신고", - "Footer.joinNewsletter": "뉴스레터를 신청하세요!", - "Footer.followUs": "팔로우", - "Footer.email.placeholder": "이메일 주소", - "Footer.email.submit.label": "제출", - "HelpPopout.control.label": "도움말", - "LayerSource.challengeDefault.label": "도전의 기본값", - "LayerSource.userDefault.label": "당신의 기본값", - "HomePane.header": "잠시 동안 세계 지도에 기여하는 사람이 되세요", - "HomePane.feedback.header": "피드백", - "HomePane.filterTagIntro": "당신에게 중요한 작업을 찾으세요.", - "HomePane.filterLocationIntro": "관심 있는 지역에 있는 문제를 고치세요.", - "HomePane.filterDifficultyIntro": "초보자부터 전문가까지, 자신의 수준에 맞는 작업을 하세요.", - "HomePane.createChallenges": "다른 사람들이 지도 데이터에 도움을 줄 수 있도록 작업을 생성하세요.", + "Errors.boundedTask.fetchFailure": "지도 안에 있는 작업을 가져올 수 없습니다", + "Errors.challenge.deleteFailure": "도전을 삭제할 수 없습니다.", + "Errors.challenge.doesNotExist": "도전이 존재하지 않습니다.", + "Errors.challenge.fetchFailure": "서버에서 최신 버전의 도전 데이터를 가져올 수 없습니다.", + "Errors.challenge.rebuildFailure": "도전에 속한 작업들을 재구축할 수 없습니다", + "Errors.challenge.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", + "Errors.challenge.searchFailure": "서버에서 도전을 검색할 수 없습니다.", + "Errors.clusteredTask.fetchFailure": "작업 뭉치를 가져올 수 없습니다", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "오픈스트리트맵 원격 조종이 응답하지 않습니다. 원격 제어가 활성화된 상태에서 실행 중인 JOSM이 있습니까?", + "Errors.leaderboard.fetchFailure": "리더보드를 가져올 수 업습니다.", + "Errors.map.placeNotFound": "Nominatim으로 검색한 결과가 없습니다.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "허용 대역폭을 초과했습니다", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "오픈스트리트맵에서 데이터를 가져올 수 없습니다", + "Errors.osm.requestTooLarge": "오픈스트리트맵 데이터 요청이 너무 큽니다", + "Errors.project.deleteFailure": "프로젝트를 삭제할 수 없습니다.", + "Errors.project.fetchFailure": "서버에서 최신 버전의 프로젝트 데이터를 가져올 수 없습니다.", + "Errors.project.notManager": "이 프로젝트의 관리자만 계속 진행할 수 있습니다.", + "Errors.project.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", + "Errors.project.searchFailure": "프로젝트를 검색할 수 없습니다.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "작업을 삭제할 수 없습니다.", + "Errors.task.doesNotExist": "작업이 존재하지 않습니다.", + "Errors.task.fetchFailure": "작업을 가져올 수 없습니다.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "이 도전에는 남은 작업이 없습니다.", + "Errors.task.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", + "Errors.task.updateFailure": "변경 내역을 저장할 수 없습니다s.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "서버에서 사용자 정보를 가져올 수 없습니다.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "현재 위치를 찾을 수 없습니다. 브라우저에서 권한을 획득하거나 openstreetmap.org로 들어가 환경설정에서 현재 위치를 설정하세요(오픈스트리트맵 계정에서 변경된 내용을 반영하려면 MapRoulette 사이트에서 로그아웃하고 나서 다시 로그인해야 할 수도 있습니다).", + "Errors.user.notFound": "이 사용자명을 가진 사람을 찾을 수 없습니다.", + "Errors.user.unauthenticated": "계속 진행하려면 로그인해 주세요.", + "Errors.user.unauthorized": "죄송합니다. 권한이 부족해 이 행동을 취할 수 없습니다.", + "Errors.user.updateFailure": "서버에 있는 사용자 정보를 업데이트할 수 없습니다.", + "Errors.virtualChallenge.createFailure": "가상 도전을 만들 수 없습니다{자세히 보기}", + "Errors.virtualChallenge.expired": "가상 도전이 만료되었습니다.", + "Errors.virtualChallenge.fetchFailure": "서버에서 최신 버전의 가상 도전 데이터를 가져올 수 없습니다.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "작업 영역을 띄울 수 없습니다. 작업 레이아웃으로 전환합니다.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "지도의 작업할 지물에 맞춤", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "이메일 주소", + "Footer.email.submit.label": "제출", + "Footer.followUs": "팔로우", + "Footer.getHelp": "도움말", + "Footer.joinNewsletter": "뉴스레터를 신청하세요!", + "Footer.reportBug": "버그 신고", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "규칙 추가", + "Form.textUpload.prompt": "GeoJSON 파일을 여기에 놓거나 여기를 클릭해서 파일을 선택하세요", + "Form.textUpload.readonly": "기존 파일이 사용됩니다", + "General.controls.moreResults.label": "결과 더 보기", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "도움말", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "다른 사람들이 지도 데이터에 도움을 줄 수 있도록 작업을 생성하세요.", + "HomePane.feedback.header": "피드백", + "HomePane.filterDifficultyIntro": "초보자부터 전문가까지, 자신의 수준에 맞는 작업을 하세요.", + "HomePane.filterLocationIntro": "관심 있는 지역에 있는 문제를 고치세요.", + "HomePane.filterTagIntro": "당신에게 중요한 작업을 찾으세요.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "시작", - "Admin.TaskInspect.controls.previousTask.label": "이전 작업", - "Admin.TaskInspect.controls.nextTask.label": "다음 작업", - "Admin.TaskInspect.controls.editTask.label": "작업 수정", - "Admin.TaskInspect.controls.modifyTask.label": "작업 수정", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Mapillary 레이어 켜기·끄기", + "KeyMapping.layers.layerOSMData": "오픈스트리트맵 데이터 레이어 켜기·끄기", + "KeyMapping.layers.layerTaskFeatures": "지물 레이어 켜기·끄기", + "KeyMapping.openEditor.editId": "Id에서 편집", + "KeyMapping.openEditor.editJosm": "JOSM에서 편집", + "KeyMapping.openEditor.editJosmFeatures": "JOSM에서 편집(해당 지물만 불러오기)", + "KeyMapping.openEditor.editJosmLayer": "JOSM에서 편집(새 레이어)", + "KeyMapping.openEditor.editLevel0": "Level0에서 편집", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "이미 고쳐짐", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "문제가 아님", + "KeyMapping.taskCompletion.fixed": "직접 고쳤습니다!", + "KeyMapping.taskCompletion.skip": "넘기기", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "편집 취소", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "지도를 작업할 지물에 맞추기", + "KeyMapping.taskInspect.nextTask": "다음 작업", + "KeyMapping.taskInspect.prevTask": "이전 작업", + "KeyboardShortcuts.control.label": "키보드 단축키", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "키워드 추가", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "결과 더 보기", + "LayerSource.challengeDefault.label": "도전의 기본값", + "LayerSource.userDefault.label": "당신의 기본값", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "오픈스트리트맵 데이터", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "작업할 지물", + "LayerToggle.imageCount": "({count, plural, =0 {이미지 없음} other {이미지 #개}})", + "LayerToggle.loading": "(불러오는 중...)", + "Leaderboard.controls.loadMore.label": "자세히 보기", + "Leaderboard.global": "전 세계", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "점수 획득 방법", + "Leaderboard.title": "리더보드", + "Leaderboard.updatedDaily": "24시간마다 업데이트됩니다", + "Leaderboard.updatedFrequently": "15분마다 업데이트됩니다", + "Leaderboard.user.points": "점", + "Leaderboard.user.topChallenges": "상위 도전", + "Leaderboard.users.none": "해당 기간 동안 기여한 사용자가 없음", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "유저가 평가한 작업", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "컴퓨터로 접속해 주세요", "MobileNotSupported.message": "죄송합니다. MapRoulette은 현재 모바일 기기를 지원하지 않습니다.", "MobileNotSupported.pageMessage": "죄송합니다. 이 페이지는 아직 모바일 기기나 그 외 작은 화면과 호환되지 않습니다.", "MobileNotSupported.widenDisplay": "컴퓨터를 사용하고 있다면, 화면 크기를 키우거나 더 큰 모니터를 사용해 주세요.", - "Navbar.links.dashboard": "대시보드", + "MobileTask.subheading.instructions": "지시", + "Navbar.links.admin": "생성&관리", "Navbar.links.challengeResults": "도전 찾기", - "Navbar.links.leaderboard": "리더보드", + "Navbar.links.dashboard": "대시보드", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "배우기", "Navbar.links.inbox": "메일함", + "Navbar.links.leaderboard": "리더보드", "Navbar.links.review": "검토", - "Navbar.links.admin": "생성&관리", - "Navbar.links.help": "배우기", - "Navbar.links.userProfile": "사용자 설정", - "Navbar.links.userMetrics": "User Metrics", "Navbar.links.signout": "로그아웃", - "PageNotFound.message": "죄송합니다. 여기에는 바다밖에 없습니다.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "User Metrics", + "Navbar.links.userProfile": "사용자 설정", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "홈페이지", - "PastDurationSelector.pastMonths.selectOption": "과거 {months, plural, one {1개월} =12 {1년} other {#개월}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "죄송합니다. 여기에는 바다밖에 없습니다.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "전체", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "과거 {months, plural, one {1개월} =12 {1년} other {#개월}}", "PointsTicker.label": "내 지점", "PopularChallenges.header": "인기 있는 도전", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API 키", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "사용자 지정 배경 지도", + "Profile.form.defaultBasemap.description": "지도에 표시할 기본 배경 지도를 선택하세요. 도전에서 설정된 기본 배경 지도만 이 옵션(사용자 설정 배경 지도)보다 우선 순위가 높습니다.", + "Profile.form.defaultBasemap.label": "기본 배경 지도", + "Profile.form.defaultEditor.description": "작업에 임할 때 사용할 기본 편집기를 선택하세요. 기본 편집기를 지정해 두면 작업 수정을 클릭했을 때 편집기 선택 창이 나타나지 않습니다.", + "Profile.form.defaultEditor.label": "기본 편집기", + "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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "예를 선택하면, 당신은 공개 리더보드에 올라가지 **않습니다**.", + "Profile.form.leaderboardOptOut.label": "리더보드에 올리지 않기", + "Profile.form.locale.description": "MapRoulette UI에 적용할 언어를 선택하세요.", + "Profile.form.locale.label": "언어", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "가입일:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "검토 현황 업데이트", - "Admin.TaskReview.controls.currentTaskStatus.label": "작업 현황:", - "Admin.TaskReview.controls.currentReviewStatus.label": "검토 현황:", - "Admin.TaskReview.controls.taskTags.label": "태그:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "인가", - "Admin.TaskReview.controls.rejected": "거부", - "Admin.TaskReview.controls.approvedWithFixes": "인가(고쳐준 부분 있음)", - "Admin.TaskReview.controls.startReview": "검토 시작", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "다시 검토 내역 제출하기", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "재구축", + "RebuildTasksControl.modal.controls.cancel.label": "취소", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "계속", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "재구축 작업으로 최신 GeoJSON 데이터 파일을 업로드해 도전에 속한 작업들을 최근 데이터로 재구축할 수 있습니다:", + "RebuildTasksControl.modal.intro.overpass": "재구축 작업은 Overpass 쿼리를 재실행하고 도전에 속한 작업들을 최신 데이터로 재구축합니다:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[자세히 알아보기](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "도전에 속한 작업들을 재구축하는 중", + "RebuildTasksControl.modal.warning": "경고: 지물 ID가 적절하게 설정되어 있지 않거나 기존 데이터와 새로운 데이터 간의 일치 작업이 제대로 되지 않았을 경우 재구축 작업 시 작업이 복제될 수 있습니다. 이 작업은 되돌릴 수 없습니다!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "추적되는 작업", - "Task.unsave.control.tooltip": "추적 멈추기", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "ScreenTooNarrow.header": "브라우저 창을 키워 주세요", "ScreenTooNarrow.message": "이 페이지는 아직 작은 화면과 호환되지 않습니다. 화면 크기를 키우거나 더 큰 기기/모니터를 사용해 주세요.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "복사", "SignIn.control.label": "로그인", "SignIn.control.longLabel": "시작하려면 로그인하세요", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "취소", + "StepNavigation.controls.finish.label": "완료", + "StepNavigation.controls.next.label": "다음", + "StepNavigation.controls.prev.label": "이전", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "행동", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "내부 ID", - "Task.fields.featureId.label": "지물 ID", - "Task.fields.status.label": "상태", - "Task.fields.priority.label": "우선순위", - "Task.fields.mappedOn.label": "지도 제작 중", - "Task.fields.reviewStatus.label": "검토 현황", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "지도 제작자", - "Task.fields.reviewedBy.label": "검토자", - "Admin.fields.reviewedAt.label": "검토 중", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "댓글", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "검사", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "검토", - "Admin.TaskAnalysisTable.controls.editTask.label": "수정", - "Admin.TaskAnalysisTable.controls.startTask.label": "시작", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "상태를 다음으로 변경:", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "검토란 보이기", - "Admin.manageTasks.controls.hideReviewColumns.label": "검토란 숨기기", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "CSV 내보내기", - "Admin.manageTasks.controls.exportGeoJSON.label": "GeoJSON 내보내기", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "당신이 작성한 댓글", - "Task.comments.comment.controls.submit.label": "제출", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "댓글", - "TaskConfirmationModal.header": "확인해 주세요", - "TaskConfirmationModal.submitRevisionHeader": "수정 내역을 확인해 주세요", - "TaskConfirmationModal.disputeRevisionHeader": "검토자의 이견을 확인해 주세요", - "TaskConfirmationModal.inReviewHeader": "검토 내역을 확인해 주세요", - "TaskConfirmationModal.comment.label": "댓글 남기기(선택)", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "다음 작업:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "취소", - "TaskConfirmationModal.submit.label": "제출", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "내 댓글(선택)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "MR 태그 추가", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "작업의 상태:", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "더 많은 옵션", + "Task.comments.comment.controls.submit.label": "제출", "Task.controls.alreadyFixed.label": "이미 고쳐짐", "Task.controls.alreadyFixed.tooltip": "이미 고쳐짐", "Task.controls.cancelEditing.label": "뒤로", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "직접 고쳤습니다!", - "ActiveTask.controls.notFixed.label": "너무 어려움/볼 수 없음", - "ActiveTask.controls.aleadyFixed.label": "이미 고쳐짐", - "ActiveTask.controls.cancelEditing.label": "뒤로", + "Task.controls.completionComment.placeholder": "당신이 작성한 댓글", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "osm.org에서 {owner}에게 메시지 보내기", + "Task.controls.contactOwner.label": "연락처 주인", "Task.controls.edit.label": "수정", "Task.controls.edit.tooltip": "수정", "Task.controls.falsePositive.label": "문제가 아님", "Task.controls.falsePositive.tooltip": "문제가 아님", "Task.controls.fixed.label": "직접 고쳤습니다!", "Task.controls.fixed.tooltip": "직접 고쳤습니다!", + "Task.controls.moreOptions.label": "더 많은 옵션", "Task.controls.next.label": "다음 작업", - "Task.controls.next.tooltip": "다음 작업", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "다음 작업", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "넘기기", "Task.controls.skip.tooltip": "작업 넘기기", - "Task.controls.tooHard.label": "너무 어려움/볼 수 없음", - "Task.controls.tooHard.tooltip": "너무 어려움/볼 수 없음", - "KeyboardShortcuts.control.label": "키보드 단축키", - "ActiveTask.keyboardShortcuts.label": "키보드 단축키 보기", - "ActiveTask.controls.info.tooltip": "작업 자세히 보기", - "ActiveTask.controls.comments.tooltip": "댓글 보기", - "ActiveTask.subheading.comments": "댓글", - "ActiveTask.heading": "도전 정보", - "ActiveTask.subheading.instructions": "지시", - "ActiveTask.subheading.location": "위치", - "ActiveTask.subheading.progress": "도전 진척도", - "ActiveTask.subheading.social": "공유", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "지시", - "Task.management.heading": "작업 옵션", - "Task.management.controls.inspect.label": "검사", - "Task.management.controls.modify.label": "수정", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "작업을 불러오는 방식:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "이 작업 추적", "Task.controls.untrack.label": "이 작업 추적을 멈춤", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "고칠 수 있음", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "지물 ID", + "Task.fields.id.label": "내부 ID", + "Task.fields.mappedOn.label": "지도 제작 중", + "Task.fields.priority.label": "우선순위", + "Task.fields.requestedBy.label": "지도 제작자", + "Task.fields.reviewStatus.label": "검토 현황", + "Task.fields.reviewedBy.label": "검토자", + "Task.fields.status.label": "상태", + "Task.loadByMethod.proximity": "가까운 작업", + "Task.loadByMethod.random": "임의의 작업", + "Task.management.controls.inspect.label": "검사", + "Task.management.controls.modify.label": "수정", + "Task.management.heading": "작업 옵션", + "Task.markedAs.label": "작업의 상태:", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "높음", + "Task.priority.low": "낮음", + "Task.priority.medium": "중간", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "이미 고쳐짐", + "Task.status.created": "생성됨", + "Task.status.deleted": "삭제됨", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "문제가 아님", + "Task.status.fixed": "고침", + "Task.status.skipped": "넘김", + "Task.status.tooHard": "너무 어려움", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "Task.unsave.control.tooltip": "추적 멈추기", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "댓글", + "TaskConfirmationModal.addTags.placeholder": "MR 태그 추가", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "취소", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "댓글 남기기(선택)", + "TaskConfirmationModal.comment.placeholder": "내 댓글(선택)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "검토자의 이견을 확인해 주세요", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "확인해 주세요", + "TaskConfirmationModal.inReviewHeader": "검토 내역을 확인해 주세요", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "다음 작업:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "제출", + "TaskConfirmationModal.submitRevisionHeader": "수정 내역을 확인해 주세요", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "기존 상태", - "ActiveTask.controls.status.tooltip": "기존 상태", - "ActiveTask.controls.viewChangset.label": "바뀜집합 보기", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "당신의 상위 도전", "TopUserChallenges.widget.label": "당신의 상위 도전", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "현재 편집기:", - "ActiveTask.indicators.virtualChallenge.tooltip": "가상 도전", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "추적되는 작업", + "UserProfile.topChallenges.header": "당신의 상위 도전", + "VirtualChallenge.controls.create.label": "작업 {taskCount, number}개로 만들기", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "\"가상\" 도전의 명칭", "WidgetPicker.menuLabel": "위젯 추가", + "WidgetWorkspace.controls.addConfiguration.label": "새 레이아웃 추가", + "WidgetWorkspace.controls.deleteConfiguration.label": "레이아웃 작세", + "WidgetWorkspace.controls.editConfiguration.label": "레이아웃 편집", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "레이아웃을 기본값으로 초기화", + "WidgetWorkspace.controls.saveConfiguration.label": "편집 완료", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "현재 레이아웃:", + "WidgetWorkspace.labels.switchTo": "전환:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "번다운 차트", + "Widgets.BurndownChartWidget.title": "남은 작업: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "일일 히트맵", + "Widgets.CalendarHeatmapWidget.title": "일일 히트맵: 작업 완료", + "Widgets.ChallengeListWidget.label": "도전", + "Widgets.ChallengeListWidget.search.placeholder": "검색", + "Widgets.ChallengeListWidget.title": "도전", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "생성:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "보이기:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "수정:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "상태:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "작업 새로고침:", + "Widgets.ChallengeOverviewWidget.label": "도전 개요", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "개요", "Widgets.ChallengeShareWidget.label": "공유하기", "Widgets.ChallengeShareWidget.title": "공유하기", + "Widgets.ChallengeTasksWidget.label": "작업", + "Widgets.ChallengeTasksWidget.title": "작업", + "Widgets.CommentsWidget.controls.export.label": "내보내기", + "Widgets.CommentsWidget.label": "댓글", + "Widgets.CommentsWidget.title": "댓글", "Widgets.CompletionProgressWidget.label": "진척도", - "Widgets.CompletionProgressWidget.title": "진척도", "Widgets.CompletionProgressWidget.noTasks": "남아 있는 작업이 없습니다", + "Widgets.CompletionProgressWidget.title": "진척도", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "키보드 단축키", "Widgets.KeyboardShortcutsWidget.title": "키보드 단축키", + "Widgets.LeaderboardWidget.label": "리더보드", + "Widgets.LeaderboardWidget.title": "리더보드", + "Widgets.ProjectAboutWidget.content": "프로젝트는 서로 관련 있는 도전을 엮은 것입니다. \n모든 도전은 프로젝트에 속해 있어야 합니다.\n\n프로젝트는 필요한 만큼 얼마든지 만들 수 있으며, \n다른 MapRoulette 유저를 초대해 프로젝트 관리자로 삼을 수도 있습니다.\n\n프로젝트에 속한 개별 도전을 공개하기 전에 프로젝트를 먼저 공개해야 합니다.\n", + "Widgets.ProjectAboutWidget.label": "프로젝트 개요", + "Widgets.ProjectAboutWidget.title": "프로젝트 개요", + "Widgets.ProjectListWidget.label": "프로젝트 목록", + "Widgets.ProjectListWidget.search.placeholder": "검색", + "Widgets.ProjectListWidget.title": "프로젝트", + "Widgets.ProjectManagersWidget.label": "프로젝트 관리자", + "Widgets.ProjectOverviewWidget.label": "개요", + "Widgets.ProjectOverviewWidget.title": "개요", + "Widgets.RecentActivityWidget.label": "최근 활동", + "Widgets.RecentActivityWidget.title": "최근 활동", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "상태 레이더", + "Widgets.StatusRadarWidget.title": "작업의 상태 분포도", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "완료", - "Widgets.TaskCompletionWidget.title": "완료", - "Widgets.TaskCompletionWidget.inspectTitle": "검사", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "검사", + "Widgets.TaskCompletionWidget.label": "완료", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "완료", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "지시", "Widgets.TaskInstructionsWidget.title": "지시", "Widgets.TaskLocationWidget.label": "위치", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "작업", "Widgets.TaskMoreOptionsWidget.label": "더 많은 옵션", "Widgets.TaskMoreOptionsWidget.title": "더 많은 옵션", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "작업 상태", "Widgets.TaskStatusWidget.title": "작업 상태", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "레이아웃 편집", - "WidgetWorkspace.controls.saveConfiguration.label": "편집 완료", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "새 레이아웃 추가", - "WidgetWorkspace.controls.deleteConfiguration.label": "레이아웃 작세", - "WidgetWorkspace.controls.resetConfiguration.label": "레이아웃을 기본값으로 초기화", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "현재 레이아웃:", - "WidgetWorkspace.labels.switchTo": "전환:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo 축약어는 지원되지 않습니다. 이 소스 코드를 사용하고 싶다면, Overpass Turbo로 들어가 쿼리를 테스트해 보고 나서, 내보내기 -> 쿼리 -> 독립 -> 복사한 내용을 여기에 붙여넣기하세요.", - "Dashboard.header": "대시보드", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "리더보드", - "Leaderboard.global": "전 세계", - "Leaderboard.scoringMethod.label": "점수 획득 방법", - "Leaderboard.scoringMethod.explanation": "##### 작업을 하나씩 완수할 때마다 아래의 기준에 따라서 접수가 부여됩니다.\n\n| 상태 | 점수 |\n| :------------ | -----: |\n| 고침 | 5 |\n| 문제가 아님 | 3 |\n| 이미 고쳐짐 | 3 |\n| 너무 어려움 | 1 |\n| 넘김 | 0 |", - "Leaderboard.user.points": "점", - "Leaderboard.user.topChallenges": "상위 도전", - "Leaderboard.users.none": "해당 기간 동안 기여한 사용자가 없음", - "Leaderboard.controls.loadMore.label": "자세히 보기", - "Leaderboard.updatedFrequently": "15분마다 업데이트됩니다", - "Leaderboard.updatedDaily": "24시간마다 업데이트됩니다", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "가입일:", - "Profile.form.defaultEditor.label": "기본 편집기", - "Profile.form.defaultEditor.description": "작업에 임할 때 사용할 기본 편집기를 선택하세요. 기본 편집기를 지정해 두면 작업 수정을 클릭했을 때 편집기 선택 창이 나타나지 않습니다.", - "Profile.form.defaultBasemap.label": "기본 배경 지도", - "Profile.form.defaultBasemap.description": "지도에 표시할 기본 배경 지도를 선택하세요. 도전에서 설정된 기본 배경 지도만 이 옵션(사용자 설정 배경 지도)보다 우선 순위가 높습니다.", - "Profile.form.customBasemap.label": "사용자 지정 배경 지도", - "Profile.form.customBasemap.description": "여기에 원하는 배경 지도를 넣으세요. 예시: `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "언어", - "Profile.form.locale.description": "MapRoulette UI에 적용할 언어를 선택하세요.", - "Profile.form.leaderboardOptOut.label": "리더보드에 올리지 않기", - "Profile.form.leaderboardOptOut.description": "예를 선택하면, 당신은 공개 리더보드에 올라가지 **않습니다**.", - "Profile.apiKey.header": "API 키", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "업데이트됨", - "Activity.action.created": "생성됨", - "Activity.action.deleted": "삭제됨", - "Activity.action.taskViewed": "봄", - "Activity.action.taskStatusSet": "상태를 다음으로 설정:", - "Activity.action.tagAdded": "다음 지물에 태그 추가:", - "Activity.action.tagRemoved": "다음 지물에서 태그 삭제:", - "Activity.action.questionAnswered": "답변된 질문:", - "Activity.item.project": "프로젝트", - "Activity.item.challenge": "작업", - "Activity.item.task": "작업", - "Activity.item.tag": "태그", - "Activity.item.survey": "조사", - "Activity.item.user": "사용자", - "Activity.item.group": "그룹", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "없음", - "Admin.Challenge.basemap.none": "기본값", - "Challenge.basemap.openStreetMap": "오픈스트리트맵", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "사용자 지정", - "Challenge.difficulty.easy": "쉬움", - "Challenge.difficulty.normal": "보통", - "Challenge.difficulty.expert": "전문가", - "Challenge.difficulty.any": "전부", - "Challenge.keywords.navigation": "도로/보행자 도로/자전거 도로", - "Challenge.keywords.water": "수역", - "Challenge.keywords.pointsOfInterest": "관심 지점/영역", - "Challenge.keywords.buildings": "건물", - "Challenge.keywords.landUse": "토지 이용/행정 경계", - "Challenge.keywords.transit": "교통", - "Challenge.keywords.other": "기타", - "Challenge.keywords.any": "전부", - "Challenge.location.nearMe": "내 근처", - "Challenge.location.withinMapBounds": "지도 경계 안쪽만", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "전체", - "Challenge.status.none": "적용할 수 없음", - "Challenge.status.building": "구축 중", - "Challenge.status.failed": "실패", - "Challenge.status.ready": "준비됨", - "Challenge.status.partiallyLoaded": "일부만 불러오기 완료됨", - "Challenge.status.finished": "완료", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "도전", - "Challenge.type.survey": "조사", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "없음", - "Editor.id.label": "iD(웹 편집기)에서 편집", - "Editor.josm.label": "JOSM에서 편집", - "Editor.josmLayer.label": "새 JOSM 레이어에서 편집", - "Editor.josmFeatures.label": "JOSM에서 해당 지물만 편집", - "Editor.level0.label": "Level0에서 편집", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "현재 위치를 찾을 수 없습니다. 브라우저에서 권한을 획득하거나 openstreetmap.org로 들어가 환경설정에서 현재 위치를 설정하세요(오픈스트리트맵 계정에서 변경된 내용을 반영하려면 MapRoulette 사이트에서 로그아웃하고 나서 다시 로그인해야 할 수도 있습니다).", - "Errors.user.unauthenticated": "계속 진행하려면 로그인해 주세요.", - "Errors.user.unauthorized": "죄송합니다. 권한이 부족해 이 행동을 취할 수 없습니다.", - "Errors.user.updateFailure": "서버에 있는 사용자 정보를 업데이트할 수 없습니다.", - "Errors.user.fetchFailure": "서버에서 사용자 정보를 가져올 수 없습니다.", - "Errors.user.notFound": "이 사용자명을 가진 사람을 찾을 수 없습니다.", - "Errors.leaderboard.fetchFailure": "리더보드를 가져올 수 업습니다.", - "Errors.task.none": "이 도전에는 남은 작업이 없습니다.", - "Errors.task.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", - "Errors.task.updateFailure": "변경 내역을 저장할 수 없습니다s.", - "Errors.task.deleteFailure": "작업을 삭제할 수 없습니다.", - "Errors.task.fetchFailure": "작업을 가져올 수 없습니다.", - "Errors.task.doesNotExist": "작업이 존재하지 않습니다.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "오픈스트리트맵 데이터 요청이 너무 큽니다", - "Errors.osm.bandwidthExceeded": "허용 대역폭을 초과했습니다", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "오픈스트리트맵에서 데이터를 가져올 수 없습니다", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "작업 뭉치를 가져올 수 없습니다", - "Errors.boundedTask.fetchFailure": "지도 안에 있는 작업을 가져올 수 없습니다", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "서버에서 최신 버전의 도전 데이터를 가져올 수 없습니다.", - "Errors.challenge.searchFailure": "서버에서 도전을 검색할 수 없습니다.", - "Errors.challenge.deleteFailure": "도전을 삭제할 수 없습니다.", - "Errors.challenge.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", - "Errors.challenge.rebuildFailure": "도전에 속한 작업들을 재구축할 수 없습니다", - "Errors.challenge.doesNotExist": "도전이 존재하지 않습니다.", - "Errors.virtualChallenge.fetchFailure": "서버에서 최신 버전의 가상 도전 데이터를 가져올 수 없습니다.", - "Errors.virtualChallenge.createFailure": "가상 도전을 만들 수 없습니다{자세히 보기}", - "Errors.virtualChallenge.expired": "가상 도전이 만료되었습니다.", - "Errors.project.saveFailure": "변경 내역을 저장할 수 없습니다{자세히 보기}", - "Errors.project.fetchFailure": "서버에서 최신 버전의 프로젝트 데이터를 가져올 수 없습니다.", - "Errors.project.searchFailure": "프로젝트를 검색할 수 없습니다.", - "Errors.project.deleteFailure": "프로젝트를 삭제할 수 없습니다.", - "Errors.project.notManager": "이 프로젝트의 관리자만 계속 진행할 수 있습니다.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "Nominatim으로 검색한 결과가 없습니다.", - "Errors.widgetWorkspace.renderFailure": "작업 영역을 띄울 수 없습니다. 작업 레이아웃으로 전환합니다.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "오픈스트리트맵 원격 조종이 응답하지 않습니다. 원격 제어가 활성화된 상태에서 실행 중인 JOSM이 있습니까?", - "Errors.josm.missingFeatureIds": "작업할 지물에 오픈스트리트맵 ID가 없어 해당 지물만 선택해 불러올 수 없습니다. 다른 옵션을 선택해 주세요.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Id에서 편집", - "KeyMapping.openEditor.editJosm": "JOSM에서 편집", - "KeyMapping.openEditor.editJosmLayer": "JOSM에서 편집(새 레이어)", - "KeyMapping.openEditor.editJosmFeatures": "JOSM에서 편집(해당 지물만 불러오기)", - "KeyMapping.openEditor.editLevel0": "Level0에서 편집", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "오픈스트리트맵 데이터 레이어 켜기·끄기", - "KeyMapping.layers.layerTaskFeatures": "지물 레이어 켜기·끄기", - "KeyMapping.layers.layerMapillary": "Mapillary 레이어 켜기·끄기", - "KeyMapping.taskEditing.cancel": "편집 취소", - "KeyMapping.taskEditing.fitBounds": "지도를 작업할 지물에 맞추기", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "넘기기", - "KeyMapping.taskCompletion.falsePositive": "문제가 아님", - "KeyMapping.taskCompletion.fixed": "직접 고쳤습니다!", - "KeyMapping.taskCompletion.tooHard": "너무 어려움/볼 수 없음", - "KeyMapping.taskCompletion.alreadyFixed": "이미 고쳐짐", - "KeyMapping.taskInspect.nextTask": "다음 작업", - "KeyMapping.taskInspect.prevTask": "이전 작업", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "이름", - "Challenge.sort.created": "생성 날짜", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "인기", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "기본", - "Task.loadByMethod.random": "임의의 작업", - "Task.loadByMethod.proximity": "가까운 작업", - "Task.priority.high": "높음", - "Task.priority.medium": "중간", - "Task.priority.low": "낮음", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "생성됨", - "Task.status.fixed": "고침", - "Task.status.falsePositive": "문제가 아님", - "Task.status.skipped": "넘김", - "Task.status.deleted": "삭제됨", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "이미 고쳐짐", - "Task.status.tooHard": "너무 어려움", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "공개", - "Dashboard.ChallengeFilter.pinned.label": "고정됨", - "Dashboard.ProjectFilter.visible.label": "공개", - "Dashboard.ProjectFilter.owner.label": "소유함", - "Dashboard.ProjectFilter.pinned.label": "고정됨" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/nl.json b/src/lang/nl.json index 2f953ea5b..7a8e845ab 100644 --- a/src/lang/nl.json +++ b/src/lang/nl.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Recente activiteit", - "BurndownChart.heading": "Resterende taken: {taskCount, number}", - "BurndownChart.tooltip": "Resterende taken", - "CalendarHeatmap.heading": "Dagelijks overzicht: Afgeronde taken", + "ActiveTask.controls.aleadyFixed.label": "Niet meer relevant", + "ActiveTask.controls.cancelEditing.label": "Terug", + "ActiveTask.controls.comments.tooltip": "Opmerkingen bekijken", + "ActiveTask.controls.fixed.label": "Ik heb dit opgelost!", + "ActiveTask.controls.info.tooltip": "Task Details", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Existing Status", + "ActiveTask.controls.viewChangset.label": "View Changeset", + "ActiveTask.heading": "Challenge Information", + "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", + "ActiveTask.subheading.comments": "Opmerkingen", + "ActiveTask.subheading.instructions": "Instructies", + "ActiveTask.subheading.location": "Location", + "ActiveTask.subheading.progress": "Challenge Progress", + "ActiveTask.subheading.social": "Delen", + "ActiveTask.subheading.status": "Existing Status", + "Activity.action.created": "Created", + "Activity.action.deleted": "Deleted", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Added Tag to", + "Activity.action.tagRemoved": "Removed Tag from", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Viewed", + "Activity.action.updated": "Bijgewerkt", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Challenge", + "Activity.item.grant": "Grant", + "Activity.item.group": "Group", + "Activity.item.project": "Project", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Tag", + "Activity.item.task": "Task", + "Activity.item.user": "User", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Recente activiteit", + "Admin.Challenge.basemap.none": "User Default", + "Admin.Challenge.controls.clone.label": "Uitdaging klonen", + "Admin.Challenge.controls.delete.label": "Uitdaging verwijderen", + "Admin.Challenge.controls.edit.label": "Uitdaging bewerken", + "Admin.Challenge.controls.move.label": "Uitdaging verplaatsen", + "Admin.Challenge.controls.move.none": "Geen geautoriseerde projecten", + "Admin.Challenge.controls.refreshStatus.label": "Status wordt ververst in", + "Admin.Challenge.controls.start.label": "Uitdaging starten", + "Admin.Challenge.controls.startChallenge.label": "Uitdaging starten", + "Admin.Challenge.fields.creationDate.label": "Gemaakt:", + "Admin.Challenge.fields.enabled.label": "Zichtbaar:", + "Admin.Challenge.fields.lastModifiedDate.label": "Bewerkt:", + "Admin.Challenge.fields.status.label": "Status:", + "Admin.Challenge.tasksBuilding": "Taken worden samengesteld...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Taken die niet konden worden samengesteld", + "Admin.Challenge.tasksNone": "Geen taken", + "Admin.Challenge.totalCreationTime": "Verstreken tijd:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Opties", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Naam", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Gereed", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Voortgang", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Zichtbaar", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Laatste activiteit", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Beheren", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Bewerken", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Starten", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Naam", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Voortgang", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Kloon", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Statuskolommen tonen", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Uitdaging starten", - "Admin.Challenge.controls.edit.label": "Uitdaging bewerken", - "Admin.Challenge.controls.move.label": "Uitdaging verplaatsen", - "Admin.Challenge.controls.move.none": "Geen geautoriseerde projecten", - "Admin.Challenge.controls.clone.label": "Uitdaging klonen", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Uitdaging verwijderen", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Bewerken", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Beheren", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Statuskolommen tonen", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Starten", "Admin.ChallengeList.noChallenges": "Geen uitdagingen", - "ChallengeProgressBorder.available": "Beschikbaar", - "CompletionRadar.heading": "Afgeronde taken: {taskCount, number}", - "Admin.EditProject.unavailable": "Project niet beschikbaar", - "Admin.EditProject.edit.header": "Bewerken", - "Admin.EditProject.new.header": "Nieuw project", - "Admin.EditProject.controls.save.label": "Bewaren", - "Admin.EditProject.controls.cancel.label": "Annuleren", - "Admin.EditProject.form.name.label": "Naam", - "Admin.EditProject.form.name.description": "Naam van het project", - "Admin.EditProject.form.displayName.label": "Weergavenaam", - "Admin.EditProject.form.displayName.description": "Projectnaam", - "Admin.EditProject.form.enabled.label": "Zichtbaar", - "Admin.EditProject.form.enabled.description": "Wanneer je een project als zichtbaar aanmerkt, zullen alle uitdagingen in dat project die ook als zichtbaar zijn aangemerkt beschikbaar en vindbaar zijn voor anderen. Als een project zichtbaar wordt gemaakt worden alle uitdagingen in het project die als zichtbaar zijn aangemerkt gepubliceerd. Je kunt nog steeds werken aan eigen uitdagingen en statische URLs delen. Projecten die niet zichtbaar zijn kunnen worden gebruikt als concept- of testomgeving.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtueel", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Omschrijving", - "Admin.EditProject.form.description.description": "Omschrijving van het project", - "Admin.InspectTask.header": "Taken inspecteren", - "Admin.EditChallenge.edit.header": "Bewerken", + "Admin.ChallengeTaskMap.controls.editTask.label": "Taak bewerken", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Taak inspecteren", "Admin.EditChallenge.clone.header": "Kloon", - "Admin.EditChallenge.new.header": "Nieuwe uitdaging", - "Admin.EditChallenge.lineNumber": "Regel {line, number}:", + "Admin.EditChallenge.edit.header": "Bewerken", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "Algemeen", - "Admin.EditChallenge.form.visible.label": "Zichtbaar", - "Admin.EditChallenge.form.visible.description": "Maak je uitdaging zichtbaar en vindbaar voor anderen (afhankelijk van de zichtbaarheid van je project). Tenzij je al bekend bent met het maken van uitdagingen adviseren we je om deze instelling op \"Nee\" te laten staan, vooral als het project van deze uitdaging als zichtbaar is aangemerkt. Het instellen van de project zichtbaarheid op \"Ja\" maakt het direct zichtbaar op de publieke pagina, in de zoekfunctie en in de statistieken - maar alleen als het project ook zichtbaar is.", - "Admin.EditChallenge.form.name.label": "Naam", - "Admin.EditChallenge.form.name.description": "De naam van de uitdaging zoals deze zal worden getoond op verschillende plaatsen in de applicatie. Dit is ook waarop de uitdaging kan worden gezocht via de zoekfunctie. Dit veld is verplicht en dient platte tekst te bevatten.", - "Admin.EditChallenge.form.description.label": "Omschrijving", - "Admin.EditChallenge.form.description.description": "De primaire, lange omschrijving van de uitdaging die aan gebruikers wordt getoond wanneer deze de detail pagina van de uitdaging bezoeken. In dit veld kan Markdown worden gebruikt.", - "Admin.EditChallenge.form.blurb.label": "Flaptekst", + "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Termen", "Admin.EditChallenge.form.blurb.description": "Een korte omschrijving van de uitdaging die kan worden weergegeven in delen met weinig ruimte, zoals de kaart. In dit veld kan Markdown worden gebruikt.", - "Admin.EditChallenge.form.instruction.label": "Instructies", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Omschrijving van de wijziging", + "Admin.EditChallenge.form.blurb.label": "Flaptekst", + "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", + "Admin.EditChallenge.form.category.label": "Categorie", "Admin.EditChallenge.form.checkinComment.description": "Opmerkingen die zullen worden geassocieerd met wijzigingen door deelnemers in de editor ", - "Admin.EditChallenge.form.checkinSource.label": "Bron van de wijziging", + "Admin.EditChallenge.form.checkinComment.label": "Omschrijving van de wijziging", "Admin.EditChallenge.form.checkinSource.description": "Geassocieerde bron voor wijzigingen gemaakt met de editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "De hashtag #maproulette automatisch toevoegen (aanbevolen)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Hashtag overslaan", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Het toevoegen van de hashtag aan de wijzigingen is handig voor het achteraf analyseren van de wijzigingen.", - "Admin.EditChallenge.form.difficulty.label": "Moeilijkheidsgraad", + "Admin.EditChallenge.form.checkinSource.label": "Bron van de wijziging", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Alternatieve basiskaart", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "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": "Basiskaart voor de uitdaging", + "Admin.EditChallenge.form.defaultPriority.description": "Standaard prioriteit voor taken in deze uitdaging", + "Admin.EditChallenge.form.defaultPriority.label": "Standaard prioriteit", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Standaard zoomniveau", + "Admin.EditChallenge.form.description.description": "De primaire, lange omschrijving van de uitdaging die aan gebruikers wordt getoond wanneer deze de detail pagina van de uitdaging bezoeken. In dit veld kan Markdown worden gebruikt.", + "Admin.EditChallenge.form.description.label": "Omschrijving", "Admin.EditChallenge.form.difficulty.description": "Selecteer Makkelijk, Normaal of Moeilijk om deelnemers een indicatie te geven welk niveau nodig is om deel te nemen aan de uitdaging. Makkelijke uitdagingen zouden zelfs voor beginners zonder ervaring te doen moeten zijn.", - "Admin.EditChallenge.form.category.label": "Categorie", - "Admin.EditChallenge.form.category.description": "Selecting an appropriate high-level category for your challenge can aid users in quickly discovering challenges that match their interests. Choose the Other category if nothing seems appropriate.", - "Admin.EditChallenge.form.additionalKeywords.label": "Termen", - "Admin.EditChallenge.form.additionalKeywords.description": "You can optionally provide additional keywords that can be used to aid discovery of your challenge. Users can search by keyword from the Other option of the Category dropdown filter, or in the Search box by prepending with a hash sign (e.g. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Uitgelicht", + "Admin.EditChallenge.form.difficulty.label": "Moeilijkheidsgraad", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Uitgelichte uitdagingen worden boven aan de lijst getoond tijdens het bladeren door, of zoeken van uitdagingen. Alleen beheerders kunnen aangeven of een uitdaging uitgelicht wordt.", - "Admin.EditChallenge.form.step2.label": "GeoJSON bron", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON bron", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", + "Admin.EditChallenge.form.featured.label": "Uitgelicht", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Doorgaan, zelfs wanneer fouten in de brondata worden gedetecteerd. Alleen gevorderde gebruikers die begrijpen wat dit impliceert zouden dit moeten proberen.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Fouten negeren", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Het toevoegen van de hashtag aan de wijzigingen is handig voor het achteraf analyseren van de wijzigingen.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Hashtag overslaan", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "De hashtag #maproulette automatisch toevoegen (aanbevolen)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instructies", + "Admin.EditChallenge.form.localGeoJson.description": "Upload een lokaal GeoJSON bestand vanaf je computer", + "Admin.EditChallenge.form.localGeoJson.label": "Bestand uploaden", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Maximaal zoomniveau", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Minimaal zoomniveau", + "Admin.EditChallenge.form.name.description": "De naam van de uitdaging zoals deze zal worden getoond op verschillende plaatsen in de applicatie. Dit is ook waarop de uitdaging kan worden gezocht via de zoekfunctie. Dit veld is verplicht en dient platte tekst te bevatten.", + "Admin.EditChallenge.form.name.label": "Naam", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Geef een geldig kaartbereik op bij het invoeren van een overpass query, foute instellingen kunnen leiden tot veel data en het systeem ontwrichten.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", "Admin.EditChallenge.form.overpassQL.placeholder": "Geef een Overpass API query op...", - "Admin.EditChallenge.form.localGeoJson.label": "Bestand uploaden", - "Admin.EditChallenge.form.localGeoJson.description": "Upload een lokaal GeoJSON bestand vanaf je computer", - "Admin.EditChallenge.form.remoteGeoJson.label": "Bron URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "URL locatie van de bron waar de GeoJSON zich bevindt", + "Admin.EditChallenge.form.remoteGeoJson.label": "Bron URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Fouten negeren", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Doorgaan, zelfs wanneer fouten in de brondata worden gedetecteerd. Alleen gevorderde gebruikers die begrijpen wat dit impliceert zouden dit moeten proberen.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON bron", + "Admin.EditChallenge.form.step1.label": "Algemeen", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "GeoJSON bron", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Prioriteiten", - "Admin.EditChallenge.form.step3.description": "De prioriteit van taken kan worden gedefinieerd als Hoog, Gemiddeld en Laag. Alle hoge prioriteit taken zullen als eerste worden aangeboden aan deelnemers van een uitdaging, gevolgd door gemiddelde taken. Elke taak krijgt automatisch een prioriteit op basis van de regels die je hier onder opstelt. De regels worden geëvalueerd ten opzichte van de attributen voor objecten (OSM tags wanneer je een Overpass query gebruikt en anders de attributen uit de onderliggende GeoJSON). Taken die niet onder een regel vallen krijgen automatisch de standaard prioriteit.", - "Admin.EditChallenge.form.defaultPriority.label": "Standaard prioriteit", - "Admin.EditChallenge.form.defaultPriority.description": "Standaard prioriteit voor taken in deze uitdaging", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Extra information that can be optionally set to give a better mapping experience specific to the requirements of the challenge", - "Admin.EditChallenge.form.updateTasks.label": "Inactieve taken verwijderen", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Standaard zoomniveau", - "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task's feature. But if that's not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", - "Admin.EditChallenge.form.minZoom.label": "Minimaal zoomniveau", - "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", - "Admin.EditChallenge.form.maxZoom.label": "Maximaal zoomniveau", - "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Basiskaart voor de uitdaging", - "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.customBasemap.label": "Alternatieve basiskaart", - "Admin.EditChallenge.form.customBasemap.description": "Geef een URL op voor een alternatieve basiskaart. B.v. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Uitdagingen", - "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", - "Admin.ManageChallenges.search.placeholder": "Naam", - "Admin.ManageChallenges.allProjectChallenge": "Alles", - "Admin.Challenge.fields.creationDate.label": "Gemaakt:", - "Admin.Challenge.fields.lastModifiedDate.label": "Bewerkt:", - "Admin.Challenge.fields.status.label": "Status:", - "Admin.Challenge.fields.enabled.label": "Zichtbaar:", - "Admin.Challenge.controls.startChallenge.label": "Uitdaging starten", - "Admin.Challenge.activity.label": "Recente activiteit", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Inactieve taken verwijderen", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Zichtbaar", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "Nieuwe uitdaging", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Annuleren", + "Admin.EditProject.controls.save.label": "Bewaren", + "Admin.EditProject.edit.header": "Bewerken", + "Admin.EditProject.form.description.description": "Omschrijving van het project", + "Admin.EditProject.form.description.label": "Omschrijving", + "Admin.EditProject.form.displayName.description": "Projectnaam", + "Admin.EditProject.form.displayName.label": "Weergavenaam", + "Admin.EditProject.form.enabled.description": "Wanneer je een project als zichtbaar aanmerkt, zullen alle uitdagingen in dat project die ook als zichtbaar zijn aangemerkt beschikbaar en vindbaar zijn voor anderen. Als een project zichtbaar wordt gemaakt worden alle uitdagingen in het project die als zichtbaar zijn aangemerkt gepubliceerd. Je kunt nog steeds werken aan eigen uitdagingen en statische URLs delen. Projecten die niet zichtbaar zijn kunnen worden gebruikt als concept- of testomgeving.", + "Admin.EditProject.form.enabled.label": "Zichtbaar", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtueel", + "Admin.EditProject.form.name.description": "Naam van het project", + "Admin.EditProject.form.name.label": "Naam", + "Admin.EditProject.new.header": "Nieuw project", + "Admin.EditProject.unavailable": "Project niet beschikbaar", + "Admin.EditTask.controls.cancel.label": "Annuleren", + "Admin.EditTask.controls.save.label": "Bewaren", "Admin.EditTask.edit.header": "Taak bewerken", - "Admin.EditTask.new.header": "Nieuwe taak", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "Taakdetails", - "Admin.EditTask.controls.save.label": "Bewaren", - "Admin.EditTask.controls.cancel.label": "Annuleren", - "Admin.EditTask.form.name.label": "Naam", - "Admin.EditTask.form.name.description": "Naam van de taak", - "Admin.EditTask.form.instruction.label": "Instructies", - "Admin.EditTask.form.instruction.description": "Specifieke instructies voor deelnemers aan deze taak (Wordt getoond in plaats van instructies voor de uitdaging)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", - "Admin.EditTask.form.priority.label": "Prioriteit", - "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Specifieke instructies voor deelnemers aan deze taak (Wordt getoond in plaats van instructies voor de uitdaging)", + "Admin.EditTask.form.instruction.label": "Instructies", + "Admin.EditTask.form.name.description": "Naam van de taak", + "Admin.EditTask.form.name.label": "Naam", + "Admin.EditTask.form.priority.label": "Prioriteit", "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.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Taak bewerken", - "Admin.Task.controls.editTask.label": "Bewerken", - "Admin.manage.header": "Aanmaken & beheren", - "Admin.manage.virtual": "Virtueel", - "Admin.ProjectCard.tabs.challenges.label": "Uitdagingen", - "Admin.ProjectCard.tabs.details.label": "Details", - "Admin.ProjectCard.tabs.managers.label": "Beheerders", - "Admin.Project.fields.enabled.tooltip": "Ingeschakeld", - "Admin.Project.fields.disabled.tooltip": "Uitgeschakeld", - "Admin.ProjectCard.controls.editProject.tooltip": "Project bewerken", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.new.header": "Nieuwe taak", + "Admin.InspectTask.header": "Taken inspecteren", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "Alles", + "Admin.ManageChallenges.header": "Uitdagingen", + "Admin.ManageChallenges.help.info": "Challenges consist of many tasks that all help address a specific problem or shortcoming with OpenStreetMap data. Tasks are typically generated automatically from an overpassQL query you provide when creating a new challenge, but can also be loaded from a local file or remote URL containing GeoJSON features. You can create as many challenges as you'd like.", + "Admin.ManageChallenges.search.placeholder": "Naam", + "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", + "Admin.ManageTasks.header": "Taken", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Uitdaging toevoegen", + "Admin.Project.controls.addChallenge.tooltip": "Nieuwe uitdaging", + "Admin.Project.controls.delete.label": "Project verwijderen", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Uitdagingen beheren", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Gemaakt:", + "Admin.Project.fields.disabled.tooltip": "Uitgeschakeld", + "Admin.Project.fields.enabled.tooltip": "Ingeschakeld", + "Admin.Project.fields.lastModifiedDate.label": "Bewerkt:", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Virtueel", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Project bewerken", - "Admin.ProjectDashboard.controls.delete.label": "Project verwijderen", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Project bewerken", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Uitdagingen", + "Admin.ProjectCard.tabs.details.label": "Details", + "Admin.ProjectCard.tabs.managers.label": "Beheerders", "Admin.ProjectDashboard.controls.addChallenge.label": "Uitdaging toevoegen", + "Admin.ProjectDashboard.controls.delete.label": "Project verwijderen", + "Admin.ProjectDashboard.controls.edit.label": "Project bewerken", "Admin.ProjectDashboard.controls.manageChallenges.label": "Uitdagingen beheren", - "Admin.Project.fields.creationDate.label": "Gemaakt:", - "Admin.Project.fields.lastModifiedDate.label": "Bewerkt:", - "Admin.Project.controls.delete.label": "Project verwijderen", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "Project toevoegen", + "Admin.ProjectManagers.addManager": "Projectbeheerder toevoegen", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap gebruikersnaam", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Kies een rol", + "Admin.ProjectManagers.noManagers": "Geen beheerders", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Eigenaar", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Projecten bieden een manier om uitdagingen te groeperen. Alle uitdagingen dienen onder een project te vallen.", - "Admin.ProjectsDashboard.search.placeholder": "Project- of uitdagingnaam", - "Admin.Project.controls.addChallenge.tooltip": "Nieuwe uitdaging", + "Admin.ProjectsDashboard.newProject": "Project toevoegen", "Admin.ProjectsDashboard.regenerateHomeProject": "Please sign out and sign back in to regenerate a fresh home project.", - "RebuildTasksControl.label": "Taken opnieuw aanmaken", - "RebuildTasksControl.modal.title": "Taken van de uitdaging opnieuw aanmaken", - "RebuildTasksControl.modal.intro.overpass": "Opnieuw samenstellen start de Overpass query opnieuw en zal de taken voor de uitdaging opnieuw samenstellen met de laatste data:", - "RebuildTasksControl.modal.intro.remote": "Opnieuw samenstellen zal de GeoJSON data downloaden van de bron URL voor de uitdaging en de taken voor de uitdaging opnieuw samenstellen met de laatste data:", - "RebuildTasksControl.modal.intro.local": "Opnieuw samenstellen geeft de mogelijkheid opnieuw een lokaal bestand met de laatste GeoJSON data te uploaden en zal de taken voor de uitdaging opnieuw samenstellen:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Waarschuwing: Het opnieuw samenstellen kan leiden tot dubbele taken wanneer de sleutels niet correct zijn ingesteld of wanneer oude data niet kan worden gecombineerd met nieuwe data. Deze actie kan niet ongedaan worden gemaakt!", - "RebuildTasksControl.modal.moreInfo": "[Meer informatie](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Annuleren", - "RebuildTasksControl.modal.controls.proceed.label": "Verder", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Annuleren", - "StepNavigation.controls.next.label": "Volgende", - "StepNavigation.controls.prev.label": "Vorige", - "StepNavigation.controls.finish.label": "Afronden", + "Admin.ProjectsDashboard.search.placeholder": "Project- of uitdagingnaam", + "Admin.Task.controls.editTask.label": "Bewerken", + "Admin.Task.controls.editTask.tooltip": "Taak bewerken", + "Admin.Task.fields.name.label": "Taak:", + "Admin.Task.fields.status.label": "Status:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Acties", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Opmerkingen", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Bewerken", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecteren", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Beoordelen", + "Admin.TaskAnalysisTable.controls.startTask.label": "Start", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "taken verwijderd", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Taak bewerken", + "Admin.TaskInspect.controls.modifyTask.label": "Taak aanpassen", + "Admin.TaskInspect.controls.nextTask.label": "Volgende taak", + "Admin.TaskInspect.controls.previousTask.label": "Vorige taak", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Taken die worden samengesteld", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Goedkeuren", + "Admin.TaskReview.controls.approvedWithFixes": "Goedkeuren (met correcties)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Beoordeling:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Taak status:", + "Admin.TaskReview.controls.rejected": "Afwijzen", + "Admin.TaskReview.controls.resubmit": "Opnieuw aanbieden voor beoordeling", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Deze taak wordt al door iemand beoordeeld.", + "Admin.TaskReview.controls.reviewNotRequested": "Deze taak is nog niet aangeboden voor beoordeling.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Beginnen met beoordelen", + "Admin.TaskReview.controls.taskNotCompleted": "Deze taak is nog niet gereed voor beoordeling omdat ze nog niet afgerond is.", + "Admin.TaskReview.controls.taskTags.label": "Termen:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Beoordeling bijwerken", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "Je kunt eigen taken niet beoordelen.", "Admin.TaskUploadProgress.tasksUploaded.label": "Geüploade taken", - "Admin.Challenge.tasksBuilding": "Taken worden samengesteld...", - "Admin.Challenge.tasksFailed": "Taken die niet konden worden samengesteld", - "Admin.Challenge.tasksNone": "Geen taken", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Verstreken tijd:", - "Admin.Challenge.controls.refreshStatus.label": "Status wordt ververst in", - "Admin.ManageTasks.header": "Taken", - "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", - "Admin.manageTasks.controls.changePriority.label": "Prioriteit wijzigen", - "Admin.manageTasks.priorityLabel": "Prioriteit", - "Admin.manageTasks.controls.clearFilters.label": "Filters verwijderen", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Taak inspecteren", - "Admin.ChallengeTaskMap.controls.editTask.label": "Taak bewerken", - "Admin.Task.fields.name.label": "Taak:", - "Admin.Task.fields.status.label": "Status:", - "Admin.VirtualProject.manageChallenge.label": "Uitdagingen beheren", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Uitdaging toevoegen", + "Admin.TaskUploadProgress.uploadingTasks.header": "Taken die worden samengesteld", "Admin.VirtualProject.ChallengeList.noChallenges": "Geen uitdagingen", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Uitdagingen in", - "Admin.VirtualProject.findChallenges.label": "Uitdagingen", "Admin.VirtualProject.controls.add.label": "Toevoegen", + "Admin.VirtualProject.controls.addChallenge.label": "Uitdaging toevoegen", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Verwijderen", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Resterende taken: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Dagelijks overzicht", - "Widgets.CalendarHeatmapWidget.title": "Dagelijks overzicht: Afgeronde taken", - "Widgets.ChallengeListWidget.label": "Uitdagingen", - "Widgets.ChallengeListWidget.title": "Uitdagingen", - "Widgets.ChallengeListWidget.search.placeholder": "Zoeken", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Uitdagingen", + "Admin.VirtualProject.manageChallenge.label": "Uitdagingen beheren", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Beoordeeld op", + "Admin.manage.header": "Aanmaken & beheren", + "Admin.manage.virtual": "Virtueel", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Uitdagingenoverzicht", - "Widgets.ChallengeOverviewWidget.title": "Overzicht", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Gemaakt:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Bewerkt:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Vernieuwde taken:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Zichtbaar:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Taken", - "Widgets.ChallengeTasksWidget.title": "Taken", - "Widgets.CommentsWidget.label": "Opmerkingen", - "Widgets.CommentsWidget.title": "Opmerkingen", - "Widgets.CommentsWidget.controls.export.label": "Exporteren", - "Widgets.LeaderboardWidget.label": "Scorebord", - "Widgets.LeaderboardWidget.title": "Scorebord", - "Widgets.ProjectAboutWidget.label": "Over projecten", - "Widgets.ProjectAboutWidget.title": "Over projecten", - "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 visible before any challenges within them will show up\nin public browsing or searching.", - "Widgets.ProjectListWidget.label": "Projectenoverzicht", - "Widgets.ProjectListWidget.title": "Projecten", - "Widgets.ProjectListWidget.search.placeholder": "Zoeken", - "Widgets.ProjectManagersWidget.label": "Projectbeheerders", - "Admin.ProjectManagers.noManagers": "Geen beheerders", - "Admin.ProjectManagers.addManager": "Projectbeheerder toevoegen", - "Admin.ProjectManagers.projectOwner": "Eigenaar", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Are you sure you wish to remove this manager from the project?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Kies een rol", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "OpenStreetMap gebruikersnaam", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "Overzicht", - "Widgets.ProjectOverviewWidget.title": "Overzicht", - "Widgets.RecentActivityWidget.label": "Recente activiteit", - "Widgets.RecentActivityWidget.title": "Recente acitiviteit", - "Widgets.StatusRadarWidget.label": "Statusradar", - "Widgets.StatusRadarWidget.title": "Status van gereedheid", - "Metrics.tasks.evaluatedByUser.label": "Taken beoordeeld door deelnemers", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Prioriteit wijzigen", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Filters verwijderen", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "CSV exporteren", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Prioriteit", "AutosuggestTextBox.labels.noResults": "Geen overeenkomsten", - "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", - "Form.textUpload.readonly": "Bestaand bestand zal worden gebruikt", - "Form.controls.addPriorityRule.label": "Voeg een regel toe", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Resterende taken: {taskCount, number}", + "BurndownChart.tooltip": "Resterende taken", + "CalendarHeatmap.heading": "Dagelijks overzicht: Afgeronde taken", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Custom", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Filters verwijderen", + "Challenge.controls.loadMore.label": "Meer resultaten", + "Challenge.controls.save.label": "Bewaren", + "Challenge.controls.start.label": "Starten", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Bewaren ongedaan maken", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Elke", + "Challenge.difficulty.easy": "Makkelijk", + "Challenge.difficulty.expert": "Expert", + "Challenge.difficulty.normal": "Normaal", "Challenge.fields.difficulty.label": "Moeilijkheidsgraad", "Challenge.fields.lastTaskRefresh.label": "Taken van", "Challenge.fields.viewLeaderboard.label": "Scorebord bekijken", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Willekeurig", + "Challenge.keywords.buildings": "Gebouwen", + "Challenge.keywords.landUse": "Landgebruik / Administratieve grenzen", + "Challenge.keywords.navigation": "Wegen / Wandelpaden / Fietspaden", + "Challenge.keywords.other": "Other", + "Challenge.keywords.pointsOfInterest": "Interessante punten en gebieden", + "Challenge.keywords.transit": "Openbaar vervoer", + "Challenge.keywords.water": "Water", + "Challenge.location.any": "Overal", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Dichtbij", + "Challenge.location.withinMapBounds": "Binnen het kaartvenster", + "Challenge.management.controls.manage.label": "Beheren", + "Challenge.results.heading": "Uitdagingen", + "Challenge.results.noResults": "Geen resultaten", + "Challenge.signIn.label": "Meld je aan om te starten", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Nieuwste", + "Challenge.sort.default": "Standaard", + "Challenge.sort.name": "Naam", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Populair", + "Challenge.status.building": "Aan het samenstellen", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Failed", + "Challenge.status.finished": "Finished", + "Challenge.status.none": "Not Applicable", + "Challenge.status.partiallyLoaded": "Partially Loaded", + "Challenge.status.ready": "Ready", + "Challenge.type.challenge": "Challenge", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Uitgelicht", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Beheren", - "ChallengeDetails.Task.fields.featured.label": "Uitgelicht", "ChallengeDetails.fields.difficulty.label": "Moeilijkheidsgraad", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Taken van", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Taken van", "ChallengeDetails.fields.viewLeaderboard.label": "Scorebord bekijken", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Beheren", + "ChallengeEndModal.control.dismiss.label": "Verdergaan", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Verdergaan", - "Task.controls.contactOwner.label": "Contact opnemen met de eigenaar", - "Task.controls.contactLink.label": "Stuur {owner} een bericht via OpenStreetMap", - "ChallengeFilterSubnav.header": "Uitdagingen", + "ChallengeFilterSubnav.controls.sortBy.label": "Sorteer op", "ChallengeFilterSubnav.filter.difficulty.label": "Moeilijkheidsgraad", "ChallengeFilterSubnav.filter.keyword.label": "Werk aan", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Overige:", "ChallengeFilterSubnav.filter.location.label": "Locatie", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Filters verwijderen", - "ChallengeFilterSubnav.controls.sortBy.label": "Sorteer op", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Overige:", - "Challenge.controls.unsave.label": "Bewaren ongedaan maken", - "Challenge.controls.save.label": "Bewaren", - "Challenge.controls.start.label": "Starten", - "Challenge.management.controls.manage.label": "Beheren", - "Challenge.signIn.label": "Meld je aan om te starten", - "Challenge.results.heading": "Uitdagingen", - "Challenge.results.noResults": "Geen resultaten", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Werk aan {taskCount, number} actieve taken", - "VirtualChallenge.fields.name.label": "Geef de \"virtuele\" uitdaging een naam", - "Challenge.controls.loadMore.label": "Meer resultaten", + "ChallengeFilterSubnav.header": "Uitdagingen", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "Beschikbaar", - "ChallengeProgress.tooltip.label": "Taken", - "ChallengeProgress.tasks.remaining": "Resterende taken {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "van {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Resterende taken {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Taken", + "ChallengeProgressBorder.available": "Beschikbaar", "CommentList.controls.viewTask.label": "Taak bekijken", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "Afgeronde taken: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Annuleren", "ConfirmAction.proceed": "Verder", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Verdergaan", "CongratulateModal.header": "Gefeliciteerd!", "CongratulateModal.primaryMessage": "Uitdaging compleet", - "CongratulateModal.control.dismiss.label": "Verdergaan", - "CountryName.ALL": "Alle landen", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "Verenigde Arabische Emiraten", "CountryName.AF": "Afghanistan", - "CountryName.AO": "Angola", "CountryName.AL": "Albanië", - "CountryName.AE": "Verenigde Arabische Emiraten", - "CountryName.AR": "Argentinië", + "CountryName.ALL": "Alle landen", "CountryName.AM": "Armenië", + "CountryName.AO": "Angola", "CountryName.AQ": "Antartica", - "CountryName.TF": "Franse zuidelijke gebieden", - "CountryName.AU": "Australië", + "CountryName.AR": "Argentinië", "CountryName.AT": "Oostenrijk", + "CountryName.AU": "Australië", "CountryName.AZ": "Azerbaijan", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bosnië en Herzegovina", + "CountryName.BD": "Bangladesh", "CountryName.BE": "België", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesh", "CountryName.BG": "Bulgarije", - "CountryName.BS": "De Bahama's", - "CountryName.BA": "Bosnië en Herzegovina", - "CountryName.BY": "Wit Rusland", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunei", "CountryName.BO": "Bolivië", "CountryName.BR": "Brazilië", - "CountryName.BN": "Brunei", + "CountryName.BS": "De Bahama's", "CountryName.BT": "Bhutan", "CountryName.BW": "Botswana", - "CountryName.CF": "Centrale Afrikaanse Republiek", + "CountryName.BY": "Wit Rusland", + "CountryName.BZ": "Belize", "CountryName.CA": "Canada", + "CountryName.CD": "Congo (Kinshasa)", + "CountryName.CF": "Centrale Afrikaanse Republiek", + "CountryName.CG": "Congo (Brazzaville)", "CountryName.CH": "Zwitserland", - "CountryName.CL": "Chili", - "CountryName.CN": "China", "CountryName.CI": "Ivoorkust", + "CountryName.CL": "Chili", "CountryName.CM": "Cameroen", - "CountryName.CD": "Congo (Kinshasa)", - "CountryName.CG": "Congo (Brazzaville)", + "CountryName.CN": "China", "CountryName.CO": "Colombia", "CountryName.CR": "Costa Rica", "CountryName.CU": "Cuba", @@ -415,10 +485,10 @@ "CountryName.DO": "Dominicaanse republiek", "CountryName.DZ": "Algarije", "CountryName.EC": "Ecuador", + "CountryName.EE": "Estonië", "CountryName.EG": "Egypte", "CountryName.ER": "Eritrea", "CountryName.ES": "Spanje", - "CountryName.EE": "Estonië", "CountryName.ET": "Ethiopië", "CountryName.FI": "Finland", "CountryName.FJ": "Fiji", @@ -428,57 +498,58 @@ "CountryName.GB": "Verenigd Koninkrijk", "CountryName.GE": "Georgië", "CountryName.GH": "Ghana", - "CountryName.GN": "Guinea", + "CountryName.GL": "Groenland", "CountryName.GM": "Gambia", - "CountryName.GW": "Guinea Bissau", + "CountryName.GN": "Guinea", "CountryName.GQ": "Equatorial Guinea", "CountryName.GR": "Griekenland", - "CountryName.GL": "Groenland", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guinea Bissau", "CountryName.GY": "Guyana", "CountryName.HN": "Honduras", "CountryName.HR": "Kroatië", "CountryName.HT": "Haiti", "CountryName.HU": "Hongarije", "CountryName.ID": "Indonesië", - "CountryName.IN": "India", "CountryName.IE": "Ierland", - "CountryName.IR": "Iran", + "CountryName.IL": "Israël", + "CountryName.IN": "India", "CountryName.IQ": "Irak", + "CountryName.IR": "Iran", "CountryName.IS": "IJsland", - "CountryName.IL": "Israël", "CountryName.IT": "Italië", "CountryName.JM": "Jamaica", "CountryName.JO": "Jordanië", "CountryName.JP": "Japan", - "CountryName.KZ": "Kazakhstan", "CountryName.KE": "Kenia", "CountryName.KG": "Kyrgyzstan", "CountryName.KH": "Cambodja", + "CountryName.KP": "Noord Korea", "CountryName.KR": "Zuid Korea", "CountryName.KW": "Koeweit", + "CountryName.KZ": "Kazakhstan", "CountryName.LA": "Laos", "CountryName.LB": "Libanon", - "CountryName.LR": "Liberië", - "CountryName.LY": "Libië", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Liberië", "CountryName.LS": "Lesotho", "CountryName.LT": "Litouwen", "CountryName.LU": "Luxemburg", "CountryName.LV": "Letland", + "CountryName.LY": "Libië", "CountryName.MA": "Marokko", "CountryName.MD": "Moldavië", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagascar", - "CountryName.MX": "Mexico", "CountryName.MK": "Macedonië", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongolië", - "CountryName.MZ": "Mozambique", "CountryName.MR": "Mauritanië", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexico", "CountryName.MY": "Maleisië", + "CountryName.MZ": "Mozambique", "CountryName.NA": "Namibia", "CountryName.NC": "Nieuw Caledonië", "CountryName.NE": "Niger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "Nieuw Zeeland", "CountryName.OM": "Omaan", - "CountryName.PK": "Pakistan", "CountryName.PA": "Panama", "CountryName.PE": "Peru", - "CountryName.PH": "De Filipijnen", "CountryName.PG": "Papoea Nieuw Guinea", + "CountryName.PH": "De Filipijnen", + "CountryName.PK": "Pakistan", "CountryName.PL": "Polen", "CountryName.PR": "Puerto Rico", - "CountryName.KP": "Noord Korea", + "CountryName.PS": "Westelijke Jordaanoever", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguay", "CountryName.QA": "Qatar", "CountryName.RO": "Roemenië", + "CountryName.RS": "Servië", "CountryName.RU": "Rusland", "CountryName.RW": "Rwanda", "CountryName.SA": "Saudi Arabië", - "CountryName.SD": "Soedan", - "CountryName.SS": "Zuid Soedan", - "CountryName.SN": "Senegal", "CountryName.SB": "Solomon eilanden", + "CountryName.SD": "Soedan", + "CountryName.SE": "Zweden", + "CountryName.SI": "Slovenië", + "CountryName.SK": "Slovakije", "CountryName.SL": "Sierra Leone", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somalië", - "CountryName.RS": "Servië", "CountryName.SR": "Suriname", - "CountryName.SK": "Slovakije", - "CountryName.SI": "Slovenië", - "CountryName.SE": "Zweden", - "CountryName.SZ": "Swaziland", + "CountryName.SS": "Zuid Soedan", + "CountryName.SV": "El Salvador", "CountryName.SY": "Syrië", + "CountryName.SZ": "Swaziland", "CountryName.TD": "Chaad", + "CountryName.TF": "Franse zuidelijke gebieden", "CountryName.TG": "Togo", "CountryName.TH": "Thailand", "CountryName.TJ": "Tajikistan", - "CountryName.TM": "Turkmenistan", "CountryName.TL": "Oost Timor", - "CountryName.TT": "Trinidad en Tobago", + "CountryName.TM": "Turkmenistan", "CountryName.TN": "Tunesië", "CountryName.TR": "Turkije", + "CountryName.TT": "Trinidad en Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tanzania", - "CountryName.UG": "Uganda", "CountryName.UA": "Oekraïne", - "CountryName.UY": "Uruguay", + "CountryName.UG": "Uganda", "CountryName.US": "Verenigde staten", + "CountryName.UY": "Uruguay", "CountryName.UZ": "Oezbekistan", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnam", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Westelijke Jordaanoever", "CountryName.YE": "Jemen", "CountryName.ZA": "Zuid Afrika", "CountryName.ZM": "Zambia", "CountryName.ZW": "Zimbabwe", - "FitBoundsControl.tooltip": "Maak de kaart passend aan de objecten", - "LayerToggle.controls.showTaskFeatures.label": "Objecten bij deze taak", - "LayerToggle.controls.showOSMData.label": "OSM Data", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(Bezig met laden...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Pinned", + "Dashboard.ChallengeFilter.visible.label": "Visible", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Pinned", + "Dashboard.ProjectFilter.visible.label": "Visible", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Edit in iD (web editor)", + "Editor.josm.label": "Edit in JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "Edit in new JOSM layer", + "Editor.level0.label": "Edit in Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Help", - "Footer.reportBug": "Meld een fout", - "Footer.joinNewsletter": "Schrijf je in voor de nieuwsbrief!", - "Footer.followUs": "Volg ons", - "Footer.email.placeholder": "Emailadres", - "Footer.email.submit.label": "Opslaan", - "HelpPopout.control.label": "Help", - "LayerSource.challengeDefault.label": "Standaard voor uitdagingen", - "LayerSource.userDefault.label": "Mijn standaard", - "HomePane.header": "Draag bij aan de vrije wereldkaart", - "HomePane.feedback.header": "Terugkoppeling", - "HomePane.filterTagIntro": "Vind taken die voor jou relevant zijn.", - "HomePane.filterLocationIntro": "Verbeter je eigen omgeving.", - "HomePane.filterDifficultyIntro": "Werk op je eigen niveau, van beginner tot expert.", - "HomePane.createChallenges": "Maak taken voor anderen om bij te dragen aan het verbeteren van vrije kaarten.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Unable to delete challenge.", + "Errors.challenge.doesNotExist": "That challenge does not exist.", + "Errors.challenge.fetchFailure": "Gegevens van de meest recente uitdaging konden niet worden opgehaald.", + "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", + "Errors.challenge.saveFailure": "Unable to save your changes{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", + "Errors.leaderboard.fetchFailure": "Kan het scorebord niet ophalen.", + "Errors.map.placeNotFound": "No results found by Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "OpenStreetMap data kon niet worden opgehaald.", + "Errors.osm.requestTooLarge": "Het verzoek om OpenStreetMap data leidde tot een te grote dataset.", + "Errors.project.deleteFailure": "Unable to delete project.", + "Errors.project.fetchFailure": "Projectgegevens konden niet worden opgehaald.", + "Errors.project.notManager": "You must be a manager of that project to proceed.", + "Errors.project.saveFailure": "Unable to save your changes{details}", + "Errors.project.searchFailure": "Unable to search projects.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Unable to delete task.", + "Errors.task.doesNotExist": "That task does not exist.", + "Errors.task.fetchFailure": "Unable to fetch a task to work on.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "Geen resterende taken", + "Errors.task.saveFailure": "Unable to save your changes{details}", + "Errors.task.updateFailure": "Unable to save your changes.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Gebruikersgegevens konden niet worden opgehaald.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", + "Errors.user.notFound": "No user found with that username.", + "Errors.user.unauthenticated": "Please sign in to continue.", + "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", + "Errors.user.updateFailure": "Unable to update your user on server.", + "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", + "Errors.virtualChallenge.expired": "Virtual challenge has expired.", + "Errors.virtualChallenge.fetchFailure": "Gegevens van de virtuele uitdaging konden niet worden opgehaald.", + "Errors.widgetWorkspace.importFailure": "Indeling kan niet worden geimporteerd {details}", + "Errors.widgetWorkspace.renderFailure": "Het ingestelde overzicht kan niet worden getoond. Er wordt een werkende indeling geactiveerd.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Maak de kaart passend aan de objecten", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Emailadres", + "Footer.email.submit.label": "Opslaan", + "Footer.followUs": "Volg ons", + "Footer.getHelp": "Help", + "Footer.joinNewsletter": "Schrijf je in voor de nieuwsbrief!", + "Footer.reportBug": "Meld een fout", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Voeg een regel toe", + "Form.textUpload.prompt": "Drop GeoJSON file here or click to select file", + "Form.textUpload.readonly": "Bestaand bestand zal worden gebruikt", + "General.controls.moreResults.label": "Meer resultaten", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Help", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Maak taken voor anderen om bij te dragen aan het verbeteren van vrije kaarten.", + "HomePane.feedback.header": "Terugkoppeling", + "HomePane.filterDifficultyIntro": "Werk op je eigen niveau, van beginner tot expert.", + "HomePane.filterLocationIntro": "Verbeter je eigen omgeving.", + "HomePane.filterTagIntro": "Vind taken die voor jou relevant zijn.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Beginnen", - "Admin.TaskInspect.controls.previousTask.label": "Vorige taak", - "Admin.TaskInspect.controls.nextTask.label": "Volgende taak", - "Admin.TaskInspect.controls.editTask.label": "Taak bewerken", - "Admin.TaskInspect.controls.modifyTask.label": "Taak aanpassen", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", + "KeyMapping.layers.layerOSMData": "OSM Data laag aan/uit", + "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", + "KeyMapping.openEditor.editId": "Edit in Id", + "KeyMapping.openEditor.editJosm": "Edit in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", + "KeyMapping.openEditor.editLevel0": "Edit in Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Niet meer relevant", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Niet van toepassing", + "KeyMapping.taskCompletion.fixed": "Ik heb dit opgelost!", + "KeyMapping.taskCompletion.skip": "Skip", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancel Editing", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", + "KeyMapping.taskInspect.nextTask": "Next Task", + "KeyMapping.taskInspect.prevTask": "Previous Task", + "KeyboardShortcuts.control.label": "Keyboard Shortcuts", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Term toevoegen", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "Meer resultaten", + "LayerSource.challengeDefault.label": "Standaard voor uitdagingen", + "LayerSource.userDefault.label": "Mijn standaard", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM Data", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Objecten bij deze taak", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(Bezig met laden...)", + "Leaderboard.controls.loadMore.label": "Show More", + "Leaderboard.global": "Wereldwijd", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Scoring method", + "Leaderboard.title": "Scorebord", + "Leaderboard.updatedDaily": "Wordt elke 24 uur bijgewerkt", + "Leaderboard.updatedFrequently": "Wordt elke 15 minuten bijgewerkt", + "Leaderboard.user.points": "Punten", + "Leaderboard.user.topChallenges": "Recente uitdagingen", + "Leaderboard.users.none": "No users for time period", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Recente uitdagingen", + "Metrics.leaderboard.totalPoints.label": "Totaal aantal punten", + "Metrics.leaderboardTitle": "Scorebord", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Taken beoordeeld door deelnemers", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Gebruik een computer", "MobileNotSupported.message": "MapRoulette is (nog) niet geschikt voor mobiele apparaten.", "MobileNotSupported.pageMessage": "Deze pagina is nog niet geschikt voor mobiele apparaten en kleinere schermen.", "MobileNotSupported.widenDisplay": "Wanneer je een computer gebruikt, maak dan je venster groter, of gebruik een grotere monitor indien mogelijk.", - "Navbar.links.dashboard": "Dashboard", + "MobileTask.subheading.instructions": "Instructies", + "Navbar.links.admin": "Aanmaken & beheren", "Navbar.links.challengeResults": "Uitdagingen", - "Navbar.links.leaderboard": "Scorebord", + "Navbar.links.dashboard": "Dashboard", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Help", "Navbar.links.inbox": "Postvak In", + "Navbar.links.leaderboard": "Scorebord", "Navbar.links.review": "Beoordelen", - "Navbar.links.admin": "Aanmaken & beheren", - "Navbar.links.help": "Help", - "Navbar.links.userProfile": "Gebruikersinstellingen", - "Navbar.links.userMetrics": "Statistieken", "Navbar.links.signout": "Afmelden", - "PageNotFound.message": "Oeps! De pagina die je zoekt is niet beschikbaar.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "Statistieken", + "Navbar.links.userProfile": "Gebruikersinstellingen", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Goedgekeurd", + "Notification.type.review.rejected": "Herzien", + "Notification.type.system": "Systeem", + "Notification.type.team": "Team", "PageNotFound.homePage": "Terug naar de hoofdpagina", - "PastDurationSelector.pastMonths.selectOption": "Afgelopen {months, plural, one {maand} =12 {jaar} other {# maanden}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Oeps! De pagina die je zoekt is niet beschikbaar.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "Alles", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Afgelopen {months, plural, one {maand} =12 {jaar} other {# maanden}}", "PointsTicker.label": "Mijn punten", "PopularChallenges.header": "Populaire uitdagingen", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copy", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "API Key", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", + "Profile.form.defaultBasemap.label": "Default Basemap", + "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.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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "Wanneer je Ja antwoordt, zul je **niet** zichtbaar zijn op het publieke scorebord.", + "Profile.form.leaderboardOptOut.label": "Onzichtbaar zijn op het scorebord", + "Profile.form.locale.description": "User locale to use for MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "User since:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Beoordeling bijwerken", - "Admin.TaskReview.controls.currentTaskStatus.label": "Taak status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Beoordeling:", - "Admin.TaskReview.controls.taskTags.label": "Termen:", - "Admin.TaskReview.controls.reviewNotRequested": "Deze taak is nog niet aangeboden voor beoordeling.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Deze taak wordt al door iemand beoordeeld.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "Je kunt eigen taken niet beoordelen.", - "Admin.TaskReview.controls.taskNotCompleted": "Deze taak is nog niet gereed voor beoordeling omdat ze nog niet afgerond is.", - "Admin.TaskReview.controls.approved": "Goedkeuren", - "Admin.TaskReview.controls.rejected": "Afwijzen", - "Admin.TaskReview.controls.approvedWithFixes": "Goedkeuren (met correcties)", - "Admin.TaskReview.controls.startReview": "Beginnen met beoordelen", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Opnieuw aanbieden voor beoordeling", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Taken opnieuw aanmaken", + "RebuildTasksControl.modal.controls.cancel.label": "Annuleren", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Verder", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Opnieuw samenstellen geeft de mogelijkheid opnieuw een lokaal bestand met de laatste GeoJSON data te uploaden en zal de taken voor de uitdaging opnieuw samenstellen:", + "RebuildTasksControl.modal.intro.overpass": "Opnieuw samenstellen start de Overpass query opnieuw en zal de taken voor de uitdaging opnieuw samenstellen met de laatste data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Meer informatie](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Taken van de uitdaging opnieuw aanmaken", + "RebuildTasksControl.modal.warning": "Waarschuwing: Het opnieuw samenstellen kan leiden tot dubbele taken wanneer de sleutels niet correct zijn ingesteld of wanneer oude data niet kan worden gecombineerd met nieuwe data. Deze actie kan niet ongedaan worden gemaakt!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "Geen taken gevonden", + "Review.TaskAnalysisTable.noTasksReviewed": "Geen van je taken is beoordeeld.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "Je hebt nog geen taken beoordeeld.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "NIET MEER RELEVANT", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NIET VAN TOEPASSING", + "ReviewStatus.metrics.fixed": "OPGELOST", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TE MOEILIJK", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Gevolgde taken", - "Task.unsave.control.tooltip": "Stop met volgen", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "ScreenTooNarrow.header": "Maak het venster groter", "ScreenTooNarrow.message": "Deze pagina is niet geschikt voor kleine schermen. Maak het venster groter of gebruik een grotere monitor.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Kopieer", "SignIn.control.label": "Aanmelden", "SignIn.control.longLabel": "Meld je aan om te starten", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Annuleren", + "StepNavigation.controls.finish.label": "Afronden", + "StepNavigation.controls.next.label": "Volgende", + "StepNavigation.controls.prev.label": "Vorige", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Acties", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Interne Id", - "Task.fields.featureId.label": "Object Id", - "Task.fields.status.label": "Status", - "Task.fields.priority.label": "Prioriteit", - "Task.fields.mappedOn.label": "Ingevoerd op", - "Task.fields.reviewStatus.label": "Beoordelingsstatus", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Gebruiker", - "Task.fields.reviewedBy.label": "Beoordelaar", - "Admin.fields.reviewedAt.label": "Beoordeeld op", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Opmerkingen", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecteren", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Beoordelen", - "Admin.TaskAnalysisTable.controls.editTask.label": "Bewerken", - "Admin.TaskAnalysisTable.controls.startTask.label": "Start", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Status wijzigen in", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "CSV exporteren", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Opmerking", - "Task.comments.comment.controls.submit.label": "Opslan", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Opmerkingen", - "TaskConfirmationModal.header": "Bevestig", - "TaskConfirmationModal.submitRevisionHeader": "Revisie bevestigen", - "TaskConfirmationModal.disputeRevisionHeader": "Bevestig waarom je het niet eens bent met de beoordeling", - "TaskConfirmationModal.inReviewHeader": "Bevestig de beoordeling", - "TaskConfirmationModal.comment.label": "Plaats een (optionele) opmerking", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Volgende taak:", - "TaskConfirmationModal.loadNextReview.label": "Verder met:", - "TaskConfirmationModal.cancel.label": "Annuleren", - "TaskConfirmationModal.submit.label": "Opslaan", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Gestart met de taak", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Taak gemarkeerd als", - "Task.requestReview.label": "Beoordeling aanvragen?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "De taak wacht op beoordeling.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "Meer opties", + "Task.comments.comment.controls.submit.label": "Opslan", "Task.controls.alreadyFixed.label": "Niet meer relevant", "Task.controls.alreadyFixed.tooltip": "Niet meer relevant", "Task.controls.cancelEditing.label": "Bewerken annuleren", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "Ik heb dit opgelost!", - "ActiveTask.controls.notFixed.label": "Te moeilijk / Onduidelijk", - "ActiveTask.controls.aleadyFixed.label": "Niet meer relevant", - "ActiveTask.controls.cancelEditing.label": "Terug", + "Task.controls.completionComment.placeholder": "Opmerking", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Stuur {owner} een bericht via OpenStreetMap", + "Task.controls.contactOwner.label": "Contact opnemen met de eigenaar", "Task.controls.edit.label": "Bewerken", "Task.controls.edit.tooltip": "Bewerken", "Task.controls.falsePositive.label": "Niet van toepassing", "Task.controls.falsePositive.tooltip": "Niet van toepassing", "Task.controls.fixed.label": "Ik heb dit opgelost!", "Task.controls.fixed.tooltip": "Ik heb dit opgelost!", + "Task.controls.moreOptions.label": "Meer opties", "Task.controls.next.label": "Volgende taak", - "Task.controls.next.tooltip": "Volgende taak", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Volgende taak", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Oneens met beoordelin", "Task.controls.revised.label": "Revisie afgerond", - "Task.controls.revised.tooltip": "Revisie afgerond", "Task.controls.revised.resubmit": "Opnieuw aanbieden voor beoordeling", - "Task.controls.revised.dispute": "Oneens met beoordelin", + "Task.controls.revised.tooltip": "Revisie afgerond", "Task.controls.skip.label": "Overslaan", "Task.controls.skip.tooltip": "Taak overslaan", - "Task.controls.tooHard.label": "Te moeilijk / Onduidelijk", - "Task.controls.tooHard.tooltip": "Te moeilijk / Onduidelijk", - "KeyboardShortcuts.control.label": "Keyboard Shortcuts", - "ActiveTask.keyboardShortcuts.label": "View Keyboard Shortcuts", - "ActiveTask.controls.info.tooltip": "Task Details", - "ActiveTask.controls.comments.tooltip": "Opmerkingen bekijken", - "ActiveTask.subheading.comments": "Opmerkingen", - "ActiveTask.heading": "Challenge Information", - "ActiveTask.subheading.instructions": "Instructies", - "ActiveTask.subheading.location": "Location", - "ActiveTask.subheading.progress": "Challenge Progress", - "ActiveTask.subheading.social": "Delen", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instructies", - "Task.management.heading": "Management Options", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "Modify", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Huidige taak", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Track this Task", "Task.controls.untrack.label": "Stop tracking this Task", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Beschikbaar", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Object Id", + "Task.fields.id.label": "Interne Id", + "Task.fields.mappedOn.label": "Ingevoerd op", + "Task.fields.priority.label": "Prioriteit", + "Task.fields.requestedBy.label": "Gebruiker", + "Task.fields.reviewStatus.label": "Beoordelingsstatus", + "Task.fields.reviewedBy.label": "Beoordelaar", + "Task.fields.status.label": "Status", + "Task.loadByMethod.proximity": "Nearby", + "Task.loadByMethod.random": "Random", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "Modify", + "Task.management.heading": "Management Options", + "Task.markedAs.label": "Taak gemarkeerd als", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "High", + "Task.priority.low": "Low", + "Task.priority.medium": "Medium", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "Beoordeling aanvragen?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Niet meer relevant", + "Task.status.created": "Created", + "Task.status.deleted": "Deleted", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Niet van toepassing", + "Task.status.fixed": "Opgelost", + "Task.status.skipped": "Overgeslagen", + "Task.status.tooHard": "Te moeilijk", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "Task.unsave.control.tooltip": "Stop met volgen", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Opmerkingen", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Annuleren", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Plaats een (optionele) opmerking", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Bevestig waarom je het niet eens bent met de beoordeling", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Bevestig", + "TaskConfirmationModal.inReviewHeader": "Bevestig de beoordeling", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Volgende taak:", + "TaskConfirmationModal.loadNextReview.label": "Verder met:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Opslaan", + "TaskConfirmationModal.submitRevisionHeader": "Revisie bevestigen", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Gestart met de taak", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Existing Status", - "ActiveTask.controls.status.tooltip": "Existing Status", - "ActiveTask.controls.viewChangset.label": "View Changeset", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Actieve uitdagingen", "TopUserChallenges.widget.label": "Actieve uitdagingen", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Current Editor:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Virtual Challenge", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Gevolgde taken", + "UserProfile.topChallenges.header": "Actieve uitdagingen", + "VirtualChallenge.controls.create.label": "Werk aan {taskCount, number} actieve taken", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Geef de \"virtuele\" uitdaging een naam", "WidgetPicker.menuLabel": "Add Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Nieuw", + "WidgetWorkspace.controls.deleteConfiguration.label": "Verwijderen", + "WidgetWorkspace.controls.editConfiguration.label": "Bewerken", + "WidgetWorkspace.controls.exportConfiguration.label": "Exporteren", + "WidgetWorkspace.controls.importConfiguration.label": "Importeren", + "WidgetWorkspace.controls.resetConfiguration.label": "Standaard activeren", + "WidgetWorkspace.controls.saveConfiguration.label": "Gereed", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Naam van de indeling", + "WidgetWorkspace.exportModal.header": "Exporteer de indeling", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Indeling importeren", + "WidgetWorkspace.labels.currentlyUsing": "Actieve indeling:", + "WidgetWorkspace.labels.switchTo": "Activeer:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Resterende taken: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Dagelijks overzicht", + "Widgets.CalendarHeatmapWidget.title": "Dagelijks overzicht: Afgeronde taken", + "Widgets.ChallengeListWidget.label": "Uitdagingen", + "Widgets.ChallengeListWidget.search.placeholder": "Zoeken", + "Widgets.ChallengeListWidget.title": "Uitdagingen", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Gemaakt:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Zichtbaar:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Bewerkt:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Vernieuwde taken:", + "Widgets.ChallengeOverviewWidget.label": "Uitdagingenoverzicht", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Overzicht", "Widgets.ChallengeShareWidget.label": "Social Sharing", "Widgets.ChallengeShareWidget.title": "Share", + "Widgets.ChallengeTasksWidget.label": "Taken", + "Widgets.ChallengeTasksWidget.title": "Taken", + "Widgets.CommentsWidget.controls.export.label": "Exporteren", + "Widgets.CommentsWidget.label": "Opmerkingen", + "Widgets.CommentsWidget.title": "Opmerkingen", "Widgets.CompletionProgressWidget.label": "Completion Progress", - "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.CompletionProgressWidget.noTasks": "Geen taken bij uitdaging", + "Widgets.CompletionProgressWidget.title": "Completion Progress", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Keyboard Shortcuts", "Widgets.KeyboardShortcutsWidget.title": "Keyboard Shortcuts", + "Widgets.LeaderboardWidget.label": "Scorebord", + "Widgets.LeaderboardWidget.title": "Scorebord", + "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 visible before any challenges within them will show up\nin public browsing or searching.", + "Widgets.ProjectAboutWidget.label": "Over projecten", + "Widgets.ProjectAboutWidget.title": "Over projecten", + "Widgets.ProjectListWidget.label": "Projectenoverzicht", + "Widgets.ProjectListWidget.search.placeholder": "Zoeken", + "Widgets.ProjectListWidget.title": "Projecten", + "Widgets.ProjectManagersWidget.label": "Projectbeheerders", + "Widgets.ProjectOverviewWidget.label": "Overzicht", + "Widgets.ProjectOverviewWidget.title": "Overzicht", + "Widgets.RecentActivityWidget.label": "Recente activiteit", + "Widgets.RecentActivityWidget.title": "Recente acitiviteit", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Statusradar", + "Widgets.StatusRadarWidget.title": "Status van gereedheid", "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Completion", - "Widgets.TaskCompletionWidget.title": "Completion", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Completion", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Completion", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instructions", "Widgets.TaskInstructionsWidget.title": "Instructions", "Widgets.TaskLocationWidget.label": "Location", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Huidige taak", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Task Status", "Widgets.TaskStatusWidget.title": "Task Status", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Bewerken", - "WidgetWorkspace.controls.saveConfiguration.label": "Gereed", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Nieuw", - "WidgetWorkspace.controls.deleteConfiguration.label": "Verwijderen", - "WidgetWorkspace.controls.resetConfiguration.label": "Standaard activeren", - "WidgetWorkspace.controls.exportConfiguration.label": "Exporteren", - "WidgetWorkspace.controls.importConfiguration.label": "Importeren", - "WidgetWorkspace.labels.currentlyUsing": "Actieve indeling:", - "WidgetWorkspace.labels.switchTo": "Activeer:", - "WidgetWorkspace.exportModal.header": "Exporteer de indeling", - "WidgetWorkspace.exportModal.fields.name.label": "Naam van de indeling", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Indeling importeren", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Scorebord", - "Leaderboard.global": "Wereldwijd", - "Leaderboard.scoringMethod.label": "Scoring method", - "Leaderboard.scoringMethod.explanation": "##### 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| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Punten", - "Leaderboard.user.topChallenges": "Recente uitdagingen", - "Leaderboard.users.none": "No users for time period", - "Leaderboard.controls.loadMore.label": "Show More", - "Leaderboard.updatedFrequently": "Wordt elke 15 minuten bijgewerkt", - "Leaderboard.updatedDaily": "Wordt elke 24 uur bijgewerkt", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Scorebord", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Totaal aantal punten", - "Metrics.leaderboard.topChallenges.label": "Recente uitdagingen", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "User since:", - "Profile.form.defaultEditor.label": "Default Editor", - "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.defaultBasemap.label": "Default Basemap", - "Profile.form.defaultBasemap.description": "Select the default basemap to display on the map. Only a default challenge basemap will override the option selected here.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "User locale to use for MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Onzichtbaar zijn op het scorebord", - "Profile.form.leaderboardOptOut.description": "Wanneer je Ja antwoordt, zul je **niet** zichtbaar zijn op het publieke scorebord.", - "Profile.apiKey.header": "API Key", - "Profile.apiKey.controls.copy.label": "Copy", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "OPGELOST", - "ReviewStatus.metrics.falsePositive": "NIET VAN TOEPASSING", - "ReviewStatus.metrics.alreadyFixed": "NIET MEER RELEVANT", - "ReviewStatus.metrics.tooHard": "TE MOEILIJK", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "Geen taken gevonden", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "Je hebt nog geen taken beoordeeld.", - "Review.TaskAnalysisTable.noTasksReviewed": "Geen van je taken is beoordeeld.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Bijgewerkt", - "Activity.action.created": "Created", - "Activity.action.deleted": "Deleted", - "Activity.action.taskViewed": "Viewed", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Added Tag to", - "Activity.action.tagRemoved": "Removed Tag from", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Project", - "Activity.item.challenge": "Challenge", - "Activity.item.task": "Task", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Survey", - "Activity.item.user": "User", - "Activity.item.group": "Group", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "User Default", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Custom", - "Challenge.difficulty.easy": "Makkelijk", - "Challenge.difficulty.normal": "Normaal", - "Challenge.difficulty.expert": "Expert", - "Challenge.difficulty.any": "Elke", - "Challenge.keywords.navigation": "Wegen / Wandelpaden / Fietspaden", - "Challenge.keywords.water": "Water", - "Challenge.keywords.pointsOfInterest": "Interessante punten en gebieden", - "Challenge.keywords.buildings": "Gebouwen", - "Challenge.keywords.landUse": "Landgebruik / Administratieve grenzen", - "Challenge.keywords.transit": "Openbaar vervoer", - "Challenge.keywords.other": "Other", - "Challenge.keywords.any": "Willekeurig", - "Challenge.location.nearMe": "Dichtbij", - "Challenge.location.withinMapBounds": "Binnen het kaartvenster", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Overal", - "Challenge.status.none": "Not Applicable", - "Challenge.status.building": "Aan het samenstellen", - "Challenge.status.failed": "Failed", - "Challenge.status.ready": "Ready", - "Challenge.status.partiallyLoaded": "Partially Loaded", - "Challenge.status.finished": "Finished", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Challenge", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Edit in iD (web editor)", - "Editor.josm.label": "Edit in JOSM", - "Editor.josmLayer.label": "Edit in new JOSM layer", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Edit in Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "No home location found. Please either allow permission from your browser or set your home location in your openstreetmap.org settings (you may to sign out and sign back in to MapRoulette afterwards to pick up fresh changes to your OpenStreetMap settings).", - "Errors.user.unauthenticated": "Please sign in to continue.", - "Errors.user.unauthorized": "Sorry, you are not authorized to perform that action.", - "Errors.user.updateFailure": "Unable to update your user on server.", - "Errors.user.fetchFailure": "Gebruikersgegevens konden niet worden opgehaald.", - "Errors.user.notFound": "No user found with that username.", - "Errors.leaderboard.fetchFailure": "Kan het scorebord niet ophalen.", - "Errors.task.none": "Geen resterende taken", - "Errors.task.saveFailure": "Unable to save your changes{details}", - "Errors.task.updateFailure": "Unable to save your changes.", - "Errors.task.deleteFailure": "Unable to delete task.", - "Errors.task.fetchFailure": "Unable to fetch a task to work on.", - "Errors.task.doesNotExist": "That task does not exist.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "Het verzoek om OpenStreetMap data leidde tot een te grote dataset.", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "OpenStreetMap data kon niet worden opgehaald.", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Gegevens van de meest recente uitdaging konden niet worden opgehaald.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Unable to delete challenge.", - "Errors.challenge.saveFailure": "Unable to save your changes{details}", - "Errors.challenge.rebuildFailure": "Unable to rebuild challenge tasks", - "Errors.challenge.doesNotExist": "That challenge does not exist.", - "Errors.virtualChallenge.fetchFailure": "Gegevens van de virtuele uitdaging konden niet worden opgehaald.", - "Errors.virtualChallenge.createFailure": "Unable to create a virtual challenge{details}", - "Errors.virtualChallenge.expired": "Virtual challenge has expired.", - "Errors.project.saveFailure": "Unable to save your changes{details}", - "Errors.project.fetchFailure": "Projectgegevens konden niet worden opgehaald.", - "Errors.project.searchFailure": "Unable to search projects.", - "Errors.project.deleteFailure": "Unable to delete project.", - "Errors.project.notManager": "You must be a manager of that project to proceed.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "No results found by Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Het ingestelde overzicht kan niet worden getoond. Er wordt een werkende indeling geactiveerd.", - "Errors.widgetWorkspace.importFailure": "Indeling kan niet worden geimporteerd {details}", - "Errors.josm.noResponse": "OSM remote control did not respond. Do you have JOSM running with Remote Control enabled?", - "Errors.josm.missingFeatureIds": "This task's features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Edit in Id", - "KeyMapping.openEditor.editJosm": "Edit in JOSM", - "KeyMapping.openEditor.editJosmLayer": "Edit in new JOSM layer", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Edit in Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "OSM Data laag aan/uit", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Cancel Editing", - "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Skip", - "KeyMapping.taskCompletion.falsePositive": "Niet van toepassing", - "KeyMapping.taskCompletion.fixed": "Ik heb dit opgelost!", - "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn't see", - "KeyMapping.taskCompletion.alreadyFixed": "Niet meer relevant", - "KeyMapping.taskInspect.nextTask": "Next Task", - "KeyMapping.taskInspect.prevTask": "Previous Task", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "Systeem", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Goedgekeurd", - "Notification.type.review.rejected": "Herzien", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Naam", - "Challenge.sort.created": "Nieuwste", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Populair", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Standaard", - "Task.loadByMethod.random": "Random", - "Task.loadByMethod.proximity": "Nearby", - "Task.priority.high": "High", - "Task.priority.medium": "Medium", - "Task.priority.low": "Low", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Created", - "Task.status.fixed": "Opgelost", - "Task.status.falsePositive": "Niet van toepassing", - "Task.status.skipped": "Overgeslagen", - "Task.status.deleted": "Deleted", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Niet meer relevant", - "Task.status.tooHard": "Te moeilijk", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visible", - "Dashboard.ChallengeFilter.pinned.label": "Pinned", - "Dashboard.ProjectFilter.visible.label": "Visible", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Pinned" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/pt_BR.json b/src/lang/pt_BR.json index 45dcf607c..abfc3242b 100644 --- a/src/lang/pt_BR.json +++ b/src/lang/pt_BR.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Sua atividade recente", - "BurndownChart.heading": "Tarefas restantes: {{taskCount, number}", - "BurndownChart.tooltip": "Tarefas restantes", - "CalendarHeatmap.heading": "Mapa de calor diário: Conclusão da tarefa", + "ActiveTask.controls.aleadyFixed.label": "Já corrigido", + "ActiveTask.controls.cancelEditing.label": "Voltar", + "ActiveTask.controls.comments.tooltip": "Ver Comentários", + "ActiveTask.controls.fixed.label": "Eu consertei!", + "ActiveTask.controls.info.tooltip": "Detalhes da Tarefa", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Status existente", + "ActiveTask.controls.viewChangset.label": "Visualizar conjunto de alterações", + "ActiveTask.heading": "Informação do Desafio", + "ActiveTask.indicators.virtualChallenge.tooltip": "Desafio Virtual", + "ActiveTask.keyboardShortcuts.label": "Visualizar atalhos de teclado", + "ActiveTask.subheading.comments": "Comentários", + "ActiveTask.subheading.instructions": "Instruções", + "ActiveTask.subheading.location": "Localização", + "ActiveTask.subheading.progress": "Desafio Progresso", + "ActiveTask.subheading.social": "Share", + "ActiveTask.subheading.status": "Status existente", + "Activity.action.created": "Criado", + "Activity.action.deleted": "Excluído", + "Activity.action.questionAnswered": "Pergunta respondida em", + "Activity.action.tagAdded": "Tag adicionado para", + "Activity.action.tagRemoved": "Tag removido de", + "Activity.action.taskStatusSet": "Definir status no", + "Activity.action.taskViewed": "Visto", + "Activity.action.updated": "Atualizado", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Desafio", + "Activity.item.grant": "Grant", + "Activity.item.group": "Grupo", + "Activity.item.project": "Projeto", + "Activity.item.survey": "Pesquisa", + "Activity.item.tag": "Tag", + "Activity.item.task": "Tarefa", + "Activity.item.user": "Usuário", + "Activity.item.virtualChallenge": "Virtual Challenge", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Atividade recente", + "Admin.Challenge.basemap.none": "Padrão do usuário", + "Admin.Challenge.controls.clone.label": "Clonar Desafio", + "Admin.Challenge.controls.delete.label": "Excluir desafio", + "Admin.Challenge.controls.edit.label": "Editar desafio", + "Admin.Challenge.controls.move.label": "Mover o Desafio", + "Admin.Challenge.controls.move.none": "Nenhum projeto permitido", + "Admin.Challenge.controls.refreshStatus.label": "Atualizando status em", + "Admin.Challenge.controls.start.label": "Iniciar Desafio", + "Admin.Challenge.controls.startChallenge.label": "Desafio inicial", + "Admin.Challenge.fields.creationDate.label": "Criado:", + "Admin.Challenge.fields.enabled.label": "Visível:", + "Admin.Challenge.fields.lastModifiedDate.label": "Modificado:", + "Admin.Challenge.fields.status.label": "Status:", + "Admin.Challenge.tasksBuilding": "Construção de Tarefas...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Tarefas Falha ao Construir", + "Admin.Challenge.tasksNone": "Sem tarefas", + "Admin.Challenge.totalCreationTime": "Tempo total decorrido:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Opções", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nome do Desafio", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Feito", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Progresso de Conclusão", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Visível", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "ultima atividade", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Gerir", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Editar", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Começar", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Nome do Desafio", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Progresso de Conclusão", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Clone", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Incluir colunas de status", - "ChallengeCard.totalTasks": "Total Tasks", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Iniciar Desafio", - "Admin.Challenge.controls.edit.label": "Editar desafio", - "Admin.Challenge.controls.move.label": "Mover o Desafio", - "Admin.Challenge.controls.move.none": "Nenhum projeto permitido", - "Admin.Challenge.controls.clone.label": "Clonar Desafio", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Copy URL", - "Admin.Challenge.controls.delete.label": "Excluir desafio", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Editar", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Gerir", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Incluir colunas de status", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Começar", "Admin.ChallengeList.noChallenges": "Sem desafios", - "ChallengeProgressBorder.available": "Available", - "CompletionRadar.heading": "Tarefas concluídas: {taskCount, number}", - "Admin.EditProject.unavailable": "Projeto indisponível", - "Admin.EditProject.edit.header": "Editar", - "Admin.EditProject.new.header": "Novo projeto", - "Admin.EditProject.controls.save.label": "Salvar", - "Admin.EditProject.controls.cancel.label": "Cancelar", - "Admin.EditProject.form.name.label": "Nome", - "Admin.EditProject.form.name.description": "Nome do projeto", - "Admin.EditProject.form.displayName.label": "Mostrar nome", - "Admin.EditProject.form.displayName.description": "Nome exibido do projeto", - "Admin.EditProject.form.enabled.label": "Visivel", - "Admin.EditProject.form.enabled.description": "Se você definir seu projeto como Visível, todos os Desafios sob ele que também estiverem configurados como Visível estarão disponíveis, localizáveis ​​e pesquisáveis ​​para outros usuários. Efetivamente, tornar o seu Projeto visível publica qualquer Desafio que também seja Visível. Você ainda pode trabalhar em seus próprios desafios e compartilhar endereços de desafio estáticos para qualquer um dos seus Desafios com as pessoas e isso funcionará. Então, até você definir o seu Projeto como Visível, você pode ver o seu projeto como um campo de testes para os Desafios. ", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Virtual", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Descrição", - "Admin.EditProject.form.description.description": "Descrição do projeto", - "Admin.InspectTask.header": "Inspecionar Tarefas", - "Admin.EditChallenge.edit.header": "Editar", + "Admin.ChallengeTaskMap.controls.editTask.label": "Editar tarefa", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspecionar Tarefa", "Admin.EditChallenge.clone.header": "Clonar", - "Admin.EditChallenge.new.header": "Novo desafio", - "Admin.EditChallenge.lineNumber": "Linha {line, number}:", + "Admin.EditChallenge.edit.header": "Editar", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "Geral", - "Admin.EditChallenge.form.visible.label": "Visível", - "Admin.EditChallenge.form.visible.description": "Permita que seu desafio seja visível e detectável para outros usuários (sujeito à visibilidade do projeto). A menos que você esteja realmente confiante em criar novos Desafios, recomendamos que deixe este definido como Não no início, especialmente se o Projeto pai tiver sido tornado visível. Definir a visibilidade do seu Desafio como Sim fará com que apareça na página inicial, na pesquisa do Desafio e nas métricas, mas somente se o Projeto pai também estiver visível.", - "Admin.EditChallenge.form.name.label": "Nome", - "Admin.EditChallenge.form.name.description": "Seu nome do Desafio, pois ele aparecerá em muitos lugares ao longo do aplicativo. Também é esse o seu desafio que pode ser pesquisado usando a caixa Pesquisar. Este campo é obrigatório e suporta apenas texto simples.", - "Admin.EditChallenge.form.description.label": "Descrição", - "Admin.EditChallenge.form.description.description": "A descrição principal e mais longa do desafio que é mostrada aos usuários quando eles clicam no desafio de saber mais sobre isso. Este campo suporta o Markdown.", - "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.additionalKeywords.description": "Como opção, você pode fornecer palavras-chave adicionais que podem ser usadas para ajudar a descobrir seu desafio. Os usuários podem pesquisar por palavra-chave a partir da opção Outros do filtro suspenso Categoria ou na caixa Pesquisar ao prefixar com um sinal de hash (por exemplo, #turismo).", + "Admin.EditChallenge.form.additionalKeywords.label": "Palavras-chave", "Admin.EditChallenge.form.blurb.description": "Uma breve descrição do seu desafio adequado para pequenos espaços, como um marcador de mapa. Este campo suporta o Markdown.", - "Admin.EditChallenge.form.instruction.label": "Instruções", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Descrição do changeset", + "Admin.EditChallenge.form.blurb.label": "Blurb", + "Admin.EditChallenge.form.category.description": "Selecionar uma categoria de alto nível apropriada para o seu desafio pode ajudar os usuários a descobrir rapidamente os desafios que correspondem aos seus interesses. Escolha a categoria Outros se nada parecer apropriado.", + "Admin.EditChallenge.form.category.label": "Categoria", "Admin.EditChallenge.form.checkinComment.description": "Comentário a ser associado a alterações feitas por usuários no editor", - "Admin.EditChallenge.form.checkinSource.label": "Fonte do conjunto de alterações", + "Admin.EditChallenge.form.checkinComment.label": "Descrição do changeset", "Admin.EditChallenge.form.checkinSource.description": "Fonte a ser associada a alterações feitas por usuários no editor", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Anexar automaticamente a hashtag #maproulette (altamente recomendado)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Pular hashtag", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Permitir que a hashtag seja anexada aos comentários do changeset é muito útil para a análise de changeset.", - "Admin.EditChallenge.form.difficulty.label": "Dificuldade", + "Admin.EditChallenge.form.checkinSource.label": "Fonte do conjunto de alterações", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Basemap personalizado", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "Admin.EditChallenge.form.defaultBasemap.description": "O mapa base padrão a ser usado para o desafio, substituindo qualquer configuração de usuário que defina um mapa base padrão", + "Admin.EditChallenge.form.defaultBasemap.label": "Mapa Base do Desafio", + "Admin.EditChallenge.form.defaultPriority.description": "Nível de prioridade padrão para tarefas neste desafio", + "Admin.EditChallenge.form.defaultPriority.label": "Prioridade Padrão", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Nível de zoom padrão", + "Admin.EditChallenge.form.description.description": "A descrição principal e mais longa do desafio que é mostrada aos usuários quando eles clicam no desafio de saber mais sobre isso. Este campo suporta o Markdown.", + "Admin.EditChallenge.form.description.label": "Descrição", "Admin.EditChallenge.form.difficulty.description": "Escolha entre Fácil, Normal e Especialista para dar uma indicação aos mapeadores sobre qual nível de habilidade é necessário para resolver as Tarefas em seu Desafio. Desafios fáceis devem ser adequados para iniciantes com pouca ou experiência.", - "Admin.EditChallenge.form.category.label": "Categoria", - "Admin.EditChallenge.form.category.description": "Selecionar uma categoria de alto nível apropriada para o seu desafio pode ajudar os usuários a descobrir rapidamente os desafios que correspondem aos seus interesses. Escolha a categoria Outros se nada parecer apropriado.", - "Admin.EditChallenge.form.additionalKeywords.label": "Palavras-chave", - "Admin.EditChallenge.form.additionalKeywords.description": "Como opção, você pode fornecer palavras-chave adicionais que podem ser usadas para ajudar a descobrir seu desafio. Os usuários podem pesquisar por palavra-chave a partir da opção Outros do filtro suspenso Categoria ou na caixa Pesquisar ao prefixar com um sinal de hash (por exemplo, #turismo).", - "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", - "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.", - "Admin.EditChallenge.form.featured.label": "Destaque", + "Admin.EditChallenge.form.difficulty.label": "Dificuldade", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Os desafios apresentados são mostrados no topo da lista ao navegar e pesquisar desafios. Somente superusuários podem marcar um desafio como destaque.", - "Admin.EditChallenge.form.step2.label": "Fonte GeoJSON", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "GeoJSON Source", - "Admin.EditChallenge.form.overpassQL.label": "Consulta de API Overpass", + "Admin.EditChallenge.form.featured.label": "Destaque", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Continue apesar dos erros detectados nos dados de origem. Somente usuários especialistas que compreendem totalmente as implicações devem tentar isso.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorar erros", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Permitir que a hashtag seja anexada aos comentários do changeset é muito útil para a análise de changeset.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Pular hashtag", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Anexar automaticamente a hashtag #maproulette (altamente recomendado)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Instruções", + "Admin.EditChallenge.form.localGeoJson.description": "Por favor carregue o arquivo GeoJSON local do seu computador", + "Admin.EditChallenge.form.localGeoJson.label": "Subir arquivo", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Nível Máximo de Zoom", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Nível Mínimo de Zoom", + "Admin.EditChallenge.form.name.description": "Seu nome do Desafio, pois ele aparecerá em muitos lugares ao longo do aplicativo. Também é esse o seu desafio que pode ser pesquisado usando a caixa Pesquisar. Este campo é obrigatório e suporta apenas texto simples.", + "Admin.EditChallenge.form.name.label": "Nome", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Forneça uma caixa delimitadora adequada ao inserir uma consulta de overpass, pois isso pode gerar grandes quantidades de dados e prejudicar o sistema.", + "Admin.EditChallenge.form.overpassQL.label": "Consulta de API Overpass", "Admin.EditChallenge.form.overpassQL.placeholder": "Insira a consulta da Overpass API aqui ", - "Admin.EditChallenge.form.localGeoJson.label": "Subir arquivo", - "Admin.EditChallenge.form.localGeoJson.description": "Por favor carregue o arquivo GeoJSON local do seu computador", - "Admin.EditChallenge.form.remoteGeoJson.label": "URL remoto", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Preferred Tags", "Admin.EditChallenge.form.remoteGeoJson.description": "Localização de URL remota a partir da qual recuperar o GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "URL remoto", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ignorar erros", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Continue apesar dos erros detectados nos dados de origem. Somente usuários especialistas que compreendem totalmente as implicações devem tentar isso.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "GeoJSON Source", + "Admin.EditChallenge.form.step1.label": "Geral", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "Fonte GeoJSON", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Prioridades", - "Admin.EditChallenge.form.step3.description": "A prioridade das tarefas pode ser definida como Alta, Média e Baixa. Todas as tarefas de alta prioridade serão oferecidas aos usuários primeiro ao trabalhar com um desafio, seguidas pelas tarefas de média e baixa prioridade. A prioridade de cada tarefa é atribuída automaticamente com base nas regras especificadas abaixo, cada uma das quais é avaliada em relação às propriedades do recurso da tarefa (tags OSM se você estiver usando uma consulta Overpass, caso contrário, quaisquer propriedades escolhidas para inclusão no GeoJSON). Tarefas que não passam nenhuma regra receberão a prioridade padrão.", - "Admin.EditChallenge.form.defaultPriority.label": "Prioridade Padrão", - "Admin.EditChallenge.form.defaultPriority.description": "Nível de prioridade padrão para tarefas neste desafio", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.step4.description": "Informações extras que podem ser configuradas opcionalmente para proporcionar uma melhor experiência de mapeamento específica para os requisitos do desafio", - "Admin.EditChallenge.form.updateTasks.label": "Remover tarefas obsoletas", - "Admin.EditChallenge.form.updateTasks.description": "Exclua periodicamente as tarefas antigas, obsoletas (não atualizadas em ~ 30 dias) no estado Criado ou Ignorado. Isso pode ser útil se você estiver atualizando suas tarefas de desafio regularmente e desejar que as antigas sejam removidas periodicamente para você. Na maioria das vezes você vai querer deixar este conjunto para não.", - "Admin.EditChallenge.form.defaultZoom.label": "Nível de zoom padrão", - "Admin.EditChallenge.form.defaultZoom.description": "Quando um usuário começa a trabalhar em uma tarefa, o MapRoulette tentará usar automaticamente um nível de zoom que atenda aos limites do recurso da tarefa. Mas se isso não for possível, esse nível de zoom padrão será usado. Deve ser definido para um nível é geralmente adequado para trabalhar na maioria das tarefas em seu desafio.", - "Admin.EditChallenge.form.minZoom.label": "Nível Mínimo de Zoom", - "Admin.EditChallenge.form.minZoom.description": "O nível de zoom mínimo permitido para o seu desafio. Isso deve ser definido em um nível que permita ao usuário diminuir suficientemente o zoom para trabalhar em tarefas, evitando que elas diminuam o zoom para um nível que não seja útil.", - "Admin.EditChallenge.form.maxZoom.label": "Nível Máximo de Zoom", - "Admin.EditChallenge.form.maxZoom.description": "O nível de zoom máximo permitido para o seu desafio. Isso deve ser definido em um nível que permita ao usuário ampliar o suficiente para trabalhar nas tarefas, evitando que elas sejam ampliadas para um nível que não seja útil ou exceda a resolução disponível do mapa / imagens na região geográfica.", - "Admin.EditChallenge.form.defaultBasemap.label": "Mapa Base do Desafio", - "Admin.EditChallenge.form.defaultBasemap.description": "O mapa base padrão a ser usado para o desafio, substituindo qualquer configuração de usuário que defina um mapa base padrão", - "Admin.EditChallenge.form.customBasemap.label": "Basemap personalizado", - "Admin.EditChallenge.form.customBasemap.description": "Insira um URL do mapa base personalizado aqui. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", + "Admin.EditChallenge.form.step4.label": "Extra", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Done", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Desafios", - "Admin.ManageChallenges.help.info": "Desafios consistem em muitas tarefas que ajudam a resolver um problema específico ou falha com dados do OpenStreetMap. Normalmente, as tarefas são geradas automaticamente a partir de uma consulta de overpassQL que você fornece ao criar um novo desafio, mas também podem ser carregadas a partir de um arquivo local ou de um URL remoto que contenha recursos do GeoJSON. Você pode criar quantos desafios quiser.", - "Admin.ManageChallenges.search.placeholder": "Nome", - "Admin.ManageChallenges.allProjectChallenge": "Todos", - "Admin.Challenge.fields.creationDate.label": "Criado:", - "Admin.Challenge.fields.lastModifiedDate.label": "Modificado:", - "Admin.Challenge.fields.status.label": "Status:", - "Admin.Challenge.fields.enabled.label": "Visível:", - "Admin.Challenge.controls.startChallenge.label": "Desafio inicial", - "Admin.Challenge.activity.label": "Atividade recente", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Exclua periodicamente as tarefas antigas, obsoletas (não atualizadas em ~ 30 dias) no estado Criado ou Ignorado. Isso pode ser útil se você estiver atualizando suas tarefas de desafio regularmente e desejar que as antigas sejam removidas periodicamente para você. Na maioria das vezes você vai querer deixar este conjunto para não.", + "Admin.EditChallenge.form.updateTasks.label": "Remover tarefas obsoletas", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Visível", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "Novo desafio", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Os atalhos do Overpass Turbo não são suportados. Se você quiser usá-los, visite o Turbo Overpass e teste sua consulta, em seguida escolha Export -> Query -> Standalone -> Copy e cole isso aqui.", + "Admin.EditProject.controls.cancel.label": "Cancelar", + "Admin.EditProject.controls.save.label": "Salvar", + "Admin.EditProject.edit.header": "Editar", + "Admin.EditProject.form.description.description": "Descrição do projeto", + "Admin.EditProject.form.description.label": "Descrição", + "Admin.EditProject.form.displayName.description": "Nome exibido do projeto", + "Admin.EditProject.form.displayName.label": "Mostrar nome", + "Admin.EditProject.form.enabled.description": "Se você definir seu projeto como Visível, todos os Desafios sob ele que também estiverem configurados como Visível estarão disponíveis, localizáveis ​​e pesquisáveis ​​para outros usuários. Efetivamente, tornar o seu Projeto visível publica qualquer Desafio que também seja Visível. Você ainda pode trabalhar em seus próprios desafios e compartilhar endereços de desafio estáticos para qualquer um dos seus Desafios com as pessoas e isso funcionará. Então, até você definir o seu Projeto como Visível, você pode ver o seu projeto como um campo de testes para os Desafios. ", + "Admin.EditProject.form.enabled.label": "Visivel", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Virtual", + "Admin.EditProject.form.name.description": "Nome do projeto", + "Admin.EditProject.form.name.label": "Nome", + "Admin.EditProject.new.header": "Novo projeto", + "Admin.EditProject.unavailable": "Projeto indisponível", + "Admin.EditTask.controls.cancel.label": "Cancelar", + "Admin.EditTask.controls.save.label": "Salve", "Admin.EditTask.edit.header": "Editar tarefa", - "Admin.EditTask.new.header": "Nova tarefa", + "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", + "Admin.EditTask.form.additionalTags.label": "MR Tags", + "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", "Admin.EditTask.form.formTitle": "Detalhes da Tarefa", - "Admin.EditTask.controls.save.label": "Salve", - "Admin.EditTask.controls.cancel.label": "Cancelar", - "Admin.EditTask.form.name.label": "Nome", - "Admin.EditTask.form.name.description": "Nome da tarefa", - "Admin.EditTask.form.instruction.label": "Instruções", - "Admin.EditTask.form.instruction.description": "Instruções para os usuários que realizam essa tarefa específica (substitui as instruções de desafio)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "GeoJSON para esta tarefa. Cada Tarefa no MapRoulette consiste basicamente de uma geometria: um ponto, linha ou polígono indicando no mapa onde você deseja que o mapeador preste atenção, descrito porGeoJSON", - "Admin.EditTask.form.priority.label": "Prioridade", - "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Instruções para os usuários que realizam essa tarefa específica (substitui as instruções de desafio)", + "Admin.EditTask.form.instruction.label": "Instruções", + "Admin.EditTask.form.name.description": "Nome da tarefa", + "Admin.EditTask.form.name.label": "Nome", + "Admin.EditTask.form.priority.label": "Prioridade", "Admin.EditTask.form.status.description": "Status desta tarefa. Dependendo do status atual, suas escolhas para atualizar o status podem ser restritas", - "Admin.EditTask.form.additionalTags.label": "MR Tags", - "Admin.EditTask.form.additionalTags.description": "You can optionally provide additional MR tags that can be used to annotate this task.", - "Admin.EditTask.form.additionalTags.placeholder": "Add MR Tags", - "Admin.Task.controls.editTask.tooltip": "Editar tarefa", - "Admin.Task.controls.editTask.label": "Editar", - "Admin.manage.header": "Crie e gerencie", - "Admin.manage.virtual": "Virtual", - "Admin.ProjectCard.tabs.challenges.label": "Desafios", - "Admin.ProjectCard.tabs.details.label": "Detalhes", - "Admin.ProjectCard.tabs.managers.label": "Gerentes", - "Admin.Project.fields.enabled.tooltip": "ativado", - "Admin.Project.fields.disabled.tooltip": "Desativado", - "Admin.ProjectCard.controls.editProject.tooltip": "Editar projeto", - "Admin.ProjectCard.controls.editProject.label": "Edit Project", - "Admin.ProjectCard.controls.pinProject.label": "Pin Project", - "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.EditTask.form.status.label": "Status", + "Admin.EditTask.new.header": "Nova tarefa", + "Admin.InspectTask.header": "Inspecionar Tarefas", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Delete", + "Admin.ManageChallenges.allProjectChallenge": "Todos", + "Admin.ManageChallenges.header": "Desafios", + "Admin.ManageChallenges.help.info": "Desafios consistem em muitas tarefas que ajudam a resolver um problema específico ou falha com dados do OpenStreetMap. Normalmente, as tarefas são geradas automaticamente a partir de uma consulta de overpassQL que você fornece ao criar um novo desafio, mas também podem ser carregadas a partir de um arquivo local ou de um URL remoto que contenha recursos do GeoJSON. Você pode criar quantos desafios quiser.", + "Admin.ManageChallenges.search.placeholder": "Nome", + "Admin.ManageTasks.geographicIndexingNotice": "Tenha em atenção que pode demorar até {delay} horas a indexar geograficamente desafios novos ou modificados. Seu desafio (e tarefas) pode não aparecer como esperado na navegação específica do local ou nas pesquisas até que a indexação seja concluída.", + "Admin.ManageTasks.header": "Tarefas", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Adicionar Desafio", + "Admin.Project.controls.addChallenge.tooltip": "Novo desafio", + "Admin.Project.controls.delete.label": "Excluir projeto", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Manage Challenge List", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Criado:", + "Admin.Project.fields.disabled.tooltip": "Desativado", + "Admin.Project.fields.enabled.tooltip": "ativado", + "Admin.Project.fields.lastModifiedDate.label": "Modificado:", "Admin.Project.headers.challengePreview": "Jogos de Desafio", "Admin.Project.headers.virtual": "Virtual", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Editar projeto", - "Admin.ProjectDashboard.controls.delete.label": "Excluir projeto", + "Admin.ProjectCard.controls.editProject.label": "Edit Project", + "Admin.ProjectCard.controls.editProject.tooltip": "Editar projeto", + "Admin.ProjectCard.controls.pinProject.label": "Pin Project", + "Admin.ProjectCard.controls.unpinProject.label": "Unpin Project", + "Admin.ProjectCard.tabs.challenges.label": "Desafios", + "Admin.ProjectCard.tabs.details.label": "Detalhes", + "Admin.ProjectCard.tabs.managers.label": "Gerentes", "Admin.ProjectDashboard.controls.addChallenge.label": "Adicionar Desafio", + "Admin.ProjectDashboard.controls.delete.label": "Excluir projeto", + "Admin.ProjectDashboard.controls.edit.label": "Editar projeto", "Admin.ProjectDashboard.controls.manageChallenges.label": "Manage Challenges", - "Admin.Project.fields.creationDate.label": "Criado:", - "Admin.Project.fields.lastModifiedDate.label": "Modificado:", - "Admin.Project.controls.delete.label": "Excluir projeto", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Choose a Project", - "ProjectPickerModal.noProjects": "No projects found", - "Admin.ProjectsDashboard.newProject": "Adicionar projeto", + "Admin.ProjectManagers.addManager": "Adicionar gerente de projeto", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nome de usuário do OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Tem certeza de que deseja remover esse gerente do projeto?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Escolha o papel", + "Admin.ProjectManagers.noManagers": "Sem gerentes", + "Admin.ProjectManagers.options.teams.label": "Team", + "Admin.ProjectManagers.options.users.label": "User", + "Admin.ProjectManagers.projectOwner": "Proprietário", + "Admin.ProjectManagers.team.indicator": "Team", "Admin.ProjectsDashboard.help.info": "Os projetos servem como um meio de agrupar desafios relacionados juntos. Todos os desafios devem pertencer a um projeto.", - "Admin.ProjectsDashboard.search.placeholder": "Nome do projeto ou desafio", - "Admin.Project.controls.addChallenge.tooltip": "Novo desafio", + "Admin.ProjectsDashboard.newProject": "Adicionar projeto", "Admin.ProjectsDashboard.regenerateHomeProject": "Por favor, saia e entre novamente para gerar um novo projeto residencial.", - "RebuildTasksControl.label": "Reconstruir Tarefas", - "RebuildTasksControl.modal.title": "Recriar Tarefas do Desafio", - "RebuildTasksControl.modal.intro.overpass": "A reconstrução executará novamente a consulta Overpass e reconstruirá as tarefas de desafio com os dados mais recentes:", - "RebuildTasksControl.modal.intro.remote": "A reconstrução fará o download novamente dos dados GeoJSON da URL remota do desafio e reconstruirá as tarefas de desafio com os dados mais recentes:", - "RebuildTasksControl.modal.intro.local": "A reconstrução permitirá que você carregue um novo arquivo local com os dados mais recentes do GeoJSON e reconstrua as tarefas de desafio:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Aviso: a reconstrução pode levar à duplicação de tarefas se os IDs do seu recurso não forem configurados corretamente ou se a correspondência de dados antigos com novos dados não for bem-sucedida. Esta operação não pode ser desfeita!", - "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", - "RebuildTasksControl.modal.controls.cancel.label": "Cancelar", - "RebuildTasksControl.modal.controls.proceed.label": "Prosseguir", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Cancelar", - "StepNavigation.controls.next.label": "Próximo", - "StepNavigation.controls.prev.label": "Anterior", - "StepNavigation.controls.finish.label": "Terminar", + "Admin.ProjectsDashboard.search.placeholder": "Nome do projeto ou desafio", + "Admin.Task.controls.editTask.label": "Editar", + "Admin.Task.controls.editTask.tooltip": "Editar tarefa", + "Admin.Task.fields.name.label": "Tarefa:", + "Admin.Task.fields.status.label": "Status:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Ações", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", + "Admin.TaskAnalysisTable.controls.editTask.label": "Editar", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecionar", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Admin.TaskAnalysisTable.controls.startTask.label": "Start", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Deleting Tasks", "Admin.TaskDeletingProgress.tasksDeleting.label": "tasks deleted", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", - "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskInspect.controls.editTask.label": "Editar tarefa", + "Admin.TaskInspect.controls.modifyTask.label": "Modificar tarefa", + "Admin.TaskInspect.controls.nextTask.label": "Próxima tarefa", + "Admin.TaskInspect.controls.previousTask.label": "Tarefa Prévia", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Add", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Add Another Rule", + "Admin.TaskPropertyStyleRules.deleteRule": "Delete Rule", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Reconstruindo Tarefas", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Approve", + "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", + "Admin.TaskReview.controls.rejected": "Reject", + "Admin.TaskReview.controls.resubmit": "Submit for Review Again", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", + "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Start Review", + "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", + "Admin.TaskReview.controls.taskTags.label": "Tags:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", "Admin.TaskUploadProgress.tasksUploaded.label": "tarefas carregadas", - "Admin.Challenge.tasksBuilding": "Construção de Tarefas...", - "Admin.Challenge.tasksFailed": "Tarefas Falha ao Construir", - "Admin.Challenge.tasksNone": "Sem tarefas", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Tempo total decorrido:", - "Admin.Challenge.controls.refreshStatus.label": "Atualizando status em", - "Admin.ManageTasks.header": "Tarefas", - "Admin.ManageTasks.geographicIndexingNotice": "Tenha em atenção que pode demorar até {delay} horas a indexar geograficamente desafios novos ou modificados. Seu desafio (e tarefas) pode não aparecer como esperado na navegação específica do local ou nas pesquisas até que a indexação seja concluída.", - "Admin.manageTasks.controls.changePriority.label": "Alterar prioridade", - "Admin.manageTasks.priorityLabel": "Prioridade", - "Admin.manageTasks.controls.clearFilters.label": "Limpar filtros", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspecionar Tarefa", - "Admin.ChallengeTaskMap.controls.editTask.label": "Editar tarefa", - "Admin.Task.fields.name.label": "Tarefa:", - "Admin.Task.fields.status.label": "Status:", - "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", - "Admin.VirtualProject.controls.done.label": "Done", - "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.TaskUploadProgress.uploadingTasks.header": "Reconstruindo Tarefas", "Admin.VirtualProject.ChallengeList.noChallenges": "No Challenges", "Admin.VirtualProject.ChallengeList.search.placeholder": "Search", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Find Challenges", "Admin.VirtualProject.controls.add.label": "Add", + "Admin.VirtualProject.controls.addChallenge.label": "Add Challenge", + "Admin.VirtualProject.controls.done.label": "Done", "Admin.VirtualProject.controls.remove.label": "Remove", - "Widgets.BurndownChartWidget.label": "Gráfico de Burndown", - "Widgets.BurndownChartWidget.title": "Tarefas restantes: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Mapa de calor diário", - "Widgets.CalendarHeatmapWidget.title": "Heatmap Diário: Conclusão de Tarefas", - "Widgets.ChallengeListWidget.label": "Desafios", - "Widgets.ChallengeListWidget.title": "Desafios", - "Widgets.ChallengeListWidget.search.placeholder": "Procurar", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Find Challenges", + "Admin.VirtualProject.manageChallenge.label": "Manage Challenges", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "Reviewed On", + "Admin.manage.header": "Crie e gerencie", + "Admin.manage.virtual": "Virtual", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Visão geral do desafio", - "Widgets.ChallengeOverviewWidget.title": "visão global", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Criado:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modificado:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tarefas atualizadas:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visível", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Tarefas", - "Widgets.ChallengeTasksWidget.title": "Tarefas", - "Widgets.CommentsWidget.label": "Comentários", - "Widgets.CommentsWidget.title": "Comentários", - "Widgets.CommentsWidget.controls.export.label": "Exportar", - "Widgets.LeaderboardWidget.label": "Entre os melhores", - "Widgets.LeaderboardWidget.title": "Entre os melhores", - "Widgets.ProjectAboutWidget.label": "Sobre projetos", - "Widgets.ProjectAboutWidget.title": "Sobre projetos", - "Widgets.ProjectAboutWidget.content": "Os projetos servem como um meio de agrupar desafios relacionados juntos. Todos os\n challenges devem pertencer a um projeto.\n\n Você pode criar quantos projetos forem necessários para organizar seus desafios e\nconvidar outros usuários do MapRoulette para ajudar a gerenciá-los com você.\n\nOs projetos devem ser definidos para visíveis antes de qualquer projeto. desafios dentro deles aparecerão\nna navegação ou pesquisa pública.", - "Widgets.ProjectListWidget.label": "Lista de projetos", - "Widgets.ProjectListWidget.title": "Projetos", - "Widgets.ProjectListWidget.search.placeholder": "Procurar", - "Widgets.ProjectManagersWidget.label": "Gerentes de projeto", - "Admin.ProjectManagers.noManagers": "Sem gerentes", - "Admin.ProjectManagers.addManager": "Adicionar gerente de projeto", - "Admin.ProjectManagers.projectOwner": "Proprietário", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Tem certeza de que deseja remover esse gerente do projeto?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Escolha o papel", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Nome de usuário do OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Team name", - "Admin.ProjectManagers.options.teams.label": "Team", - "Admin.ProjectManagers.options.users.label": "User", - "Admin.ProjectManagers.team.indicator": "Team", - "Widgets.ProjectOverviewWidget.label": "visão global", - "Widgets.ProjectOverviewWidget.title": "visão global", - "Widgets.RecentActivityWidget.label": "Atividade recente", - "Widgets.RecentActivityWidget.title": "Atividade recente", - "Widgets.StatusRadarWidget.label": "Radar de Status", - "Widgets.StatusRadarWidget.title": "Distribuição do status de conclusão", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", + "Admin.manageTasks.controls.changePriority.label": "Alterar prioridade", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Limpar filtros", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Exportar CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Prioridade", "AutosuggestTextBox.labels.noResults": "Sem combinações", - "Form.textUpload.prompt": "Solte o arquivo GeoJSON aqui ou clique para selecionar o arquivo", - "Form.textUpload.readonly": "O arquivo existente será usado", - "Form.controls.addPriorityRule.label": "Adicione uma regra", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Tarefas restantes: {{taskCount, number}", + "BurndownChart.tooltip": "Tarefas restantes", + "CalendarHeatmap.heading": "Mapa de calor diário: Conclusão da tarefa", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Personalizado", + "Challenge.basemap.none": "Nenhum", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Limpar filtros", + "Challenge.controls.loadMore.label": "Mais resultados", + "Challenge.controls.save.label": "Salvar", + "Challenge.controls.start.label": "Começar", + "Challenge.controls.taskLoadBy.label": "Carregar tarefas por:", + "Challenge.controls.unsave.label": "Unsave", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Qualquer", + "Challenge.difficulty.easy": "Fácil", + "Challenge.difficulty.expert": "Especialista", + "Challenge.difficulty.normal": "Normal", "Challenge.fields.difficulty.label": "Dificuldade", "Challenge.fields.lastTaskRefresh.label": "Tarefas de", "Challenge.fields.viewLeaderboard.label": "Visualizar cabeçalho", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "View Leaderboard", - "Project.indicator.label": "Project", - "ChallengeDetails.controls.goBack.label": "Go Back", - "ChallengeDetails.controls.start.label": "Start", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Qualquer coisa", + "Challenge.keywords.buildings": "Edifícios", + "Challenge.keywords.landUse": "Uso da Terra / Limites Administrativos", + "Challenge.keywords.navigation": "Estradas / Pedestres / Ciclovias", + "Challenge.keywords.other": "Outro", + "Challenge.keywords.pointsOfInterest": "Pontos / Áreas de Interesse", + "Challenge.keywords.transit": "Trânsito", + "Challenge.keywords.water": "Água", + "Challenge.location.any": "Em qualquer lugar", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Perto de mim", + "Challenge.location.withinMapBounds": "Dentro dos limites do mapa", + "Challenge.management.controls.manage.label": "Gerir", + "Challenge.results.heading": "Desafios", + "Challenge.results.noResults": "Nenhum resultado", + "Challenge.signIn.label": "Registe-se para começar", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Newest", + "Challenge.sort.default": "Padrão", + "Challenge.sort.name": "Name", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Popular", + "Challenge.status.building": "Edifício", + "Challenge.status.deletingTasks": "Deleting Tasks", + "Challenge.status.failed": "Falhou", + "Challenge.status.finished": "Terminado", + "Challenge.status.none": "Não aplicável", + "Challenge.status.partiallyLoaded": "Parcialmente carregado", + "Challenge.status.ready": "Pronto", + "Challenge.type.challenge": "Desafio", + "Challenge.type.survey": "Pesquisa", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Total Tasks", + "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Go Back", + "ChallengeDetails.controls.start.label": "Start", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Manage", - "ChallengeDetails.Task.fields.featured.label": "Featured", "ChallengeDetails.fields.difficulty.label": "Difficulty", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Tasks From", "ChallengeDetails.fields.viewLeaderboard.label": "View Leaderboard", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Manage", + "ChallengeEndModal.control.dismiss.label": "Continue", "ChallengeEndModal.header": "Challenge End", "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or too hard.", - "ChallengeEndModal.control.dismiss.label": "Continue", - "Task.controls.contactOwner.label": "Proprietário do contato", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Desafios", + "ChallengeFilterSubnav.controls.sortBy.label": "Ordenar por", "ChallengeFilterSubnav.filter.difficulty.label": "Dificuldade", "ChallengeFilterSubnav.filter.keyword.label": "Trabalho em", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "De outros:", "ChallengeFilterSubnav.filter.location.label": "Localização", "ChallengeFilterSubnav.filter.search.label": "Search by name", - "Challenge.controls.clearFilters.label": "Limpar filtros", - "ChallengeFilterSubnav.controls.sortBy.label": "Ordenar por", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "De outros:", - "Challenge.controls.unsave.label": "Unsave", - "Challenge.controls.save.label": "Salvar", - "Challenge.controls.start.label": "Começar", - "Challenge.management.controls.manage.label": "Gerir", - "Challenge.signIn.label": "Registe-se para começar", - "Challenge.results.heading": "Desafios", - "Challenge.results.noResults": "Nenhum resultado", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "Mais resultados", + "ChallengeFilterSubnav.header": "Desafios", + "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", + "ChallengeFilterSubnav.query.searchType.project": "Projects", "ChallengePane.controls.startChallenge.label": "Start Challenge", - "Task.fauxStatus.available": "acessível", - "ChallengeProgress.tooltip.label": "Tarefas", - "ChallengeProgress.tasks.remaining": "Tarefas restantes: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "of {totalCount, number}", - "ChallengeProgress.priority.toggle": "View by Task Priority", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "View by Task Priority", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tarefas restantes: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Tarefas", + "ChallengeProgressBorder.available": "Available", "CommentList.controls.viewTask.label": "Visualizar tarefa", "CommentList.noComments.label": "No Comments", - "ConfigureColumnsModal.header": "Choose Columns to Display", + "CompletionRadar.heading": "Tarefas concluídas: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Available Columns", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Add", - "ConfigureColumnsModal.controls.remove": "Remove", "ConfigureColumnsModal.controls.done.label": "Done", - "ConfirmAction.title": "Are you sure?", - "ConfirmAction.prompt": "This action cannot be undone", + "ConfigureColumnsModal.controls.remove": "Remove", + "ConfigureColumnsModal.header": "Choose Columns to Display", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Cancelar", "ConfirmAction.proceed": "Prosseguir", + "ConfirmAction.prompt": "This action cannot be undone", + "ConfirmAction.title": "Are you sure?", + "CongratulateModal.control.dismiss.label": "Continuar", "CongratulateModal.header": "Parabéns!", "CongratulateModal.primaryMessage": "O desafio está completo", - "CongratulateModal.control.dismiss.label": "Continuar", - "CountryName.ALL": "Todos os países", + "CooperativeWorkControls.controls.confirm.label": "Yes", + "CooperativeWorkControls.controls.moreOptions.label": "Other", + "CooperativeWorkControls.controls.reject.label": "No", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "Emirados Árabes ", "CountryName.AF": "Afeganistão", - "CountryName.AO": "Angola", "CountryName.AL": "Albânia", - "CountryName.AE": "Emirados Árabes ", - "CountryName.AR": "Argentina", + "CountryName.ALL": "Todos os países", "CountryName.AM": "Armênia", + "CountryName.AO": "Angola", "CountryName.AQ": "Antártica", - "CountryName.TF": "Territórios Franceses do Sul", - "CountryName.AU": "Austrália", + "CountryName.AR": "Argentina", "CountryName.AT": "Áustria", + "CountryName.AU": "Austrália", "CountryName.AZ": "Azerbaijão", - "CountryName.BI": "Burundi", + "CountryName.BA": "Bósnia e Herzegovina", + "CountryName.BD": "Bangladesh", "CountryName.BE": "Bélgica", - "CountryName.BJ": "Benin", "CountryName.BF": "Burkina Faso", - "CountryName.BD": "Bangladesh", "CountryName.BG": "Bulgária", - "CountryName.BS": "Bahamas", - "CountryName.BA": "Bósnia e Herzegovina", - "CountryName.BY": "Belarus", - "CountryName.BZ": "Belize", + "CountryName.BI": "Burundi", + "CountryName.BJ": "Benin", + "CountryName.BN": "Brunei", "CountryName.BO": "Bolívia", "CountryName.BR": "Brasil", - "CountryName.BN": "Brunei", + "CountryName.BS": "Bahamas", "CountryName.BT": "Butão", "CountryName.BW": "Botsuana", - "CountryName.CF": "República Centro-Africana", + "CountryName.BY": "Belarus", + "CountryName.BZ": "Belize", "CountryName.CA": "Canadá", + "CountryName.CD": "Congo (Kinshasa)", + "CountryName.CF": "República Centro-Africana", + "CountryName.CG": "Congo (Brazzaville)", "CountryName.CH": "Suíça", - "CountryName.CL": "Chile", - "CountryName.CN": "China", "CountryName.CI": "Costa do Marfim", + "CountryName.CL": "Chile", "CountryName.CM": "Camarões", - "CountryName.CD": "Congo (Kinshasa)", - "CountryName.CG": "Congo (Brazzaville)", + "CountryName.CN": "China", "CountryName.CO": "Colômbia", "CountryName.CR": "Costa Rica", "CountryName.CU": "Cuba", @@ -415,10 +485,10 @@ "CountryName.DO": "República Dominicana", "CountryName.DZ": "Argélia", "CountryName.EC": "Equador", + "CountryName.EE": "Estônia", "CountryName.EG": "Egito", "CountryName.ER": "Eritréia", "CountryName.ES": "Espanha", - "CountryName.EE": "Estônia", "CountryName.ET": "Etiópia", "CountryName.FI": "Finlândia", "CountryName.FJ": "Fiji", @@ -428,57 +498,58 @@ "CountryName.GB": "Reino Unido", "CountryName.GE": "Geórgia", "CountryName.GH": "Gana", - "CountryName.GN": "Guiné", + "CountryName.GL": "Gronelândia", "CountryName.GM": "Gâmbia", - "CountryName.GW": "Guiné Bissau", + "CountryName.GN": "Guiné", "CountryName.GQ": "Guiné Equatorial", "CountryName.GR": "Grécia", - "CountryName.GL": "Gronelândia", "CountryName.GT": "Guatemala", + "CountryName.GW": "Guiné Bissau", "CountryName.GY": "Guiana", "CountryName.HN": "Honduras", "CountryName.HR": "Croácia", "CountryName.HT": "Haiti", "CountryName.HU": "Hungria", "CountryName.ID": "Indonésia", - "CountryName.IN": "India", "CountryName.IE": "Irlanda", - "CountryName.IR": "Iran", + "CountryName.IL": "Israel", + "CountryName.IN": "India", "CountryName.IQ": "Iraque", + "CountryName.IR": "Iran", "CountryName.IS": "Islândia", - "CountryName.IL": "Israel", "CountryName.IT": "Itália", "CountryName.JM": "Jamaica", "CountryName.JO": "Jordânia", "CountryName.JP": "Japão", - "CountryName.KZ": "Cazaquistão", "CountryName.KE": "Quênia", "CountryName.KG": "Quirguistão", "CountryName.KH": "Camboja", + "CountryName.KP": "Coreia do Norte", "CountryName.KR": "Coreia do Sul", "CountryName.KW": "Kuwait", + "CountryName.KZ": "Cazaquistão", "CountryName.LA": "Laos", "CountryName.LB": "Líbano", - "CountryName.LR": "Libéria", - "CountryName.LY": "Líbia", "CountryName.LK": "Sri Lanka", + "CountryName.LR": "Libéria", "CountryName.LS": "Lesoto", "CountryName.LT": "Lituânia", "CountryName.LU": "Luxemburgo", "CountryName.LV": "Letônia", + "CountryName.LY": "Líbia", "CountryName.MA": "Morocco", "CountryName.MD": "Moldova", + "CountryName.ME": "Montenegro", "CountryName.MG": "Madagáscar", - "CountryName.MX": "Mexico", "CountryName.MK": "Macedônia", "CountryName.ML": "Mali", "CountryName.MM": "Myanmar", - "CountryName.ME": "Montenegro", "CountryName.MN": "Mongólia", - "CountryName.MZ": "Moçambique", "CountryName.MR": "Mauritânia", "CountryName.MW": "Malawi", + "CountryName.MX": "Mexico", "CountryName.MY": "Malásia", + "CountryName.MZ": "Moçambique", "CountryName.NA": "Namíbia", "CountryName.NC": "Nova Caledônia", "CountryName.NE": "Níger", @@ -489,460 +560,821 @@ "CountryName.NP": "Nepal", "CountryName.NZ": "Nova Zelândia", "CountryName.OM": "Omã", - "CountryName.PK": "Paquistão", "CountryName.PA": "Panamá", "CountryName.PE": "Peru", - "CountryName.PH": "Filipinas", "CountryName.PG": "Papua Nova Guiné", + "CountryName.PH": "Filipinas", + "CountryName.PK": "Paquistão", "CountryName.PL": "Polônia", "CountryName.PR": "Porto Rico", - "CountryName.KP": "Coreia do Norte", + "CountryName.PS": "Cisjordânia", "CountryName.PT": "Portugal", "CountryName.PY": "Paraguai", "CountryName.QA": "Catar", "CountryName.RO": "Roménia", + "CountryName.RS": "Sérvia", "CountryName.RU": "Rússia", "CountryName.RW": "Ruanda", "CountryName.SA": "Arábia Saudita", - "CountryName.SD": "Sudão", - "CountryName.SS": "Sudão do Sul", - "CountryName.SN": "Senegal", "CountryName.SB": "Ilhas Salomão", + "CountryName.SD": "Sudão", + "CountryName.SE": "Suécia", + "CountryName.SI": "Eslovênia", + "CountryName.SK": "Eslováquia", "CountryName.SL": "Serra Leoa", - "CountryName.SV": "El Salvador", + "CountryName.SN": "Senegal", "CountryName.SO": "Somália", - "CountryName.RS": "Sérvia", "CountryName.SR": "Suriname", - "CountryName.SK": "Eslováquia", - "CountryName.SI": "Eslovênia", - "CountryName.SE": "Suécia", - "CountryName.SZ": "Suazilândia", + "CountryName.SS": "Sudão do Sul", + "CountryName.SV": "El Salvador", "CountryName.SY": "Síria", + "CountryName.SZ": "Suazilândia", "CountryName.TD": "Chade", + "CountryName.TF": "Territórios Franceses do Sul", "CountryName.TG": "Togo", "CountryName.TH": "Tailândia", "CountryName.TJ": "Tajiquistão", - "CountryName.TM": "Turcomenistão", "CountryName.TL": "Timor Leste", - "CountryName.TT": "Trinidad e Tobago", + "CountryName.TM": "Turcomenistão", "CountryName.TN": "Tunísia", "CountryName.TR": "Peru", + "CountryName.TT": "Trinidad e Tobago", "CountryName.TW": "Taiwan", "CountryName.TZ": "Tanzânia", - "CountryName.UG": "Uganda", "CountryName.UA": "Ucrânia", - "CountryName.UY": "Uruguai", + "CountryName.UG": "Uganda", "CountryName.US": "Estados Unidos", + "CountryName.UY": "Uruguai", "CountryName.UZ": "Uzbequistão", "CountryName.VE": "Venezuela", "CountryName.VN": "Vietnã", "CountryName.VU": "Vanuatu", - "CountryName.PS": "Cisjordânia", "CountryName.YE": "Iémen", "CountryName.ZA": "África do Sul", "CountryName.ZM": "Zâmbia", "CountryName.ZW": "Zimbábue", - "FitBoundsControl.tooltip": "Ajustar mapa aos recursos da tarefa", - "LayerToggle.controls.showTaskFeatures.label": "Recursos de Tarefa", - "LayerToggle.controls.showOSMData.label": "Dados OSM", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "More", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(carregando..)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Search", + "Dashboard.ChallengeFilter.pinned.label": "Preso", + "Dashboard.ChallengeFilter.visible.label": "Visível", + "Dashboard.ProjectFilter.owner.label": "proprietário", + "Dashboard.ProjectFilter.pinned.label": "Preso", + "Dashboard.ProjectFilter.visible.label": "Visível", + "Dashboard.header": "Dashboard", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "You've finished", + "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Or find", + "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "something new", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Welcome Back, {username}!", + "Editor.id.label": "Editar no iD (editor da web)", + "Editor.josm.label": "Editar no JOSM", + "Editor.josmFeatures.label": "Editar apenas recursos no JOSM", + "Editor.josmLayer.label": "Editar em uma nova camada do JOSM", + "Editor.level0.label": "Editar no nível 0", + "Editor.none.label": "Nenhum", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "No Results", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Search", "ErrorModal.title": "Oops!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Project", - "FeaturedChallenges.browse": "Explore", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Obter ajuda", - "Footer.reportBug": "Reportar para o bug", - "Footer.joinNewsletter": "Junte-se à Newsletter!", - "Footer.followUs": "Siga-nos", - "Footer.email.placeholder": "Endereço de e-mail", - "Footer.email.submit.label": "Submit", - "HelpPopout.control.label": "Ajuda", - "LayerSource.challengeDefault.label": "Desafio Padrão", - "LayerSource.userDefault.label": "Seu padrão", - "HomePane.header": "Seja um colaborador instantâneo para os mapas do mundo", - "HomePane.feedback.header": "Feedback", - "HomePane.filterTagIntro": "Encontre tarefas que tratam de esforços importantes para você.", - "HomePane.filterLocationIntro": "Faça correções nas áreas locais de seu interesse.", - "HomePane.filterDifficultyIntro": "Trabalhe no seu próprio nível, do iniciante ao especialista.", - "HomePane.createChallenges": "Crie tarefas para outras pessoas para ajudar a melhorar os dados do mapa.", + "Errors.boundedTask.fetchFailure": "Não é possível buscar tarefas limitadas por mapa", + "Errors.challenge.deleteFailure": "Não é possível excluir o desafio.", + "Errors.challenge.doesNotExist": "Esse desafio não existe.", + "Errors.challenge.fetchFailure": "Não é possível recuperar os dados mais recentes do desafio do servidor.", + "Errors.challenge.rebuildFailure": "Não é possível reconstruir tarefas de desafio", + "Errors.challenge.saveFailure": "Não é possível salvar suas alterações{details}", + "Errors.challenge.searchFailure": "Unable to search challenges on server.", + "Errors.clusteredTask.fetchFailure": "Não é possível recuperar os clusters de tarefas", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "O controle remoto do OSM não respondeu. Você tem o JOSM em execução com o Controle Remoto ativado?", + "Errors.leaderboard.fetchFailure": "Não é possível buscar o placar.", + "Errors.map.placeNotFound": "Nenhum resultado encontrado por Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap permitido largura de banda excedida", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Não é possível buscar dados do OpenStreetMap", + "Errors.osm.requestTooLarge": "Pedido de dados do OpenStreetMap muito grande", + "Errors.project.deleteFailure": "Não é possível excluir o projeto.", + "Errors.project.fetchFailure": "Não é possível recuperar os dados mais recentes do projeto do servidor.", + "Errors.project.notManager": "Você deve ser um gerente desse projeto para prosseguir.", + "Errors.project.saveFailure": "Não é possível salvar suas alterações{details}", + "Errors.project.searchFailure": "Não é possível pesquisar projetos.", + "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", + "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", + "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", + "Errors.task.alreadyLocked": "Task has already been locked by someone else.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Não é possível excluir a tarefa.", + "Errors.task.doesNotExist": "Essa tarefa não existe.", + "Errors.task.fetchFailure": "Não é possível buscar uma tarefa para trabalhar.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "Nenhuma tarefa permanece neste desafio.", + "Errors.task.saveFailure": "Não é possível salvar suas alterações{details}", + "Errors.task.updateFailure": "Não é possível salvar suas alterações.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Não é possível buscar dados do usuário no servidor.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "Nenhum local da casa encontrado. Por favor, permita permissão do seu navegador ou defina o local de sua casa nas configurações do openstreetmap.org (você pode sair e entrar novamente no MapRoulette para pegar novas alterações nas suas configurações do OpenStreetMap).", + "Errors.user.notFound": "Nenhum usuário encontrado com esse nome de usuário.", + "Errors.user.unauthenticated": "Por favor, entre para continuar.", + "Errors.user.unauthorized": "Desculpe, você não está autorizado a executar essa ação.", + "Errors.user.updateFailure": "Não é possível atualizar seu usuário no servidor.", + "Errors.virtualChallenge.createFailure": "Não é possível criar um desafio virtual{details}", + "Errors.virtualChallenge.expired": "O desafio virtual expirou.", + "Errors.virtualChallenge.fetchFailure": "Não é possível recuperar os dados mais recentes de desafio virtual do servidor.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Não é possível renderizar o espaço de trabalho. Mudando para um layout de trabalho.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Explore", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Project", + "FitBoundsControl.tooltip": "Ajustar mapa aos recursos da tarefa", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Endereço de e-mail", + "Footer.email.submit.label": "Submit", + "Footer.followUs": "Siga-nos", + "Footer.getHelp": "Obter ajuda", + "Footer.joinNewsletter": "Junte-se à Newsletter!", + "Footer.reportBug": "Reportar para o bug", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Adicione uma regra", + "Form.textUpload.prompt": "Solte o arquivo GeoJSON aqui ou clique para selecionar o arquivo", + "Form.textUpload.readonly": "O arquivo existente será usado", + "General.controls.moreResults.label": "Mais resultados", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Ajuda", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Crie tarefas para outras pessoas para ajudar a melhorar os dados do mapa.", + "HomePane.feedback.header": "Feedback", + "HomePane.filterDifficultyIntro": "Trabalhe no seu próprio nível, do iniciante ao especialista.", + "HomePane.filterLocationIntro": "Faça correções nas áreas locais de seu interesse.", + "HomePane.filterTagIntro": "Encontre tarefas que tratam de esforços importantes para você.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Começar", - "Admin.TaskInspect.controls.previousTask.label": "Tarefa Prévia", - "Admin.TaskInspect.controls.nextTask.label": "Próxima tarefa", - "Admin.TaskInspect.controls.editTask.label": "Editar tarefa", - "Admin.TaskInspect.controls.modifyTask.label": "Modificar tarefa", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Open", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Delete", + "Inbox.controls.groupByTask.label": "Group by Task", + "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", + "Inbox.controls.markSelectedRead.label": "Mark Read", + "Inbox.controls.refreshNotifications.label": "Refresh", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Notifications", + "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.noNotifications": "No Notifications", + "Inbox.notification.controls.deleteNotification.label": "Delete", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "View Task", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", + "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", + "Inbox.tableHeaders.challengeName": "Challenge", + "Inbox.tableHeaders.controls": "Actions", + "Inbox.tableHeaders.created": "Sent", + "Inbox.tableHeaders.fromUsername": "From", + "Inbox.tableHeaders.isRead": "Read", + "Inbox.tableHeaders.notificationType": "Type", + "Inbox.tableHeaders.taskId": "Task", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Alternar Camada Mapilar", + "KeyMapping.layers.layerOSMData": "Alternar camada de dados do OSM", + "KeyMapping.layers.layerTaskFeatures": "Alternar Camada de Recursos", + "KeyMapping.openEditor.editId": "Editar no ID", + "KeyMapping.openEditor.editJosm": "Editar no JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Editar apenas recursos no JOSM", + "KeyMapping.openEditor.editJosmLayer": "Editar na nova camada do JOSM", + "KeyMapping.openEditor.editLevel0": "Editar no nível 0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Já fixa", + "KeyMapping.taskCompletion.confirmSubmit": "Submit", + "KeyMapping.taskCompletion.falsePositive": "Não é um problema", + "KeyMapping.taskCompletion.fixed": "Eu consertei isso!", + "KeyMapping.taskCompletion.skip": "Pular", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Cancelar edição", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Ajustar Mapa aos Recursos da Tarefa", + "KeyMapping.taskInspect.nextTask": "Próxima tarefa", + "KeyMapping.taskInspect.prevTask": "Tarefa Anterior", + "KeyboardShortcuts.control.label": "Atalhos de Teclado", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Adicionar palavra-chave", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Choose Tags", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Search", - "General.controls.moreResults.label": "Mais resultados", + "LayerSource.challengeDefault.label": "Desafio Padrão", + "LayerSource.userDefault.label": "Seu padrão", + "LayerToggle.controls.more.label": "More", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "Dados OSM", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Recursos de Tarefa", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(carregando..)", + "Leaderboard.controls.loadMore.label": "Mostrar mais", + "Leaderboard.global": "Global", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Método de pontuação", + "Leaderboard.title": "Leaderboard", + "Leaderboard.updatedDaily": "Atualizado a cada 24 horas", + "Leaderboard.updatedFrequently": "Atualizado a cada 15 minutos", + "Leaderboard.user.points": "Pontos", + "Leaderboard.user.topChallenges": "Principais Desafios", + "Leaderboard.users.none": "Nenhum usuário por período de tempo", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Russian - Russia)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Completed Tasks", + "Metrics.leaderboard.globalRank.label": "Global Rank", + "Metrics.leaderboard.topChallenges.label": "Top Challenges", + "Metrics.leaderboard.totalPoints.label": "Total Points", + "Metrics.leaderboardTitle": "Leaderboard", + "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Tasks that failed", + "Metrics.reviewedTasksTitle": "Review Status", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", + "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userSince": "User since:", "MobileNotSupported.header": "Por favor, visite em seu computador", "MobileNotSupported.message": "Desculpe, MapRoulette atualmente não suporta dispositivos móveis.", "MobileNotSupported.pageMessage": "Desculpe, esta página ainda não é compatível com dispositivos móveis e telas menores.", "MobileNotSupported.widenDisplay": "Se estiver usando um computador, amplie sua janela ou use um monitor maior.", - "Navbar.links.dashboard": "Dashboard", + "MobileTask.subheading.instructions": "Instruções", + "Navbar.links.admin": "Crie e gerencie", "Navbar.links.challengeResults": "Encontre desafios", - "Navbar.links.leaderboard": "Cabeçalho", + "Navbar.links.dashboard": "Dashboard", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Aprender", "Navbar.links.inbox": "Inbox", + "Navbar.links.leaderboard": "Cabeçalho", "Navbar.links.review": "Review", - "Navbar.links.admin": "Crie e gerencie", - "Navbar.links.help": "Aprender", - "Navbar.links.userProfile": "Configurações do usuário", - "Navbar.links.userMetrics": "User Metrics", "Navbar.links.signout": "Sair", - "PageNotFound.message": "Desculpe, nada aqui além de mar aberto.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "User Metrics", + "Navbar.links.userProfile": "Configurações do usuário", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Review", + "Notification.type.review.approved": "Approved", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "System", + "Notification.type.team": "Team", "PageNotFound.homePage": "Take me home", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PageNotFound.message": "Desculpe, nada aqui além de mar aberto.", + "Pages.SignIn.modal.prompt": "Please sign in to continue", + "Pages.SignIn.modal.title": "Welcome Back!", "PastDurationSelector.allTime.selectOption": "All Time", + "PastDurationSelector.currentMonth.selectOption": "Current Month", + "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.customRange.endDate": "End Date", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Start Date", - "PastDurationSelector.customRange.endDate": "End Date", - "PastDurationSelector.customRange.controls.search.label": "Search", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "Meus pontos", "PopularChallenges.header": "Desafios Populares", "PopularChallenges.none": "No Challenges", + "Profile.apiKey.controls.copy.label": "Copiar", + "Profile.apiKey.controls.reset.label": "Reset", + "Profile.apiKey.header": "Chave de API", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Basemap personalizado", + "Profile.form.defaultBasemap.description": "Selecione o mapa base padrão para exibir no mapa. Apenas um mapa base de desafio padrão substituirá a opção selecionada aqui.", + "Profile.form.defaultBasemap.label": "Mapa Base Padrão", + "Profile.form.defaultEditor.description": "Selecione o editor padrão que você deseja usar ao corrigir tarefas. Ao selecionar esta opção, você poderá pular a caixa de diálogo de seleção do editor depois de clicar em editar em uma tarefa.", + "Profile.form.defaultEditor.label": "Editor padrão", + "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.label": "Email address", + "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", + "Profile.form.isReviewer.label": "Volunteer as a Reviewer", + "Profile.form.leaderboardOptOut.description": "Se sim, você ** não ** aparecerá na tabela de classificação pública.", + "Profile.form.leaderboardOptOut.label": "Desativar o placar", + "Profile.form.locale.description": "Localidade do usuário para usar na interface do usuário do MapRoulette.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Mandatory", + "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", + "Profile.form.needsReview.label": "Request Review of all Work", + "Profile.form.no.label": "No", + "Profile.form.notification.label": "Notification", + "Profile.form.notificationSubscriptions.description": "Decide 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.notificationSubscriptions.label": "Notification Subscriptions", + "Profile.form.yes.label": "Yes", + "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "General", + "Profile.userSince": "Usuário desde:", + "Project.fields.viewLeaderboard.label": "View Leaderboard", + "Project.indicator.label": "Project", "ProjectDetails.controls.goBack.label": "Go Back", - "ProjectDetails.controls.unsave.label": "Unsave", "ProjectDetails.controls.save.label": "Save", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Start", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Unsave", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Created", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Modified", "ProjectDetails.fields.viewLeaderboard.label": "View Leaderboard", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Update Review Status", - "Admin.TaskReview.controls.currentTaskStatus.label": "Task Status:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Review Status:", - "Admin.TaskReview.controls.taskTags.label": "Tags:", - "Admin.TaskReview.controls.reviewNotRequested": "A review has not been requested for this task.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "This task is currently being reviewed by someone else.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "You cannot review tasks you mapped.", - "Admin.TaskReview.controls.taskNotCompleted": "This task is not ready for review as it has not been completed yet.", - "Admin.TaskReview.controls.approved": "Approve", - "Admin.TaskReview.controls.rejected": "Reject", - "Admin.TaskReview.controls.approvedWithFixes": "Approve (with fixes)", - "Admin.TaskReview.controls.startReview": "Start Review", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Submit for Review Again", - "ReviewTaskPane.indicators.locked.label": "Task locked", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Start", + "ProjectPickerModal.chooseProject": "Choose a Project", + "ProjectPickerModal.noProjects": "No projects found", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Reconstruir Tarefas", + "RebuildTasksControl.modal.controls.cancel.label": "Cancelar", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Prosseguir", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "First remove incomplete tasks", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "A reconstrução permitirá que você carregue um novo arquivo local com os dados mais recentes do GeoJSON e reconstrua as tarefas de desafio:", + "RebuildTasksControl.modal.intro.overpass": "A reconstrução executará novamente a consulta Overpass e reconstruirá as tarefas de desafio com os dados mais recentes:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Learn More](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Recriar Tarefas do Desafio", + "RebuildTasksControl.modal.warning": "Aviso: a reconstrução pode levar à duplicação de tarefas se os IDs do seu recurso não forem configurados corretamente ou se a correspondência de dados antigos com novos dados não for bem-sucedida. Esta operação não pode ser desfeita!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", + "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Internal Id", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", + "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", + "Review.TaskAnalysisTable.controls.viewTask.label": "View", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Actions", + "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", + "Review.TaskAnalysisTable.noTasks": "No tasks found", + "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", + "Review.TaskAnalysisTable.refresh": "Refresh", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", + "Review.TaskAnalysisTable.reviewerControls.label": "Actions", + "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", + "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", + "Review.fields.challenge.label": "Challenge", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Priority", + "Review.fields.project.label": "Project", + "Review.fields.requestedBy.label": "Mapper", + "Review.fields.reviewStatus.label": "Review Status", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Reviewer", + "Review.fields.status.label": "Status", + "Review.fields.tags.label": "Tags", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "All Challenges", + "Review.tableFilter.reviewByAllProjects": "All Projects", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "View all tasks", + "Review.tablefilter.chooseFilter": "Choose project or challenge", + "ReviewMap.metrics.title": "Review Map", + "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", + "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", + "ReviewStatus.metrics.fixed": "FIXED", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "View by Task Priority", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Review Status", + "ReviewStatus.metrics.tooHard": "TOO HARD", "ReviewTaskPane.controls.unlock.label": "Unlock", + "ReviewTaskPane.indicators.locked.label": "Task locked", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "No Challenges", "SavedChallenges.widget.startChallenge": "Start Challenge", - "UserProfile.savedTasks.header": "Tarefas Rastreadas", - "Task.unsave.control.tooltip": "Parar de Acompanhar", "SavedTasks.widget.noTasks": "No Tasks", "SavedTasks.widget.viewTask": "View Task", "ScreenTooNarrow.header": "Por favor, amplie a janela do seu navegador", "ScreenTooNarrow.message": "Esta página ainda não é compatível com telas menores. Por favor, expanda a janela do seu navegador ou mude para um dispositivo maior ou exibição.", - "ChallengeFilterSubnav.query.searchType.project": "Projects", - "ChallengeFilterSubnav.query.searchType.challenge": "Challenges", "ShareLink.controls.copy.label": "Copy", "SignIn.control.label": "Entrar", "SignIn.control.longLabel": "Inicie sessão para começar", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Current", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Cancelar", + "StepNavigation.controls.finish.label": "Terminar", + "StepNavigation.controls.next.label": "Próximo", + "StepNavigation.controls.prev.label": "Anterior", + "Subscription.type.dailyEmail": "Receive and email daily", + "Subscription.type.ignore": "Ignore", + "Subscription.type.immediateEmail": "Receive and email immediately", + "Subscription.type.noEmail": "Receive but do not email", + "TagDiffVisualization.controls.addTag.label": "Add Tag", + "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", "TagDiffVisualization.controls.editTags.tooltip": "Edit tags", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Add Tag", - "TagDiffVisualization.controls.deleteTag.tooltip": "Delete tag", - "TagDiffVisualization.controls.saveEdits.label": "Done", - "TagDiffVisualization.controls.cancelEdits.label": "Cancel", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Done", + "TagDiffVisualization.controls.tagList.tooltip": "View as tag list", "TagDiffVisualization.controls.tagName.placeholder": "Tag Name", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Ações", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "ID interno", - "Task.fields.featureId.label": "ID do recurso", - "Task.fields.status.label": "Status", - "Task.fields.priority.label": "Prioridade", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Review Status", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Mapper", - "Task.fields.reviewedBy.label": "Reviewer", - "Admin.fields.reviewedAt.label": "Reviewed On", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Tags", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspecionar", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Admin.TaskAnalysisTable.controls.editTask.label": "Editar", - "Admin.TaskAnalysisTable.controls.startTask.label": "Start", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Select tasks", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Change status to", - "Admin.manageTasks.controls.chooseStatus.label": "Choose ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Hide Review Columns", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Exportar CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Export GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Review Map", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", - "TaskClusterMap.message.or.label": "or", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "Task.controls.completionComment.placeholder": "Seu comentário", - "Task.comments.comment.controls.submit.label": "Submit", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Comments", - "TaskConfirmationModal.header": "Please Confirm", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", - "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", - "TaskConfirmationModal.comment.label": "Leave optional comment", - "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", - "TaskConfirmationModal.loadBy.label": "Next task:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Cancel", - "TaskConfirmationModal.submit.label": "Submit", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", - "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", - "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Done", - "TaskConfirmationModal.useChallenge.label": "Use current challenge", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Status:", - "TaskConfirmationModal.priority.label": "Priority:", - "TaskConfirmationModal.challenge.label": "Challenge:", - "TaskConfirmationModal.mapper.label": "Mapper:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Yes", - "CooperativeWorkControls.controls.reject.label": "No", - "CooperativeWorkControls.controls.moreOptions.label": "Other", - "Task.markedAs.label": "Tarefa marcada como", - "Task.requestReview.label": "request review?", + "TagDiffVisualization.current.label": "Current", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Task is awaiting review.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "Mais opções", + "Task.comments.comment.controls.submit.label": "Submit", "Task.controls.alreadyFixed.label": "Já corrigido", "Task.controls.alreadyFixed.tooltip": "Já corrigido", "Task.controls.cancelEditing.label": "Cancelar edição", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "Eu consertei!", - "ActiveTask.controls.notFixed.label": "Muito difícil / não foi possível ver", - "ActiveTask.controls.aleadyFixed.label": "Já corrigido", - "ActiveTask.controls.cancelEditing.label": "Voltar", + "Task.controls.completionComment.placeholder": "Seu comentário", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Proprietário do contato", "Task.controls.edit.label": "Editar", "Task.controls.edit.tooltip": "Editar", "Task.controls.falsePositive.label": "Não é um problema", "Task.controls.falsePositive.tooltip": "Não é um problema", "Task.controls.fixed.label": "Eu consertei!", "Task.controls.fixed.tooltip": "Eu consertei!", + "Task.controls.moreOptions.label": "Mais opções", "Task.controls.next.label": "Próxima tarefa", - "Task.controls.next.tooltip": "Próxima tarefa", "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.tooltip": "Próxima tarefa", "Task.controls.nextNearby.label": "Select next nearby task", + "Task.controls.revised.dispute": "Disagree with review", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Disagree with review", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Skip", "Task.controls.skip.tooltip": "Ignorar tarefa", - "Task.controls.tooHard.label": "Muito difícil / não pode ver", - "Task.controls.tooHard.tooltip": "Muito difícil / não pode ver", - "KeyboardShortcuts.control.label": "Atalhos de Teclado", - "ActiveTask.keyboardShortcuts.label": "Visualizar atalhos de teclado", - "ActiveTask.controls.info.tooltip": "Detalhes da Tarefa", - "ActiveTask.controls.comments.tooltip": "Ver Comentários", - "ActiveTask.subheading.comments": "Comentários", - "ActiveTask.heading": "Informação do Desafio", - "ActiveTask.subheading.instructions": "Instruções", - "ActiveTask.subheading.location": "Localização", - "ActiveTask.subheading.progress": "Desafio Progresso", - "ActiveTask.subheading.social": "Share", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Task locked", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Unlock", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Unable to Lock Task", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Save Changes", - "MobileTask.subheading.instructions": "Instruções", - "Task.management.heading": "Opções de gerenciamento", - "Task.management.controls.inspect.label": "Inspecionar", - "Task.management.controls.modify.label": "Modificar", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status:", - "Challenge.controls.taskLoadBy.label": "Carregar tarefas por:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Acompanhar esta tarefa", "Task.controls.untrack.label": "Parar de acompanhar esta tarefa", - "TaskPropertyQueryBuilder.controls.search": "Search", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "acessível", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "ID do recurso", + "Task.fields.id.label": "ID interno", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "Prioridade", + "Task.fields.requestedBy.label": "Mapper", + "Task.fields.reviewStatus.label": "Review Status", + "Task.fields.reviewedBy.label": "Reviewer", + "Task.fields.status.label": "Status", + "Task.loadByMethod.proximity": "Proximidade", + "Task.loadByMethod.random": "Aleatória", + "Task.management.controls.inspect.label": "Inspecionar", + "Task.management.controls.modify.label": "Modificar", + "Task.management.heading": "Opções de gerenciamento", + "Task.markedAs.label": "Tarefa marcada como", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Save Changes", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Unlock", + "Task.pane.indicators.locked.label": "Task locked", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Unable to Lock Task", + "Task.priority.high": "Alto", + "Task.priority.low": "Baixo", + "Task.priority.medium": "Médio", + "Task.property.operationType.and": "and", + "Task.property.operationType.or": "or", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "request review?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Back to Inbox", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Approved", + "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Review Requested", + "Task.reviewStatus.rejected": "Needs Revision", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Review not yet requested", + "Task.status.alreadyFixed": "Já fixa", + "Task.status.created": "Criado", + "Task.status.deleted": "Excluído", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Não é um problema", + "Task.status.fixed": "Corrigido", + "Task.status.skipped": "Pulou", + "Task.status.tooHard": "Demasiado difícil", + "Task.taskTags.add.label": "Add MR Tags", + "Task.taskTags.addTags.placeholder": "Add MR Tags", + "Task.taskTags.cancel.label": "Cancel", + "Task.taskTags.label": "MR Tags:", + "Task.taskTags.modify.label": "Modify MR Tags", + "Task.taskTags.save.label": "Save", + "Task.taskTags.update.label": "Update MR Tags", + "Task.unsave.control.tooltip": "Parar de Acompanhar", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", + "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.or.label": "or", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Comments", + "TaskConfirmationModal.addTags.placeholder": "Add MR Tags", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Cancel", + "TaskConfirmationModal.challenge.label": "Challenge:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Leave optional comment", + "TaskConfirmationModal.comment.placeholder": "Your comment (optional)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Please Confirm Review Disagreement", + "TaskConfirmationModal.done.label": "Done", + "TaskConfirmationModal.header": "Please Confirm", + "TaskConfirmationModal.inReviewHeader": "Please Confirm Review", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Next task:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Mapper:", + "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Priority:", + "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.submit.label": "Submit", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Use current challenge", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Search", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Status existente", - "ActiveTask.controls.status.tooltip": "Status existente", - "ActiveTask.controls.viewChangset.label": "Visualizar conjunto de alterações", - "Task.taskTags.label": "MR Tags:", - "Task.taskTags.add.label": "Add MR Tags", - "Task.taskTags.update.label": "Update MR Tags", - "Task.taskTags.save.label": "Save", - "Task.taskTags.cancel.label": "Cancel", - "Task.taskTags.modify.label": "Modify MR Tags", - "Task.taskTags.addTags.placeholder": "Add MR Tags", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Popular", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Name", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Description", - "Team.description.description": "A brief description of the team", - "Team.controls.save.label": "Save", + "Team.Status.invited": "Invited", + "Team.Status.member": "Member", + "Team.activeMembers.header": "Active Members", + "Team.addMembers.header": "Invite New Member", + "Team.controls.acceptInvite.label": "Join Team", "Team.controls.cancel.label": "Cancel", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Delete Team", + "Team.controls.edit.label": "Edit Team", + "Team.controls.leave.label": "Leave Team", + "Team.controls.save.label": "Save", + "Team.controls.view.label": "View Team", + "Team.description.description": "A brief description of the team", + "Team.description.label": "Description", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Join Team", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Remove User", "Team.member.controls.leave.label": "Leave Team", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Name", "Team.noTeams": "You are not a member of any teams", - "Team.controls.view.label": "View Team", - "Team.controls.edit.label": "Edit Team", - "Team.controls.delete.label": "Delete Team", - "Team.controls.acceptInvite.label": "Join Team", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Leave Team", - "Team.activeMembers.header": "Active Members", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Invite New Member", - "UserProfile.topChallenges.header": "Seus principais desafios", "TopUserChallenges.widget.label": "Seus principais desafios", "TopUserChallenges.widget.noChallenges": "No Challenges", "UserEditorSelector.currentEditor.label": "Editor atual:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Desafio Virtual", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Tarefas Rastreadas", + "UserProfile.topChallenges.header": "Seus principais desafios", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Adicionar Widget", + "WidgetWorkspace.controls.addConfiguration.label": "Adicionar novo layout", + "WidgetWorkspace.controls.deleteConfiguration.label": "Excluir layout", + "WidgetWorkspace.controls.editConfiguration.label": "Editar layout", + "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", + "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", + "WidgetWorkspace.controls.resetConfiguration.label": "Redefinir layout para padrão", + "WidgetWorkspace.controls.saveConfiguration.label": "Concluído Edição", + "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", + "WidgetWorkspace.exportModal.controls.download.label": "Download", + "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", + "WidgetWorkspace.exportModal.header": "Export your Layout", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", + "WidgetWorkspace.importModal.header": "Import a Layout", + "WidgetWorkspace.labels.currentlyUsing": "Layout atual:", + "WidgetWorkspace.labels.switchTo": "Mude para:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Gráfico de Burndown", + "Widgets.BurndownChartWidget.title": "Tarefas restantes: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Mapa de calor diário", + "Widgets.CalendarHeatmapWidget.title": "Heatmap Diário: Conclusão de Tarefas", + "Widgets.ChallengeListWidget.label": "Desafios", + "Widgets.ChallengeListWidget.search.placeholder": "Procurar", + "Widgets.ChallengeListWidget.title": "Desafios", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Criado:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Visível", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Keywords:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Modificado:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Status:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Tarefas atualizadas:", + "Widgets.ChallengeOverviewWidget.label": "Visão geral do desafio", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "visão global", "Widgets.ChallengeShareWidget.label": "Compartilhamento Social", "Widgets.ChallengeShareWidget.title": "Compartilhar", + "Widgets.ChallengeTasksWidget.label": "Tarefas", + "Widgets.ChallengeTasksWidget.title": "Tarefas", + "Widgets.CommentsWidget.controls.export.label": "Exportar", + "Widgets.CommentsWidget.label": "Comentários", + "Widgets.CommentsWidget.title": "Comentários", "Widgets.CompletionProgressWidget.label": "Progresso de Conclusão", - "Widgets.CompletionProgressWidget.title": "Progresso de Conclusão", "Widgets.CompletionProgressWidget.noTasks": "Desafio não tem tarefas", + "Widgets.CompletionProgressWidget.title": "Progresso de Conclusão", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Atalhos de Teclado", "Widgets.KeyboardShortcutsWidget.title": "Atalhos de Teclado", + "Widgets.LeaderboardWidget.label": "Entre os melhores", + "Widgets.LeaderboardWidget.title": "Entre os melhores", + "Widgets.ProjectAboutWidget.content": "Os projetos servem como um meio de agrupar desafios relacionados juntos. Todos os\n challenges devem pertencer a um projeto.\n\n Você pode criar quantos projetos forem necessários para organizar seus desafios e\nconvidar outros usuários do MapRoulette para ajudar a gerenciá-los com você.\n\nOs projetos devem ser definidos para visíveis antes de qualquer projeto. desafios dentro deles aparecerão\nna navegação ou pesquisa pública.", + "Widgets.ProjectAboutWidget.label": "Sobre projetos", + "Widgets.ProjectAboutWidget.title": "Sobre projetos", + "Widgets.ProjectListWidget.label": "Lista de projetos", + "Widgets.ProjectListWidget.search.placeholder": "Procurar", + "Widgets.ProjectListWidget.title": "Projetos", + "Widgets.ProjectManagersWidget.label": "Gerentes de projeto", + "Widgets.ProjectOverviewWidget.label": "visão global", + "Widgets.ProjectOverviewWidget.title": "visão global", + "Widgets.RecentActivityWidget.label": "Atividade recente", + "Widgets.RecentActivityWidget.title": "Atividade recente", "Widgets.ReviewMap.label": "Review Map", "Widgets.ReviewStatusMetricsWidget.label": "Review Status Metrics", "Widgets.ReviewStatusMetricsWidget.title": "Review Status", "Widgets.ReviewTableWidget.label": "Review Table", "Widgets.ReviewTaskMetricsWidget.label": "Review Task Metrics", "Widgets.ReviewTaskMetricsWidget.title": "Task Status", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Done", "Widgets.SnapshotProgressWidget.exportCSV.label": "Export CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Radar de Status", + "Widgets.StatusRadarWidget.title": "Distribuição do status de conclusão", "Widgets.TagDiffWidget.controls.viewAllTags.label": "Show all Tags", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selected", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Priority:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Status:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Conclusão", - "Widgets.TaskCompletionWidget.title": "Conclusão", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspecionar", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspecionar", + "Widgets.TaskCompletionWidget.label": "Conclusão", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Cancel Selection", - "Widgets.TaskHistoryWidget.label": "Task History", - "Widgets.TaskHistoryWidget.title": "History", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Conclusão", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "Task History", + "Widgets.TaskHistoryWidget.title": "History", "Widgets.TaskInstructionsWidget.label": "Instruções", "Widgets.TaskInstructionsWidget.title": "Instruções", "Widgets.TaskLocationWidget.label": "Localização", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Tarefa", "Widgets.TaskMoreOptionsWidget.label": "Mais opções", "Widgets.TaskMoreOptionsWidget.title": "Mais opções", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Current Task", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "No nearby tasks are available.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Task Review", "Widgets.TaskReviewWidget.reviewTaskTitle": "Review", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Status da Tarefa", "Widgets.TaskStatusWidget.title": "Status da Tarefa", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", + "Widgets.TeamsWidget.createTeamTitle": "Create New Team", + "Widgets.TeamsWidget.editTeamTitle": "Edit Team", "Widgets.TeamsWidget.label": "Teams", "Widgets.TeamsWidget.myTeamsTitle": "My Teams", - "Widgets.TeamsWidget.editTeamTitle": "Edit Team", - "Widgets.TeamsWidget.createTeamTitle": "Create New Team", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "My Teams", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Editar layout", - "WidgetWorkspace.controls.saveConfiguration.label": "Concluído Edição", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Adicionar novo layout", - "WidgetWorkspace.controls.deleteConfiguration.label": "Excluir layout", - "WidgetWorkspace.controls.resetConfiguration.label": "Redefinir layout para padrão", - "WidgetWorkspace.controls.exportConfiguration.label": "Export Layout", - "WidgetWorkspace.controls.importConfiguration.label": "Import Layout", - "WidgetWorkspace.labels.currentlyUsing": "Layout atual:", - "WidgetWorkspace.labels.switchTo": "Mude para:", - "WidgetWorkspace.exportModal.header": "Export your Layout", - "WidgetWorkspace.exportModal.fields.name.label": "Name of Layout", - "WidgetWorkspace.exportModal.controls.cancel.label": "Cancel", - "WidgetWorkspace.exportModal.controls.download.label": "Download", - "WidgetWorkspace.importModal.header": "Import a Layout", - "WidgetWorkspace.importModal.controls.upload.label": "Click to Upload File", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Os atalhos do Overpass Turbo não são suportados. Se você quiser usá-los, visite o Turbo Overpass e teste sua consulta, em seguida escolha Export -> Query -> Standalone -> Copy e cole isso aqui.", - "Dashboard.header": "Dashboard", - "Dashboard.header.welcomeBack": "Welcome Back, {username}!", - "Dashboard.header.completionPrompt": "You've finished", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Earn points by completing challenge tasks!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Or find", - "Dashboard.header.somethingNew": "something new", - "Dashboard.header.controls.findChallenge.label": "Discover new Challenges", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Notifications", - "Inbox.controls.refreshNotifications.label": "Refresh", - "Inbox.controls.groupByTask.label": "Group by Task", - "Inbox.controls.manageSubscriptions.label": "Manage Subscriptions", - "Inbox.controls.markSelectedRead.label": "Mark Read", - "Inbox.controls.deleteSelected.label": "Delete", - "Inbox.tableHeaders.notificationType": "Type", - "Inbox.tableHeaders.created": "Sent", - "Inbox.tableHeaders.fromUsername": "From", - "Inbox.tableHeaders.challengeName": "Challenge", - "Inbox.tableHeaders.isRead": "Read", - "Inbox.tableHeaders.taskId": "Task", - "Inbox.tableHeaders.controls": "Actions", - "Inbox.actions.openNotification.label": "Open", - "Inbox.noNotifications": "No Notifications", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", - "Inbox.reviewApprovedNotification.lead": "Good news! Your task work has been reviewed and approved.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Your task work has been approved (with some fixes made for you by the reviewer).", - "Inbox.reviewRejectedNotification.lead": "Following a review of your task, the reviewer has determined that it needs some additional work.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Delete", - "Inbox.notification.controls.viewTask.label": "View Task", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Leaderboard", - "Leaderboard.global": "Global", - "Leaderboard.scoringMethod.label": "Método de pontuação", - "Leaderboard.scoringMethod.explanation": "##### Pontos são concedidos por tarefa concluída da seguinte forma:\n\n| Status | Points |\n| :------------ | -----: |\n| Fixed | 5 |\n| Not an Issue | 3 |\n| Already Fixed | 3 |\n| Too Hard | 1 |\n| Skipped | 0 |", - "Leaderboard.user.points": "Pontos", - "Leaderboard.user.topChallenges": "Principais Desafios", - "Leaderboard.users.none": "Nenhum usuário por período de tempo", - "Leaderboard.controls.loadMore.label": "Mostrar mais", - "Leaderboard.updatedFrequently": "Atualizado a cada 15 minutos", - "Leaderboard.updatedDaily": "Atualizado a cada 24 horas", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", - "Metrics.userSince": "User since:", - "Metrics.totalCompletedTasksTitle": "Total Completed Tasks", - "Metrics.completedTasksTitle": "Completed Tasks", - "Metrics.reviewedTasksTitle": "Review Status", - "Metrics.leaderboardTitle": "Leaderboard", - "Metrics.leaderboard.globalRank.label": "Global Rank", - "Metrics.leaderboard.totalPoints.label": "Total Points", - "Metrics.leaderboard.topChallenges.label": "Top Challenges", - "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", - "Metrics.reviewStats.rejected.label": "Tasks that failed", - "Metrics.reviewStats.assisted.label": "Reviewed tasks that passed with changes", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Tasks that are awaiting review", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "General", - "Profile.noUser": "User not found or you are unauthorized to view this user.", - "Profile.userSince": "Usuário desde:", - "Profile.form.defaultEditor.label": "Editor padrão", - "Profile.form.defaultEditor.description": "Selecione o editor padrão que você deseja usar ao corrigir tarefas. Ao selecionar esta opção, você poderá pular a caixa de diálogo de seleção do editor depois de clicar em editar em uma tarefa.", - "Profile.form.defaultBasemap.label": "Mapa Base Padrão", - "Profile.form.defaultBasemap.description": "Selecione o mapa base padrão para exibir no mapa. Apenas um mapa base de desafio padrão substituirá a opção selecionada aqui.", - "Profile.form.customBasemap.label": "Basemap personalizado", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "Localidade do usuário para usar na interface do usuário do MapRoulette.", - "Profile.form.leaderboardOptOut.label": "Desativar o placar", - "Profile.form.leaderboardOptOut.description": "Se sim, você ** não ** aparecerá na tabela de classificação pública.", - "Profile.apiKey.header": "Chave de API", - "Profile.apiKey.controls.copy.label": "Copiar", - "Profile.apiKey.controls.reset.label": "Reset", - "Profile.form.needsReview.label": "Request Review of all Work", - "Profile.form.needsReview.description": "Automatically request a human review of each task you complete", - "Profile.form.isReviewer.label": "Volunteer as a Reviewer", - "Profile.form.isReviewer.description": "Volunteer to review tasks for which a review has been requested", - "Profile.form.email.label": "Email address", - "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.notification.label": "Notification", - "Profile.form.notificationSubscriptions.label": "Notification Subscriptions", - "Profile.form.notificationSubscriptions.description": "Decide 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.yes.label": "Yes", - "Profile.form.no.label": "No", - "Profile.form.mandatory.label": "Mandatory", - "Review.Dashboard.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.Dashboard.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.Dashboard.myReviewTasks": "My Reviewed Tasks", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Review Status", - "ReviewStatus.metrics.awaitingReview": "Tasks awaiting review", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "FIXED", - "ReviewStatus.metrics.falsePositive": "NOT AN ISSUE", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", - "ReviewStatus.metrics.tooHard": "TOO HARD", - "ReviewStatus.metrics.priority.toggle": "View by Task Priority", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "View by Task Status", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "No tasks found", - "Review.TaskAnalysisTable.refresh": "Refresh", - "Review.TaskAnalysisTable.startReviewing": "Review these Tasks", - "Review.TaskAnalysisTable.onlySavedChallenges": "Limit to favorite challenges", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "You have not reviewed any tasks.", - "Review.TaskAnalysisTable.noTasksReviewed": "None of your mapped tasks have been reviewed.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", - "Review.TaskAnalysisTable.myReviewTasks": "My Mapped Tasks after Review", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Actions", - "Review.TaskAnalysisTable.columnHeaders.comments": "Comments", - "Review.TaskAnalysisTable.mapperControls.label": "Actions", - "Review.TaskAnalysisTable.reviewerControls.label": "Actions", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Actions", - "Review.Task.fields.id.label": "Internal Id", - "Review.fields.status.label": "Status", - "Review.fields.priority.label": "Priority", - "Review.fields.reviewStatus.label": "Review Status", - "Review.fields.requestedBy.label": "Mapper", - "Review.fields.reviewedBy.label": "Reviewer", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Review", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "View", - "Review.TaskAnalysisTable.controls.fixTask.label": "Fix", - "Review.fields.challenge.label": "Challenge", - "Review.fields.project.label": "Project", - "Review.fields.tags.label": "Tags", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "View all tasks", - "Review.tablefilter.chooseFilter": "Choose project or challenge", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "All Challenges", - "Review.tableFilter.reviewByAllProjects": "All Projects", - "Pages.SignIn.modal.title": "Welcome Back!", - "Pages.SignIn.modal.prompt": "Please sign in to continue", - "Activity.action.updated": "Atualizado", - "Activity.action.created": "Criado", - "Activity.action.deleted": "Excluído", - "Activity.action.taskViewed": "Visto", - "Activity.action.taskStatusSet": "Definir status no", - "Activity.action.tagAdded": "Tag adicionado para", - "Activity.action.tagRemoved": "Tag removido de", - "Activity.action.questionAnswered": "Pergunta respondida em", - "Activity.item.project": "Projeto", - "Activity.item.challenge": "Desafio", - "Activity.item.task": "Tarefa", - "Activity.item.tag": "Tag", - "Activity.item.survey": "Pesquisa", - "Activity.item.user": "Usuário", - "Activity.item.group": "Grupo", - "Activity.item.virtualChallenge": "Virtual Challenge", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "Nenhum", - "Admin.Challenge.basemap.none": "Padrão do usuário", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Personalizado", - "Challenge.difficulty.easy": "Fácil", - "Challenge.difficulty.normal": "Normal", - "Challenge.difficulty.expert": "Especialista", - "Challenge.difficulty.any": "Qualquer", - "Challenge.keywords.navigation": "Estradas / Pedestres / Ciclovias", - "Challenge.keywords.water": "Água", - "Challenge.keywords.pointsOfInterest": "Pontos / Áreas de Interesse", - "Challenge.keywords.buildings": "Edifícios", - "Challenge.keywords.landUse": "Uso da Terra / Limites Administrativos", - "Challenge.keywords.transit": "Trânsito", - "Challenge.keywords.other": "Outro", - "Challenge.keywords.any": "Qualquer coisa", - "Challenge.location.nearMe": "Perto de mim", - "Challenge.location.withinMapBounds": "Dentro dos limites do mapa", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Em qualquer lugar", - "Challenge.status.none": "Não aplicável", - "Challenge.status.building": "Edifício", - "Challenge.status.failed": "Falhou", - "Challenge.status.ready": "Pronto", - "Challenge.status.partiallyLoaded": "Parcialmente carregado", - "Challenge.status.finished": "Terminado", - "Challenge.status.deletingTasks": "Deleting Tasks", - "Challenge.type.challenge": "Desafio", - "Challenge.type.survey": "Pesquisa", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "Nenhum", - "Editor.id.label": "Editar no iD (editor da web)", - "Editor.josm.label": "Editar no JOSM", - "Editor.josmLayer.label": "Editar em uma nova camada do JOSM", - "Editor.josmFeatures.label": "Editar apenas recursos no JOSM", - "Editor.level0.label": "Editar no nível 0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "Nenhum local da casa encontrado. Por favor, permita permissão do seu navegador ou defina o local de sua casa nas configurações do openstreetmap.org (você pode sair e entrar novamente no MapRoulette para pegar novas alterações nas suas configurações do OpenStreetMap).", - "Errors.user.unauthenticated": "Por favor, entre para continuar.", - "Errors.user.unauthorized": "Desculpe, você não está autorizado a executar essa ação.", - "Errors.user.updateFailure": "Não é possível atualizar seu usuário no servidor.", - "Errors.user.fetchFailure": "Não é possível buscar dados do usuário no servidor.", - "Errors.user.notFound": "Nenhum usuário encontrado com esse nome de usuário.", - "Errors.leaderboard.fetchFailure": "Não é possível buscar o placar.", - "Errors.task.none": "Nenhuma tarefa permanece neste desafio.", - "Errors.task.saveFailure": "Não é possível salvar suas alterações{details}", - "Errors.task.updateFailure": "Não é possível salvar suas alterações.", - "Errors.task.deleteFailure": "Não é possível excluir a tarefa.", - "Errors.task.fetchFailure": "Não é possível buscar uma tarefa para trabalhar.", - "Errors.task.doesNotExist": "Essa tarefa não existe.", - "Errors.task.alreadyLocked": "Task has already been locked by someone else.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "Pedido de dados do OpenStreetMap muito grande", - "Errors.osm.bandwidthExceeded": "OpenStreetMap permitido largura de banda excedida", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Não é possível buscar dados do OpenStreetMap", - "Errors.mapillary.fetchFailure": "Unable to fetch data from Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Não é possível recuperar os clusters de tarefas", - "Errors.boundedTask.fetchFailure": "Não é possível buscar tarefas limitadas por mapa", - "Errors.reviewTask.fetchFailure": "Unable to fetch review needed tasks", - "Errors.reviewTask.alreadyClaimed": "This task is already being reviewed by someone else.", - "Errors.reviewTask.notClaimedByYou": "Unable to cancel review.", - "Errors.challenge.fetchFailure": "Não é possível recuperar os dados mais recentes do desafio do servidor.", - "Errors.challenge.searchFailure": "Unable to search challenges on server.", - "Errors.challenge.deleteFailure": "Não é possível excluir o desafio.", - "Errors.challenge.saveFailure": "Não é possível salvar suas alterações{details}", - "Errors.challenge.rebuildFailure": "Não é possível reconstruir tarefas de desafio", - "Errors.challenge.doesNotExist": "Esse desafio não existe.", - "Errors.virtualChallenge.fetchFailure": "Não é possível recuperar os dados mais recentes de desafio virtual do servidor.", - "Errors.virtualChallenge.createFailure": "Não é possível criar um desafio virtual{details}", - "Errors.virtualChallenge.expired": "O desafio virtual expirou.", - "Errors.project.saveFailure": "Não é possível salvar suas alterações{details}", - "Errors.project.fetchFailure": "Não é possível recuperar os dados mais recentes do projeto do servidor.", - "Errors.project.searchFailure": "Não é possível pesquisar projetos.", - "Errors.project.deleteFailure": "Não é possível excluir o projeto.", - "Errors.project.notManager": "Você deve ser um gerente desse projeto para prosseguir.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "Nenhum resultado encontrado por Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Não é possível renderizar o espaço de trabalho. Mudando para um layout de trabalho.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "O controle remoto do OSM não respondeu. Você tem o JOSM em execução com o Controle Remoto ativado?", - "Errors.josm.missingFeatureIds": "Os recursos desta tarefa não incluem os identificadores OSM necessários para abri-los de forma autônoma no JOSM. Por favor, escolha outra opção de edição.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Editar no ID", - "KeyMapping.openEditor.editJosm": "Editar no JOSM", - "KeyMapping.openEditor.editJosmLayer": "Editar na nova camada do JOSM", - "KeyMapping.openEditor.editJosmFeatures": "Editar apenas recursos no JOSM", - "KeyMapping.openEditor.editLevel0": "Editar no nível 0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Alternar camada de dados do OSM", - "KeyMapping.layers.layerTaskFeatures": "Alternar Camada de Recursos", - "KeyMapping.layers.layerMapillary": "Alternar Camada Mapilar", - "KeyMapping.taskEditing.cancel": "Cancelar edição", - "KeyMapping.taskEditing.fitBounds": "Ajustar Mapa aos Recursos da Tarefa", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Pular", - "KeyMapping.taskCompletion.falsePositive": "Não é um problema", - "KeyMapping.taskCompletion.fixed": "Eu consertei isso!", - "KeyMapping.taskCompletion.tooHard": "Muito difícil / não consegui ver", - "KeyMapping.taskCompletion.alreadyFixed": "Já fixa", - "KeyMapping.taskInspect.nextTask": "Próxima tarefa", - "KeyMapping.taskInspect.prevTask": "Tarefa Anterior", - "KeyMapping.taskCompletion.confirmSubmit": "Submit", - "Subscription.type.ignore": "Ignore", - "Subscription.type.noEmail": "Receive but do not email", - "Subscription.type.immediateEmail": "Receive and email immediately", - "Subscription.type.dailyEmail": "Receive and email daily", - "Notification.type.system": "System", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Approved", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Review", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Name", - "Challenge.sort.created": "Newest", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Popular", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "Padrão", - "Task.loadByMethod.random": "Aleatória", - "Task.loadByMethod.proximity": "Proximidade", - "Task.priority.high": "Alto", - "Task.priority.medium": "Médio", - "Task.priority.low": "Baixo", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "and", - "Task.property.operationType.or": "or", - "Task.reviewStatus.needed": "Review Requested", - "Task.reviewStatus.approved": "Approved", - "Task.reviewStatus.rejected": "Needs Revision", - "Task.reviewStatus.approvedWithFixes": "Approved with Fixes", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Review not yet requested", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Back to Inbox", - "Task.status.created": "Criado", - "Task.status.fixed": "Corrigido", - "Task.status.falsePositive": "Não é um problema", - "Task.status.skipped": "Pulou", - "Task.status.deleted": "Excluído", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Já fixa", - "Task.status.tooHard": "Demasiado difícil", - "Team.Status.member": "Member", - "Team.Status.invited": "Invited", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "ru-RU (Russian - Russia)", - "Dashboard.ChallengeFilter.visible.label": "Visível", - "Dashboard.ChallengeFilter.pinned.label": "Preso", - "Dashboard.ProjectFilter.visible.label": "Visível", - "Dashboard.ProjectFilter.owner.label": "proprietário", - "Dashboard.ProjectFilter.pinned.label": "Preso" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/ru_RU.json b/src/lang/ru_RU.json index cf33a6623..dd076df6d 100644 --- a/src/lang/ru_RU.json +++ b/src/lang/ru_RU.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Ваша недавняя активность", - "BurndownChart.heading": "Осталось задач: {taskCount, number}", - "BurndownChart.tooltip": "Задачи к выполнению", - "CalendarHeatmap.heading": "Ежедневная статистика: Выполнение задач", + "ActiveTask.controls.aleadyFixed.label": "Уже исправлено", + "ActiveTask.controls.cancelEditing.label": "Вернуться", + "ActiveTask.controls.comments.tooltip": "Показать комментарии", + "ActiveTask.controls.fixed.label": "Я исправил это!", + "ActiveTask.controls.info.tooltip": "Подробности задачи", + "ActiveTask.controls.notFixed.label": "Too difficult / Couldn’t see", + "ActiveTask.controls.status.tooltip": "Существующий статус", + "ActiveTask.controls.viewChangset.label": "Посмотреть набор изменений", + "ActiveTask.heading": "Информация о челлендже", + "ActiveTask.indicators.virtualChallenge.tooltip": "Виртуальный челлендж", + "ActiveTask.keyboardShortcuts.label": "Показать клавиатурные сокращения", + "ActiveTask.subheading.comments": "Комментарии", + "ActiveTask.subheading.instructions": "Инструкции", + "ActiveTask.subheading.location": "Локация", + "ActiveTask.subheading.progress": "Прогресс челленджа", + "ActiveTask.subheading.social": "Поделиться", + "ActiveTask.subheading.status": "Существующий статус", + "Activity.action.created": "Создано", + "Activity.action.deleted": "Удалено", + "Activity.action.questionAnswered": "Answered Question on", + "Activity.action.tagAdded": "Добавленный тег в", + "Activity.action.tagRemoved": "Удаленный тег из", + "Activity.action.taskStatusSet": "Set Status on", + "Activity.action.taskViewed": "Видимые", + "Activity.action.updated": "Обновлено", + "Activity.item.bundle": "Bundle", + "Activity.item.challenge": "Челлендж", + "Activity.item.grant": "Grant", + "Activity.item.group": "Группа", + "Activity.item.project": "Проект", + "Activity.item.survey": "Survey", + "Activity.item.tag": "Тег", + "Activity.item.task": "Задача", + "Activity.item.user": "Пользователь", + "Activity.item.virtualChallenge": "Виртуальный Вызов", + "ActivityListing.controls.group.label": "Group", + "ActivityListing.noRecentActivity": "No Recent Activity", + "ActivityListing.statusTo": "as", + "ActivityMap.noTasksAvailable.label": "No nearby tasks are available.", + "ActivityMap.tooltip.priorityLabel": "Priority: ", + "ActivityMap.tooltip.statusLabel": "Status: ", + "ActivityTimeline.UserActivityTimeline.header": "Your Recent Contributions", + "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "AddTeamMember.controls.chooseRole.label": "Choose Role", + "Admin.Challenge.activity.label": "Недавняя активность", + "Admin.Challenge.basemap.none": "Пользователь по умолчанию", + "Admin.Challenge.controls.clone.label": "Клонировать Вызов", + "Admin.Challenge.controls.delete.label": "Удалить Вызов", + "Admin.Challenge.controls.edit.label": "Редактировать Вызов", + "Admin.Challenge.controls.move.label": "Переместить Вызов", + "Admin.Challenge.controls.move.none": "Нет разрешенных проектов", + "Admin.Challenge.controls.refreshStatus.label": "Обновление статуса через:", + "Admin.Challenge.controls.start.label": "Начать Вызов", + "Admin.Challenge.controls.startChallenge.label": "Начать Вызов", + "Admin.Challenge.fields.creationDate.label": "Создано:", + "Admin.Challenge.fields.enabled.label": "Видимый:", + "Admin.Challenge.fields.lastModifiedDate.label": "Изменено:", + "Admin.Challenge.fields.status.label": "Статус:", + "Admin.Challenge.tasksBuilding": "Tasks Building...", + "Admin.Challenge.tasksCreatedCount": "tasks created so far.", + "Admin.Challenge.tasksFailed": "Tasks Failed to Build", + "Admin.Challenge.tasksNone": "Нет задач", + "Admin.Challenge.totalCreationTime": "Всего затрачено времени:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Опции", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Название Вызова", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Готово", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Прогресс выполнения", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Видимый", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Недавняя активность", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Управлять", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Редактировать", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Начать", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Название Вызова", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Прогресс выполнения", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Клонировать", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Включить колонки со статусом", - "ChallengeCard.totalTasks": "Всего задач", - "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", - "Admin.Challenge.controls.start.label": "Начать Вызов", - "Admin.Challenge.controls.edit.label": "Редактировать Вызов", - "Admin.Challenge.controls.move.label": "Переместить Вызов", - "Admin.Challenge.controls.move.none": "Нет разрешенных проектов", - "Admin.Challenge.controls.clone.label": "Клонировать Вызов", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Копировать URL", - "Admin.Challenge.controls.delete.label": "Удалить Вызов", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Редактировать", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Управлять", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Включить колонки со статусом", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Начать", "Admin.ChallengeList.noChallenges": "Нет Вызовов", - "ChallengeProgressBorder.available": "Доступно", - "CompletionRadar.heading": "Выполненные задачи: {taskCount, number}", - "Admin.EditProject.unavailable": "Проект недоступен", - "Admin.EditProject.edit.header": "Редактировать", - "Admin.EditProject.new.header": "Новый проект", - "Admin.EditProject.controls.save.label": "Сохранить", - "Admin.EditProject.controls.cancel.label": "Отмена", - "Admin.EditProject.form.name.label": "Название", - "Admin.EditProject.form.name.description": "Название проекта", - "Admin.EditProject.form.displayName.label": "Отображаемое название", - "Admin.EditProject.form.displayName.description": "Видимое название проекта", - "Admin.EditProject.form.enabled.label": "Видимый", - "Admin.EditProject.form.enabled.description": "Если вы сделаете ваш проект видимым, то все Вызовы проекта тоже станут видимыми и доступными, открытыми к изучению и обнаруженными в поиске другими пользователями. Фактически, отметка о видимости вашего проекта публикует любые Вызовы этого проекта, которые также видимы. Вы все еще можете работать над своими собственными Вызовами и делиться постоянными ссылками на Вызовы, и это будет работать. Так, пока вы делаете ваш проект видимым, он становится тестовой площадкой для Вызовов.", - "Admin.EditProject.form.featured.label": "Featured", - "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", - "Admin.EditProject.form.isVirtual.label": "Виртуальный", - "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects.", - "Admin.EditProject.form.description.label": "Описание", - "Admin.EditProject.form.description.description": "Описание проекта", - "Admin.InspectTask.header": "Inspect Tasks", - "Admin.EditChallenge.edit.header": "Редактировать", + "Admin.ChallengeTaskMap.controls.editTask.label": "Редактировать задачу", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", "Admin.EditChallenge.clone.header": "Клонировать", - "Admin.EditChallenge.new.header": "Новый Вызов", - "Admin.EditChallenge.lineNumber": "Line {line, number}:", + "Admin.EditChallenge.edit.header": "Редактировать", "Admin.EditChallenge.form.addMRTags.placeholder": "Add MR Tags", - "Admin.EditChallenge.form.step1.label": "Основные", - "Admin.EditChallenge.form.visible.label": "Видимый", - "Admin.EditChallenge.form.visible.description": "Разрешить вашему Вызову быть видимым и доступным для других пользователей (в зависимости от видимости проекта). Если вы действительно не уверены в создании новых Вызовов, мы рекомендуем сначала оставить для этого параметра значение Нет, особенно если родительский проект был сделан видимым. Если для видимости вашего Вызова выбрано значение «Да», то оно будет отображаться на домашней странице, в поиске Вызовов и в метриках, но только если родительский проект также виден.", - "Admin.EditChallenge.form.name.label": "Название", - "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", - "Admin.EditChallenge.form.description.label": "Описание", - "Admin.EditChallenge.form.description.description": "Основное, более длинное описание вашего Вызова, которое показывается пользователям когда они нажимают на Вызов чтобы побольше о нем узнать. Это поле поддерживает Markdown", - "Admin.EditChallenge.form.blurb.label": "Реклама", + "Admin.EditChallenge.form.additionalKeywords.description": "При желании вы можете указать дополнительные ключевые слова, которые могут помочь вам в обнаружении вашего Вызова. Пользователи могут искать по ключевому слову из параметра «Другое» раскрывающегося фильтра «Категория» или в поле «Поиск», добавляя знак хеша (например, #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Ключевые слова", "Admin.EditChallenge.form.blurb.description": "Очень краткое описание вашего Вызова, подходящее для небольших пространств, таких как всплывающее окно на карте. Это поле поддерживает Markdown.", - "Admin.EditChallenge.form.instruction.label": "Инструкции", - "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", - "Admin.EditChallenge.form.checkinComment.label": "Описание набора изменений", + "Admin.EditChallenge.form.blurb.label": "Реклама", + "Admin.EditChallenge.form.category.description": "Выбор подходящей категории высокого уровня для вашего Вызова может помочь пользователям быстро обнаружить Вызовы, которые соответствуют их интересам. Выберите категорию «Другое», если ничего не подходит.", + "Admin.EditChallenge.form.category.label": "Категория", "Admin.EditChallenge.form.checkinComment.description": "Комментарии, связанные с изменениями пользователей в редакторе", - "Admin.EditChallenge.form.checkinSource.label": "Источник набора изменений", + "Admin.EditChallenge.form.checkinComment.label": "Описание набора изменений", "Admin.EditChallenge.form.checkinSource.description": "Источники, связанные с изменениями пользователей в редакторе", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Автоматически добавлять хештэг #maproulette (настоятельно рекомендуется)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Пропустить хэштег", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Добавление хештэга в комментариях к правкам очень полезно для анализа пакета правок.", - "Admin.EditChallenge.form.difficulty.label": "Сложность", + "Admin.EditChallenge.form.checkinSource.label": "Источник набора изменений", + "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Custom Basemap", + "Admin.EditChallenge.form.customTaskStyles.button": "Configure", + "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", + "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", + "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 data was sourced", + "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": "Основа для Вызова", + "Admin.EditChallenge.form.defaultPriority.description": "Приоритетный уровень по умолчанию для задач в этом Вызове", + "Admin.EditChallenge.form.defaultPriority.label": "Приоритет по умолчанию", + "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task’s feature. But if that’s not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", + "Admin.EditChallenge.form.defaultZoom.label": "Масштаб по умолчанию", + "Admin.EditChallenge.form.description.description": "Основное, более длинное описание вашего Вызова, которое показывается пользователям когда они нажимают на Вызов чтобы побольше о нем узнать. Это поле поддерживает Markdown", + "Admin.EditChallenge.form.description.label": "Описание", "Admin.EditChallenge.form.difficulty.description": "Выберите между Легким, Нормальным и Экспертным чтобы дать понять мапперам, какой уровень навыков требуется для решения задач в вашем Вызове. Легкие Вызовы подходят для мапперов-новичков с небольшим опытом.", - "Admin.EditChallenge.form.category.label": "Категория", - "Admin.EditChallenge.form.category.description": "Выбор подходящей категории высокого уровня для вашего Вызова может помочь пользователям быстро обнаружить Вызовы, которые соответствуют их интересам. Выберите категорию «Другое», если ничего не подходит.", - "Admin.EditChallenge.form.additionalKeywords.label": "Ключевые слова", - "Admin.EditChallenge.form.additionalKeywords.description": "При желании вы можете указать дополнительные ключевые слова, которые могут помочь вам в обнаружении вашего Вызова. Пользователи могут искать по ключевому слову из параметра «Другое» раскрывающегося фильтра «Категория» или в поле «Поиск», добавляя знак хеша (например, #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Предпочитаемые Теги", - "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.", - "Admin.EditChallenge.form.featured.label": "Рекомендованные", + "Admin.EditChallenge.form.difficulty.label": "Сложность", + "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.", + "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", "Admin.EditChallenge.form.featured.description": "Рекомендованные Вызовы показываются сверху в поиске Вызовов. Только супер-пользователи могут пометить Вызов рекомендованным.", - "Admin.EditChallenge.form.step2.label": "Источник GeoJSON", - "Admin.EditChallenge.form.step2.description": "Every Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.", - "Admin.EditChallenge.form.source.label": "Источник GeoJSON", - "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", + "Admin.EditChallenge.form.featured.label": "Рекомендованные", + "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Игнорировать ошибки", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Добавление хештэга в комментариях к правкам очень полезно для анализа пакета правок.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Пропустить хэштег", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Автоматически добавлять хештэг #maproulette (настоятельно рекомендуется)", + "Admin.EditChallenge.form.instruction.description": "The instruction tells a mapper how to resolve a Task in your Challenge. This is what mappers see in the Instructions box every time a task is loaded, and is the primary piece of information for the mapper about how to solve the task, so think about this field carefully. You can include links to the OSM wiki or any other hyperlink if you want, because this field supports Markdown. You can also reference feature properties from your GeoJSON with simple mustache tags: e.g. `'{{address}}'` would be replaced with the value of the `address` property, allowing for basic customization of instructions for each task. This field is required.", + "Admin.EditChallenge.form.instruction.label": "Инструкции", + "Admin.EditChallenge.form.localGeoJson.description": "Пожалуйста, загрузите локальный GeoJSON файл с вашего компьютера", + "Admin.EditChallenge.form.localGeoJson.label": "Загрузить файл", + "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", + "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn’t useful or exceeds the available resolution of the map/imagery in the geographic region.", + "Admin.EditChallenge.form.maxZoom.label": "Максимальный уровень масштабирования", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", + "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn’t useful.", + "Admin.EditChallenge.form.minZoom.label": "Минимальный уровень масштабирования", + "Admin.EditChallenge.form.name.description": "Your Challenge name as it will appear in many places throughout the application. This is also what your challenge will be searchable by using the Search box. This field is required and only supports plain text.", + "Admin.EditChallenge.form.name.label": "Название", + "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", "Admin.EditChallenge.form.overpassQL.description": "Please provide a suitable bounding box when inserting an overpass query, as this can potentially generate large amounts of data and bog the system down.", + "Admin.EditChallenge.form.overpassQL.label": "Overpass API Query", "Admin.EditChallenge.form.overpassQL.placeholder": "Enter Overpass API query here...", - "Admin.EditChallenge.form.localGeoJson.label": "Загрузить файл", - "Admin.EditChallenge.form.localGeoJson.description": "Пожалуйста, загрузите локальный GeoJSON файл с вашего компьютера", - "Admin.EditChallenge.form.remoteGeoJson.label": "Удаленный URL", + "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. ", + "Admin.EditChallenge.form.preferredTags.label": "Предпочитаемые Теги", "Admin.EditChallenge.form.remoteGeoJson.description": "Удаленный URL загрузки GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Удаленный URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Date data was sourced", - "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc.", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Игнорировать ошибки", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Proceed despite detected errors in source data. Only expert users who fully understand the implications should attempt this.", + "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the Find Challenges list.", + "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", + "Admin.EditChallenge.form.source.label": "Источник GeoJSON", + "Admin.EditChallenge.form.step1.label": "Основные", + "Admin.EditChallenge.form.step2.description": "\nEvery Task in MapRoulette basically consists of a geometry: a point, line or\npolygon indicating on the map what it is that you want the mapper to evaluate.\nThis screen lets you define the Tasks for your Challenge by telling MapRoulette\nabout the geometries.\n\nThere are three ways to feed geometries into your challenge: via an Overpass\nquery, via a GeoJSON file on your computer, or via a URL pointing to a GeoJSON\nfile on the internet.\n\n#### Via Overpass\n\nThe Overpass API is a powerful querying interface for OpenStreetMap data. It\ndoes not work on the live OSM database, but the data you get from Overpass is\nusually just a few minutes old. Using\n[Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide),\nthe Overpass Query Language, you can define exactly which OSM objects you want\nto load into your Challenge as Tasks.\n[Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Via Local GeoJSON File\n\nThe other option is to use a GeoJSON file you already have. This could be great\nif you have an approved source of external data you would like to manually add\nto OSM. Tools like\n[QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson)\nand [gdal](http://www.gdal.org/drv_geojson.html) can convert things like\nShapefiles to GeoJSON. When you convert, make sure that you use unprojected\nlon/lat on the WGS84 datum (EPSG:4326), because this is what MapRoulette uses\ninternally.\n\n> Note: for challenges with a large number of tasks, we recommend using a\n[line-by-line](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format)\nformat instead, which is much less memory-intensive to process.\n\n#### Via Remote GeoJSON URL\n\nThe only difference between using a local GeoJSON file and a URL is where you\ntell MapRoulette to get it from. If you use a URL, make sure you point to the\nraw GeoJSON file, not a page that contains a link to the file, or MapRoulette\nwill not be able to make sense of it.\n ", + "Admin.EditChallenge.form.step2.label": "Источник GeoJSON", + "Admin.EditChallenge.form.step3.description": "The priority of tasks can be defined as High, Medium and Low. All high priority tasks will be offered to users first when working through a challenge, followed by medium and finally low priority tasks. Each task’s priority is assigned automatically based on the rules you specify below, each of which is evaluated against the task’s feature properties (OSM tags if you are using an Overpass query, otherwise whatever properties youve chosen to include in your GeoJSON). Tasks that don’t pass any rules will be assigned the default priority.", "Admin.EditChallenge.form.step3.label": "Приоритеты", - "Admin.EditChallenge.form.step3.description": "Приоритет заданий может быть определен как Высокий, Средний и Низкий. Все высокоприоритетные задания прделагаются пользователям первыми при работе с Вызовами, далее Средние по приоритету и наконец задания с низким приоритетом. Приоритет каждому заданию назначается автоматически на основе правил, уточненных вами ниже", - "Admin.EditChallenge.form.defaultPriority.label": "Приоритет по умолчанию", - "Admin.EditChallenge.form.defaultPriority.description": "Приоритетный уровень по умолчанию для задач в этом Вызове", - "Admin.EditChallenge.form.highPriorityRules.label": "High Priority Rules", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Medium Priority Rules", - "Admin.EditChallenge.form.lowPriorityRules.label": "Low Priority Rules", - "Admin.EditChallenge.form.step4.label": "Дополнительно", "Admin.EditChallenge.form.step4.description": "Дополнительная информация, которая может быть добавлена по желанию для улучшения картографирования согласно требованиям вызова", - "Admin.EditChallenge.form.updateTasks.label": "Удалить устаревшие задачи", - "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", - "Admin.EditChallenge.form.defaultZoom.label": "Масштаб по умолчанию", - "Admin.EditChallenge.form.defaultZoom.description": "When a user begins work on a task, MapRoulette will attempt to automatically use a zoom level that fits the bounds of the task's feature. But if that's not possible, then this default zoom level will be used. It should be set to a level is generally suitable for working on most tasks in your challenge.", - "Admin.EditChallenge.form.minZoom.label": "Минимальный уровень масштабирования", - "Admin.EditChallenge.form.minZoom.description": "The minimum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom out to work on tasks while keeping them from zooming out to a level that isn't useful.", - "Admin.EditChallenge.form.maxZoom.label": "Максимальный уровень масштабирования", - "Admin.EditChallenge.form.maxZoom.description": "The maximum allowed zoom level for your challenge. This should be set to a level that allows the user to sufficiently zoom in to work on the tasks while keeping them from zooming in to a level that isn't useful or exceeds the available resolution of the map/imagery in the geographic region.", - "Admin.EditChallenge.form.defaultBasemap.label": "Основа для Вызова", - "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.customBasemap.label": "Custom Basemap", - "Admin.EditChallenge.form.customBasemap.description": "Insert a custom base map URL here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Properties to export in CSV", - "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.", - "Admin.EditChallenge.form.osmIdProperty.label": "OSM Id Property", - "Admin.EditChallenge.form.osmIdProperty.description": "The name of the task feature property to treat as an OpenStreetMap element id for tasks. If left blank, MapRoulette will fall back to checking a series of common id properties, including those used by Overpass. If specified, **be sure that it has a unique value for each feature in your data**. Tasks missing the property will be assigned a random identifier even if the task contains other common id properties. [Learn more on the wiki](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", - "Admin.EditChallenge.form.customTaskStyles.description": "Enable custom task styling based on specific task feature properties.", - "Admin.EditChallenge.form.customTaskStyles.error": "Task property style rules are invalid. Please fix before continuing.", - "Admin.EditChallenge.form.customTaskStyles.button": "Configure", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Сделано", + "Admin.EditChallenge.form.step4.label": "Дополнительно", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Clear", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Сделано", "Admin.EditChallenge.form.taskPropertyStyles.description": "Sets up task property style rules......", - "Admin.EditChallenge.form.requiresLocal.label": "Requires Local Knowledge", - "Admin.EditChallenge.form.requiresLocal.description": "Tasks require local or on-the-ground knowledge to complete. Note: challenge will not appear in the 'Find challenges' list.", - "Admin.ManageChallenges.header": "Вызовы", - "Admin.ManageChallenges.help.info": "Вызовы состоят из множества заданий", - "Admin.ManageChallenges.search.placeholder": "Название", - "Admin.ManageChallenges.allProjectChallenge": "Все", - "Admin.Challenge.fields.creationDate.label": "Создано:", - "Admin.Challenge.fields.lastModifiedDate.label": "Изменено:", - "Admin.Challenge.fields.status.label": "Статус:", - "Admin.Challenge.fields.enabled.label": "Видимый:", - "Admin.Challenge.controls.startChallenge.label": "Начать Вызов", - "Admin.Challenge.activity.label": "Недавняя активность", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Удалить", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Task Property Style Rules", + "Admin.EditChallenge.form.updateTasks.description": "Periodically delete old, stale (not updated in ~30 days) tasks still in Created or Skipped state. This can be useful if you are refreshing your challenge tasks on a regular basis and wish to have old ones periodically removed for you. Most of the time you will want to leave this set to No.", + "Admin.EditChallenge.form.updateTasks.label": "Удалить устаревшие задачи", + "Admin.EditChallenge.form.visible.description": "Allow your challenge to be visible and discoverable to other users (subject to project visibility). Unless you are really confident in creating new Challenges, we would recommend leaving this set to No at first, especially if the parent Project had been made visible. Setting your Challenge’s visibility to Yes will make it appear on the home page, in the Challenge search, and in metrics - but only if the parent Project is also visible.", + "Admin.EditChallenge.form.visible.label": "Видимый", + "Admin.EditChallenge.lineNumber": "Line {line, number}: ", + "Admin.EditChallenge.new.header": "Новый Вызов", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", + "Admin.EditProject.controls.cancel.label": "Отмена", + "Admin.EditProject.controls.save.label": "Сохранить", + "Admin.EditProject.edit.header": "Редактировать", + "Admin.EditProject.form.description.description": "Описание проекта", + "Admin.EditProject.form.description.label": "Описание", + "Admin.EditProject.form.displayName.description": "Видимое название проекта", + "Admin.EditProject.form.displayName.label": "Отображаемое название", + "Admin.EditProject.form.enabled.description": "Если вы сделаете ваш проект видимым, то все Вызовы проекта тоже станут видимыми и доступными, открытыми к изучению и обнаруженными в поиске другими пользователями. Фактически, отметка о видимости вашего проекта публикует любые Вызовы этого проекта, которые также видимы. Вы все еще можете работать над своими собственными Вызовами и делиться постоянными ссылками на Вызовы, и это будет работать. Так, пока вы делаете ваш проект видимым, он становится тестовой площадкой для Вызовов.", + "Admin.EditProject.form.enabled.label": "Видимый", + "Admin.EditProject.form.featured.description": "Featured projects are shown on the home page and top of the Find Challenges page to bring attention to them. Note that featuring a project does **not** also feature its challenges. Only super-users may mark a project as featured.", + "Admin.EditProject.form.featured.label": "Featured", + "Admin.EditProject.form.isVirtual.description": "If a project is virtual, then you can add existing challenges as a means of grouping. This setting cannot be changed after the project is created. Permissions remain in effect from the challenges' original parent projects. ", + "Admin.EditProject.form.isVirtual.label": "Виртуальный", + "Admin.EditProject.form.name.description": "Название проекта", + "Admin.EditProject.form.name.label": "Название", + "Admin.EditProject.new.header": "Новый проект", + "Admin.EditProject.unavailable": "Проект недоступен", + "Admin.EditTask.controls.cancel.label": "Отмена", + "Admin.EditTask.controls.save.label": "Сохранить", "Admin.EditTask.edit.header": "Редактировать задачу", - "Admin.EditTask.new.header": "Новая задача", + "Admin.EditTask.form.additionalTags.description": "При желании можно указать дополнительные теги MR, которые можно использовать для аннотирования этой задачи.", + "Admin.EditTask.form.additionalTags.label": "MR-теги", + "Admin.EditTask.form.additionalTags.placeholder": "Добавить MR-теги", "Admin.EditTask.form.formTitle": "Подробность задачи", - "Admin.EditTask.controls.save.label": "Сохранить", - "Admin.EditTask.controls.cancel.label": "Отмена", - "Admin.EditTask.form.name.label": "Название", - "Admin.EditTask.form.name.description": "Название задачи", - "Admin.EditTask.form.instruction.label": "Инструкции", - "Admin.EditTask.form.instruction.description": "Инструкции для пользователей, выполняющих эту конкретную задачу (переопределяет инструкции челленджа)", - "Admin.EditTask.form.geometries.label": "GeoJSON", "Admin.EditTask.form.geometries.description": "GeoJSON for this task. Every Task in MapRoulette basically consists of a geometry: a point, line or polygon indicating on the map where it is that you want the mapper to pay attention, described by GeoJSON", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Инструкции для пользователей, выполняющих эту конкретную задачу (переопределяет инструкции челленджа)", + "Admin.EditTask.form.instruction.label": "Инструкции", + "Admin.EditTask.form.name.description": "Название задачи", + "Admin.EditTask.form.name.label": "Название", "Admin.EditTask.form.priority.label": "Приоритет", - "Admin.EditTask.form.status.label": "Статус", "Admin.EditTask.form.status.description": "Статус задачи. В зависимости от текущего статуса ваши возможности обновления статуса могут быть ограничены.", - "Admin.EditTask.form.additionalTags.label": "MR-теги", - "Admin.EditTask.form.additionalTags.description": "При желании можно указать дополнительные теги MR, которые можно использовать для аннотирования этой задачи.", - "Admin.EditTask.form.additionalTags.placeholder": "Добавить MR-теги", - "Admin.Task.controls.editTask.tooltip": "Изменить задачу", - "Admin.Task.controls.editTask.label": "Редактировать", - "Admin.manage.header": "Создать и управлять", - "Admin.manage.virtual": "Виртуальный", - "Admin.ProjectCard.tabs.challenges.label": "Челленджи", - "Admin.ProjectCard.tabs.details.label": "Подробности", - "Admin.ProjectCard.tabs.managers.label": "Менеджеры", - "Admin.Project.fields.enabled.tooltip": "Включено", - "Admin.Project.fields.disabled.tooltip": "Выключено", - "Admin.ProjectCard.controls.editProject.tooltip": "Редактировать проект", - "Admin.ProjectCard.controls.editProject.label": "Изменить Проект", - "Admin.ProjectCard.controls.pinProject.label": "Прикрепить Проект", - "Admin.ProjectCard.controls.unpinProject.label": "Открепить Проект", + "Admin.EditTask.form.status.label": "Статус", + "Admin.EditTask.new.header": "Новая задача", + "Admin.InspectTask.header": "Inspect Tasks", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Удалить", + "Admin.ManageChallenges.allProjectChallenge": "Все", + "Admin.ManageChallenges.header": "Вызовы", + "Admin.ManageChallenges.help.info": "Вызовы состоят из множества заданий", + "Admin.ManageChallenges.search.placeholder": "Название", + "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", + "Admin.ManageTasks.header": "Задачи", + "Admin.Project.challengesUndiscoverable": "challenges not discoverable", "Admin.Project.controls.addChallenge.label": "Добавить челлендж", + "Admin.Project.controls.addChallenge.tooltip": "Новый челлендж", + "Admin.Project.controls.delete.label": "Удалить проект", + "Admin.Project.controls.export.label": "Export CSV", "Admin.Project.controls.manageChallengeList.label": "Управлять списком челленджей", + "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", + "Admin.Project.controls.visible.label": "Visible:", + "Admin.Project.fields.creationDate.label": "Создано:", + "Admin.Project.fields.disabled.tooltip": "Выключено", + "Admin.Project.fields.enabled.tooltip": "Включено", + "Admin.Project.fields.lastModifiedDate.label": "Изменено:", "Admin.Project.headers.challengePreview": "Challenge Matches", "Admin.Project.headers.virtual": "Виртуальный", - "Admin.Project.controls.export.label": "Export CSV", - "Admin.ProjectDashboard.controls.edit.label": "Редактировать проект", - "Admin.ProjectDashboard.controls.delete.label": "Удалить проект", + "Admin.ProjectCard.controls.editProject.label": "Изменить Проект", + "Admin.ProjectCard.controls.editProject.tooltip": "Редактировать проект", + "Admin.ProjectCard.controls.pinProject.label": "Прикрепить Проект", + "Admin.ProjectCard.controls.unpinProject.label": "Открепить Проект", + "Admin.ProjectCard.tabs.challenges.label": "Челленджи", + "Admin.ProjectCard.tabs.details.label": "Подробности", + "Admin.ProjectCard.tabs.managers.label": "Менеджеры", "Admin.ProjectDashboard.controls.addChallenge.label": "Добавить челлендж", + "Admin.ProjectDashboard.controls.delete.label": "Удалить проект", + "Admin.ProjectDashboard.controls.edit.label": "Редактировать проект", "Admin.ProjectDashboard.controls.manageChallenges.label": "Управлять челленджами", - "Admin.Project.fields.creationDate.label": "Создано:", - "Admin.Project.fields.lastModifiedDate.label": "Изменено:", - "Admin.Project.controls.delete.label": "Удалить проект", - "Admin.Project.controls.visible.label": "Visible:", - "Admin.Project.controls.visible.confirmation": "Are you sure? No challenges in this project will be discoverable by mappers.", - "Admin.Project.challengesUndiscoverable": "challenges not discoverable", - "ProjectPickerModal.chooseProject": "Выбрать Проект", - "ProjectPickerModal.noProjects": "Не найдено проектов", - "Admin.ProjectsDashboard.newProject": "Добавить проект", + "Admin.ProjectManagers.addManager": "Добавить менеджера проекта", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "логин в OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Название команды", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Вы уверены, что хотите удалить этого менеджера из проекта?", + "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Выбрать роль", + "Admin.ProjectManagers.noManagers": "Нет менеджеров", + "Admin.ProjectManagers.options.teams.label": "Команда", + "Admin.ProjectManagers.options.users.label": "Пользователь", + "Admin.ProjectManagers.projectOwner": "Владелец", + "Admin.ProjectManagers.team.indicator": "Команда", "Admin.ProjectsDashboard.help.info": "Проекты служат средством объединения связанных челленджей. Все челленджи должны принадлежать проекту.", - "Admin.ProjectsDashboard.search.placeholder": "Название проекта или челленджа", - "Admin.Project.controls.addChallenge.tooltip": "Новый челлендж", + "Admin.ProjectsDashboard.newProject": "Добавить проект", "Admin.ProjectsDashboard.regenerateHomeProject": "Пожалуйста, выйдите и войдите снова чтобы обновить домашний проект", - "RebuildTasksControl.label": "Восстановить задачи", - "RebuildTasksControl.modal.title": "Восстановить задачи челленджа", - "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", - "RebuildTasksControl.modal.intro.remote": "Восстановление перезагрузит данные GeoJSON из удаленного URL челленджа и наполнит задачи челленджа новыми данными:", - "RebuildTasksControl.modal.intro.local": "Восстановление позволит вам наполнить новый локальный файл свежими данными GeoJSON и восстановить задачи челленджа:", - "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", - "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", - "RebuildTasksControl.modal.moreInfo": "[Узнать больше] (https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "Сначала удалите невыполненные задачи", - "RebuildTasksControl.modal.controls.cancel.label": "Отмена", - "RebuildTasksControl.modal.controls.proceed.label": "Proceed", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", - "StepNavigation.controls.cancel.label": "Отмена", - "StepNavigation.controls.next.label": "Следующий", - "StepNavigation.controls.prev.label": "Предыдущий", - "StepNavigation.controls.finish.label": "Закончить", + "Admin.ProjectsDashboard.search.placeholder": "Название проекта или челленджа", + "Admin.Task.controls.editTask.label": "Редактировать", + "Admin.Task.controls.editTask.tooltip": "Изменить задачу", + "Admin.Task.fields.name.label": "Задача:", + "Admin.Task.fields.status.label": "Статус:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Действия", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Комментарии", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Теги", + "Admin.TaskAnalysisTable.controls.editTask.label": "Редактировать", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Проверить", + "Admin.TaskAnalysisTable.controls.startTask.label": "Начать", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", "Admin.TaskDeletingProgress.deletingTasks.header": "Удаление задач", "Admin.TaskDeletingProgress.tasksDeleting.label": "удаленные задачи", - "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", - "Admin.TaskPropertyStyleRules.deleteRule": "Удалить Правило", - "Admin.TaskPropertyStyleRules.addRule": "Добавить другое Правило", + "Admin.TaskInspect.controls.editTask.label": "Редактировать задачу", + "Admin.TaskInspect.controls.modifyTask.label": "Изменить задачу", + "Admin.TaskInspect.controls.nextTask.label": "Следующая задача", + "Admin.TaskInspect.controls.previousTask.label": "Приоритетная задача", + "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Добавить", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Add Another Style", + "Admin.TaskPropertyStyleRules.addRule": "Добавить другое Правило", + "Admin.TaskPropertyStyleRules.deleteRule": "Удалить Правило", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Remove Style", "Admin.TaskPropertyStyleRules.styleName": "Style Name", "Admin.TaskPropertyStyleRules.styleValue": "Style Value", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "value", - "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", + "Admin.TaskPropertyStyleRules.styles.header": "Task Property Styling", + "Admin.TaskReview.controls.approved": "Одобрить", + "Admin.TaskReview.controls.approvedWithFixes": "Одобрить (с замечаниями)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Статус проверки:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Статус задачи:", + "Admin.TaskReview.controls.rejected": "Отклонить", + "Admin.TaskReview.controls.resubmit": "Запросить проверку снова", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Эта задача уже кем-то проверена.", + "Admin.TaskReview.controls.reviewNotRequested": "Для данной задачи проверка не запрошена.", + "Admin.TaskReview.controls.skipReview": "Skip Review", + "Admin.TaskReview.controls.startReview": "Начать проверку", + "Admin.TaskReview.controls.taskNotCompleted": "Задача не готова к проверке, т.к. она еще не выполнена.", + "Admin.TaskReview.controls.taskTags.label": "Теги:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Обновить статус проверки", + "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", + "Admin.TaskReview.reviewerIsMapper": "Вы не можете проверить выполненные вами задачи.", "Admin.TaskUploadProgress.tasksUploaded.label": "загруженные задачи", - "Admin.Challenge.tasksBuilding": "Tasks Building...", - "Admin.Challenge.tasksFailed": "Tasks Failed to Build", - "Admin.Challenge.tasksNone": "Нет задач", - "Admin.Challenge.tasksCreatedCount": "tasks created so far.", - "Admin.Challenge.totalCreationTime": "Всего затрачено времени:", - "Admin.Challenge.controls.refreshStatus.label": "Обновление статуса через:", - "Admin.ManageTasks.header": "Задачи", - "Admin.ManageTasks.geographicIndexingNotice": "Please note that it can take up to {delay} hours to geographically index new or modified challenges. Your challenge (and tasks) may not appear as expected in location-specific browsing or searches until indexing is complete.", - "Admin.manageTasks.controls.changePriority.label": "Изменить приоритет", - "Admin.manageTasks.priorityLabel": "Приоритет", - "Admin.manageTasks.controls.clearFilters.label": "Сбросить фильтры", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Inspect Task", - "Admin.ChallengeTaskMap.controls.editTask.label": "Редактировать задачу", - "Admin.Task.fields.name.label": "Задача:", - "Admin.Task.fields.status.label": "Статус:", - "Admin.VirtualProject.manageChallenge.label": "Управлять челленджами", - "Admin.VirtualProject.controls.done.label": "Готово", - "Admin.VirtualProject.controls.addChallenge.label": "Добавить челлендж", + "Admin.TaskUploadProgress.uploadingTasks.header": "Building Tasks", "Admin.VirtualProject.ChallengeList.noChallenges": "Нет челленджей", "Admin.VirtualProject.ChallengeList.search.placeholder": "Поиск", - "Admin.VirtualProject.currentChallenges.label": "Challenges in", - "Admin.VirtualProject.findChallenges.label": "Найти челленджи", "Admin.VirtualProject.controls.add.label": "Добавить", + "Admin.VirtualProject.controls.addChallenge.label": "Добавить челлендж", + "Admin.VirtualProject.controls.done.label": "Готово", "Admin.VirtualProject.controls.remove.label": "Удалить", - "Widgets.BurndownChartWidget.label": "Burndown Chart", - "Widgets.BurndownChartWidget.title": "Остающиеся задачи: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Ежедневная статистика", - "Widgets.CalendarHeatmapWidget.title": "Ежедневная статистика: выполнение задач", - "Widgets.ChallengeListWidget.label": "Челленджи", - "Widgets.ChallengeListWidget.title": "Челленджи", - "Widgets.ChallengeListWidget.search.placeholder": "Поиск", + "Admin.VirtualProject.currentChallenges.label": "Challenges in ", + "Admin.VirtualProject.findChallenges.label": "Найти челленджи", + "Admin.VirtualProject.manageChallenge.label": "Управлять челленджами", + "Admin.fields.completedDuration.label": "Completion Time", + "Admin.fields.reviewDuration.label": "Review Time", + "Admin.fields.reviewedAt.label": "На проверке", + "Admin.manage.header": "Создать и управлять", + "Admin.manage.virtual": "Виртуальный", "Admin.manageProjectChallenges.controls.exportCSV.label": "Export CSV", - "Widgets.ChallengeOverviewWidget.label": "Обзор челленджа", - "Widgets.ChallengeOverviewWidget.title": "Обзор", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Создано:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Изменено:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Обновленные задачи:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Статус:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Видимый:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Ключевые слова:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", - "Widgets.ChallengeTasksWidget.label": "Задачи", - "Widgets.ChallengeTasksWidget.title": "Задачи", - "Widgets.CommentsWidget.label": "Комментарии", - "Widgets.CommentsWidget.title": "Комментарии", - "Widgets.CommentsWidget.controls.export.label": "Экспорт", - "Widgets.LeaderboardWidget.label": "Рейтинг", - "Widgets.LeaderboardWidget.title": "Рейтинг", - "Widgets.ProjectAboutWidget.label": "О проектах", - "Widgets.ProjectAboutWidget.title": "О проектах", - "Widgets.ProjectAboutWidget.content": "Проекты служат средством объединения челленджей. Все челленджи должны принадлежать проекту.\nВы можете создать столько проектов, сколько нужно для организации ваших челленджей, и вы можете пригласить других пользователей MapRoulette помочь управлять ими.\nПроекты должны быть отмечены видимыми до того как любой челлендж в них будет показываться в поиске.", - "Widgets.ProjectListWidget.label": "Список проектов", - "Widgets.ProjectListWidget.title": "Проекты", - "Widgets.ProjectListWidget.search.placeholder": "Поиск", - "Widgets.ProjectManagersWidget.label": "Менеджеры проекта", - "Admin.ProjectManagers.noManagers": "Нет менеджеров", - "Admin.ProjectManagers.addManager": "Добавить менеджера проекта", - "Admin.ProjectManagers.projectOwner": "Владелец", - "Admin.ProjectManagers.controls.removeManager.label": "Remove Manager", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Вы уверены, что хотите удалить этого менеджера из проекта?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Выбрать роль", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "логин в OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Название команды", - "Admin.ProjectManagers.options.teams.label": "Команда", - "Admin.ProjectManagers.options.users.label": "Пользователь", - "Admin.ProjectManagers.team.indicator": "Команда", - "Widgets.ProjectOverviewWidget.label": "Обзор", - "Widgets.ProjectOverviewWidget.title": "Обзор", - "Widgets.RecentActivityWidget.label": "Недавняя активность", - "Widgets.RecentActivityWidget.title": "Недавняя активность", - "Widgets.StatusRadarWidget.label": "Радар статусов", - "Widgets.StatusRadarWidget.title": "Completion Status Distribution", - "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Выбрать задания", + "Admin.manageTasks.controls.changePriority.label": "Изменить приоритет", + "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue ", + "Admin.manageTasks.controls.changeStatusTo.label": "Change status to ", + "Admin.manageTasks.controls.chooseStatus.label": "Choose ... ", + "Admin.manageTasks.controls.clearFilters.label": "Сбросить фильтры", + "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", + "Admin.manageTasks.controls.exportCSV.label": "Экспорт в CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Экспорт GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Спрятать колонки проверки", + "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", + "Admin.manageTasks.priorityLabel": "Приоритет", "AutosuggestTextBox.labels.noResults": "Нет соответствий", - "Form.textUpload.prompt": "Перенесите сюда файл GeoJSON или нажмите, чтобы выбрать файл", - "Form.textUpload.readonly": "Будет использован существующий файл", - "Form.controls.addPriorityRule.label": "Добавить правило", - "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "BoundsSelectorModal.control.dismiss.label": "Select Bounds", + "BoundsSelectorModal.header": "Select Bounds", + "BoundsSelectorModal.primaryMessage": "Highlight bounds you would like to select.", + "BurndownChart.heading": "Осталось задач: {taskCount, number}", + "BurndownChart.tooltip": "Задачи к выполнению", + "CalendarHeatmap.heading": "Ежедневная статистика: Выполнение задач", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Пользовательский", + "Challenge.basemap.none": "None", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Сбросить фильтры", + "Challenge.controls.loadMore.label": "Больше результатов", + "Challenge.controls.save.label": "Сохранить", + "Challenge.controls.start.label": "Начать", + "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Challenge.controls.unsave.label": "Не сохранять", + "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", + "Challenge.cooperativeType.changeFile": "Cooperative", + "Challenge.cooperativeType.none": "None", + "Challenge.cooperativeType.tags": "Tag Fix", + "Challenge.difficulty.any": "Любая", + "Challenge.difficulty.easy": "Легкий", + "Challenge.difficulty.expert": "Экспертный", + "Challenge.difficulty.normal": "Нормальный", "Challenge.fields.difficulty.label": "Сложность", "Challenge.fields.lastTaskRefresh.label": "Задачи от", "Challenge.fields.viewLeaderboard.label": "Показать рейтинг", - "Challenge.fields.vpList.label": "Also in matching virtual {count, plural, one {project} other {projects}}:", - "Project.fields.viewLeaderboard.label": "Показать Рейтинг", - "Project.indicator.label": "Проект", - "ChallengeDetails.controls.goBack.label": "Вернуться", - "ChallengeDetails.controls.start.label": "Начать", + "Challenge.fields.vpList.label": "Also in matching virtual {count,plural, one{project} other{projects}}:", + "Challenge.keywords.any": "Все объекты", + "Challenge.keywords.buildings": "Строения", + "Challenge.keywords.landUse": "Использование земель / Административные границы", + "Challenge.keywords.navigation": "Дороги / Пешеходные дороги / Велосипедные дорожки", + "Challenge.keywords.other": "Другое", + "Challenge.keywords.pointsOfInterest": "Точки / Области интересов", + "Challenge.keywords.transit": "Transit", + "Challenge.keywords.water": "Вода", + "Challenge.location.any": "Везде", + "Challenge.location.intersectingMapBounds": "Shown on Map", + "Challenge.location.nearMe": "Рядом со мной", + "Challenge.location.withinMapBounds": "В границах карты", + "Challenge.management.controls.manage.label": "Управлять", + "Challenge.results.heading": "Челленджи", + "Challenge.results.noResults": "Нет результатов", + "Challenge.signIn.label": "Войти, чтобы начать", + "Challenge.sort.cooperativeWork": "Cooperative", + "Challenge.sort.created": "Новейшее", + "Challenge.sort.default": "По умолчанию", + "Challenge.sort.name": "Название", + "Challenge.sort.oldest": "Oldest", + "Challenge.sort.popularity": "Популярное", + "Challenge.status.building": "Строение", + "Challenge.status.deletingTasks": "Удаление задач", + "Challenge.status.failed": "Неудачно", + "Challenge.status.finished": "Закончено", + "Challenge.status.none": "Не применимо", + "Challenge.status.partiallyLoaded": "Частично загружено", + "Challenge.status.ready": "Готово", + "Challenge.type.challenge": "Челлендж", + "Challenge.type.survey": "Survey", + "ChallengeCard.controls.visibilityToggle.tooltip": "Toggle challenge visibility", + "ChallengeCard.totalTasks": "Всего задач", + "ChallengeDetails.Task.fields.featured.label": "Рекомендованные", "ChallengeDetails.controls.favorite.label": "Favorite", "ChallengeDetails.controls.favorite.tooltip": "Save to favorites", + "ChallengeDetails.controls.goBack.label": "Вернуться", + "ChallengeDetails.controls.start.label": "Начать", "ChallengeDetails.controls.unfavorite.label": "Unfavorite", "ChallengeDetails.controls.unfavorite.tooltip": "Remove from favorites", - "ChallengeDetails.management.controls.manage.label": "Управлять", - "ChallengeDetails.Task.fields.featured.label": "Рекомендованные", "ChallengeDetails.fields.difficulty.label": "Сложность", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Задачи от", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Задачи от", "ChallengeDetails.fields.viewLeaderboard.label": "Показать рейтинг", "ChallengeDetails.fields.viewReviews.label": "Review", + "ChallengeDetails.management.controls.manage.label": "Управлять", + "ChallengeEndModal.control.dismiss.label": "Продолжить", "ChallengeEndModal.header": "Завершить челлендж", "ChallengeEndModal.primaryMessage": "Вы отметили все задачи в этом челлендже как пропущенные или слишком сложные.", - "ChallengeEndModal.control.dismiss.label": "Продолжить", - "Task.controls.contactOwner.label": "Связь с владельцем", - "Task.controls.contactLink.label": "Message {owner} through OSM", - "ChallengeFilterSubnav.header": "Челленджи", + "ChallengeFilterSubnav.controls.sortBy.label": "Сортировать по", "ChallengeFilterSubnav.filter.difficulty.label": "Сложность", "ChallengeFilterSubnav.filter.keyword.label": "Work on", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Другое:", "ChallengeFilterSubnav.filter.location.label": "Локация", "ChallengeFilterSubnav.filter.search.label": "Искать по названию", - "Challenge.controls.clearFilters.label": "Сбросить фильтры", - "ChallengeFilterSubnav.controls.sortBy.label": "Сортировать по", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Другое:", - "Challenge.controls.unsave.label": "Не сохранять", - "Challenge.controls.save.label": "Сохранить", - "Challenge.controls.start.label": "Начать", - "Challenge.management.controls.manage.label": "Управлять", - "Challenge.signIn.label": "Войти, чтобы начать", - "Challenge.results.heading": "Челленджи", - "Challenge.results.noResults": "Нет результатов", - "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", - "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", - "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", - "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", - "Challenge.controls.loadMore.label": "Больше результатов", + "ChallengeFilterSubnav.header": "Челленджи", + "ChallengeFilterSubnav.query.searchType.challenge": "Вызовы", + "ChallengeFilterSubnav.query.searchType.project": "Проекты", "ChallengePane.controls.startChallenge.label": "Начать Вызов", - "Task.fauxStatus.available": "Доступный", - "ChallengeProgress.tooltip.label": "Задачи", - "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "из {totalCount, number}", - "ChallengeProgress.priority.toggle": "Показать по Приоритету Заданий", - "ChallengeProgress.priority.label": "{priority} Priority Tasks", - "ChallengeProgress.reviewStatus.label": "Review Status", "ChallengeProgress.metrics.averageTime.label": "Avg time per task:", "ChallengeProgress.metrics.excludesSkip.label": "(excluding skipped tasks)", + "ChallengeProgress.priority.label": "{priority} Priority Tasks", + "ChallengeProgress.priority.toggle": "Показать по Приоритету Заданий", + "ChallengeProgress.reviewStatus.label": "Review Status", + "ChallengeProgress.tasks.remaining": "Tasks Remaining: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": " of {totalCount, number}", + "ChallengeProgress.tooltip.label": "Задачи", + "ChallengeProgressBorder.available": "Доступно", "CommentList.controls.viewTask.label": "Показать задачу", "CommentList.noComments.label": "Нет комментариев", - "ConfigureColumnsModal.header": "Выбрать колонки для показа", + "CompletionRadar.heading": "Выполненные задачи: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Доступные колонки", - "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfigureColumnsModal.controls.add": "Добавить", - "ConfigureColumnsModal.controls.remove": "Удалить", "ConfigureColumnsModal.controls.done.label": "Сделано", - "ConfirmAction.title": "Вы уверены?", - "ConfirmAction.prompt": "Действие необратимо", + "ConfigureColumnsModal.controls.remove": "Удалить", + "ConfigureColumnsModal.header": "Выбрать колонки для показа", + "ConfigureColumnsModal.showingColumns.header": "Displayed Columns", "ConfirmAction.cancel": "Отмена", "ConfirmAction.proceed": "Proceed", + "ConfirmAction.prompt": "Действие необратимо", + "ConfirmAction.title": "Вы уверены?", + "CongratulateModal.control.dismiss.label": "Продолжить", "CongratulateModal.header": "Поздравляем!", "CongratulateModal.primaryMessage": "Челлендж завершен", - "CongratulateModal.control.dismiss.label": "Продолжить", - "CountryName.ALL": "Все страны", + "CooperativeWorkControls.controls.confirm.label": "Да", + "CooperativeWorkControls.controls.moreOptions.label": "Другое", + "CooperativeWorkControls.controls.reject.label": "Нет", + "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", + "CountryName.AE": "Объединенные Арабские Эмираты", "CountryName.AF": "Афганистан", - "CountryName.AO": "Ангола", "CountryName.AL": "Албания", - "CountryName.AE": "Объединенные Арабские Эмираты", - "CountryName.AR": "Аргентина", + "CountryName.ALL": "Все страны", "CountryName.AM": "Армения", + "CountryName.AO": "Ангола", "CountryName.AQ": "Антарктида", - "CountryName.TF": "Французские Южные Территории", - "CountryName.AU": "Австралия", + "CountryName.AR": "Аргентина", "CountryName.AT": "Австрия", + "CountryName.AU": "Австралия", "CountryName.AZ": "Азербайджан", - "CountryName.BI": "Бурунди", + "CountryName.BA": "Босния и Герцеговина", + "CountryName.BD": "Бангладеш", "CountryName.BE": "Бельгия", - "CountryName.BJ": "Бенин", "CountryName.BF": "Буркина-Фасо", - "CountryName.BD": "Бангладеш", "CountryName.BG": "Болгария", - "CountryName.BS": "Багамы", - "CountryName.BA": "Босния и Герцеговина", - "CountryName.BY": "Беларусь", - "CountryName.BZ": "Белиз", + "CountryName.BI": "Бурунди", + "CountryName.BJ": "Бенин", + "CountryName.BN": "Бруней", "CountryName.BO": "Боливия", "CountryName.BR": "Бразилия", - "CountryName.BN": "Бруней", + "CountryName.BS": "Багамы", "CountryName.BT": "Бутан", "CountryName.BW": "Ботсвана", - "CountryName.CF": "Центральноафриканская Республика", + "CountryName.BY": "Беларусь", + "CountryName.BZ": "Белиз", "CountryName.CA": "Канада", + "CountryName.CD": "ДР Конго", + "CountryName.CF": "Центральноафриканская Республика", + "CountryName.CG": "Конго", "CountryName.CH": "Швейцария", - "CountryName.CL": "Чили", - "CountryName.CN": "Китай", "CountryName.CI": "Кот-д'Ивуар", + "CountryName.CL": "Чили", "CountryName.CM": "Камерун", - "CountryName.CD": "ДР Конго", - "CountryName.CG": "Конго", + "CountryName.CN": "Китай", "CountryName.CO": "Колумбия", "CountryName.CR": "Коста-Рика", "CountryName.CU": "Куба", @@ -415,10 +485,10 @@ "CountryName.DO": "Доминиканская Республика", "CountryName.DZ": "Алжир", "CountryName.EC": "Эквадор", + "CountryName.EE": "Эстония", "CountryName.EG": "Египет", "CountryName.ER": "Эритрея", "CountryName.ES": "Испания", - "CountryName.EE": "Эстония", "CountryName.ET": "Эфиопия", "CountryName.FI": "Финляндия", "CountryName.FJ": "Фиджи", @@ -428,57 +498,58 @@ "CountryName.GB": "Великобритания", "CountryName.GE": "Грузия", "CountryName.GH": "Гана", - "CountryName.GN": "Гвинея", + "CountryName.GL": "Гренландия", "CountryName.GM": "Гамбия", - "CountryName.GW": "Гвинея-Бисау", + "CountryName.GN": "Гвинея", "CountryName.GQ": "Экваториальная Гвинея", "CountryName.GR": "Греция", - "CountryName.GL": "Гренландия", "CountryName.GT": "Гватемала", + "CountryName.GW": "Гвинея-Бисау", "CountryName.GY": "Гайана", "CountryName.HN": "Гондурас", "CountryName.HR": "Хорватия", "CountryName.HT": "Гаити", "CountryName.HU": "Венгрия", "CountryName.ID": "Индонезия", - "CountryName.IN": "Индия", "CountryName.IE": "Ирландия", - "CountryName.IR": "Иран", + "CountryName.IL": "Израиль", + "CountryName.IN": "Индия", "CountryName.IQ": "Ирак", + "CountryName.IR": "Иран", "CountryName.IS": "Исландия", - "CountryName.IL": "Израиль", "CountryName.IT": "Италия", "CountryName.JM": "Ямайка", "CountryName.JO": "Иордания", "CountryName.JP": "Япония", - "CountryName.KZ": "Казахстан", "CountryName.KE": "Кения", "CountryName.KG": "Кыргызстан", "CountryName.KH": "Камбоджа", + "CountryName.KP": "КНДР", "CountryName.KR": "Южная Корея", "CountryName.KW": "Кувейт", + "CountryName.KZ": "Казахстан", "CountryName.LA": "Лаос", "CountryName.LB": "Ливан", - "CountryName.LR": "Либерия", - "CountryName.LY": "Ливия", "CountryName.LK": "Шри-Ланка", + "CountryName.LR": "Либерия", "CountryName.LS": "Лесото", "CountryName.LT": "Литва", "CountryName.LU": "Люксембург", "CountryName.LV": "Латвия", + "CountryName.LY": "Ливия", "CountryName.MA": "Марокко", "CountryName.MD": "Молдавия", + "CountryName.ME": "Черногория", "CountryName.MG": "Мадагаскар", - "CountryName.MX": "Мексика", "CountryName.MK": "Македония", "CountryName.ML": "Мали", "CountryName.MM": "Мьянма", - "CountryName.ME": "Черногория", "CountryName.MN": "Монголия", - "CountryName.MZ": "Мозамбик", "CountryName.MR": "Мавритания", "CountryName.MW": "Малави", + "CountryName.MX": "Мексика", "CountryName.MY": "Малайзия", + "CountryName.MZ": "Мозамбик", "CountryName.NA": "Намибия", "CountryName.NC": "Новая Каледония", "CountryName.NE": "Нигер", @@ -489,460 +560,821 @@ "CountryName.NP": "Непал", "CountryName.NZ": "Новая Зеландия", "CountryName.OM": "Оман", - "CountryName.PK": "Пакистан", "CountryName.PA": "Панама", "CountryName.PE": "Перу", - "CountryName.PH": "Филиппины", "CountryName.PG": "Папуа-Новая Гвинея", + "CountryName.PH": "Филиппины", + "CountryName.PK": "Пакистан", "CountryName.PL": "Польша", "CountryName.PR": "Пуэрто-Рико", - "CountryName.KP": "КНДР", + "CountryName.PS": "Западный берег", "CountryName.PT": "Португалия", "CountryName.PY": "Парагвай", "CountryName.QA": "Катар", "CountryName.RO": "Румыния", + "CountryName.RS": "Сербия", "CountryName.RU": "Россия", "CountryName.RW": "Руанда", "CountryName.SA": "Саудовская Аравия", - "CountryName.SD": "Судан", - "CountryName.SS": "Южный Судан", - "CountryName.SN": "Сенегал", "CountryName.SB": "Соломоновы острова", + "CountryName.SD": "Судан", + "CountryName.SE": "Швеция", + "CountryName.SI": "Словения", + "CountryName.SK": "Словакия", "CountryName.SL": "Сьерра-Леоне", - "CountryName.SV": "Сальвадор", + "CountryName.SN": "Сенегал", "CountryName.SO": "Сомали", - "CountryName.RS": "Сербия", "CountryName.SR": "Суринам", - "CountryName.SK": "Словакия", - "CountryName.SI": "Словения", - "CountryName.SE": "Швеция", - "CountryName.SZ": "Эсватини", + "CountryName.SS": "Южный Судан", + "CountryName.SV": "Сальвадор", "CountryName.SY": "Сирия", + "CountryName.SZ": "Эсватини", "CountryName.TD": "Чад", + "CountryName.TF": "Французские Южные Территории", "CountryName.TG": "Того", "CountryName.TH": "Таиланд", "CountryName.TJ": "Таджикистан", - "CountryName.TM": "Туркменистан", "CountryName.TL": "Восточный Тимор", - "CountryName.TT": "Тринидад и Тобаго", + "CountryName.TM": "Туркменистан", "CountryName.TN": "Тунис", "CountryName.TR": "Турция", + "CountryName.TT": "Тринидад и Тобаго", "CountryName.TW": "Тайвань", "CountryName.TZ": "Танзания", - "CountryName.UG": "Уганда", "CountryName.UA": "Украина", - "CountryName.UY": "Уругвай", + "CountryName.UG": "Уганда", "CountryName.US": "Соединенные Штаты Америки", + "CountryName.UY": "Уругвай", "CountryName.UZ": "Узбекистан", "CountryName.VE": "Венесуэла", "CountryName.VN": "Вьетнам", "CountryName.VU": "Вануату", - "CountryName.PS": "Западный берег", "CountryName.YE": "Йемен", "CountryName.ZA": "Южная Африка", "CountryName.ZM": "Замбия", "CountryName.ZW": "Зимбабве", - "FitBoundsControl.tooltip": "Вписать карту под требования задачи", - "LayerToggle.controls.showTaskFeatures.label": "Особенности задачи", - "LayerToggle.controls.showOSMData.label": "OSM данные", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "Больше", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", - "LayerToggle.loading": "(загрузка ...)", - "PropertyList.title": "Properties", - "PropertyList.noProperties": "No Properties", - "EnhancedMap.SearchControl.searchLabel": "Поиск", + "Dashboard.ChallengeFilter.pinned.label": "Закрепленный", + "Dashboard.ChallengeFilter.visible.label": "Видимый", + "Dashboard.ProjectFilter.owner.label": "Owned", + "Dashboard.ProjectFilter.pinned.label": "Закрепленный", + "Dashboard.ProjectFilter.visible.label": "Видимый", + "Dashboard.header": "Личный кабинет", + "Dashboard.header.completedTasks": "{completedTasks, number} tasks", + "Dashboard.header.completionPrompt": "Вы закончили", + "Dashboard.header.controls.findChallenge.label": "Найти новые Вызовы", + "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", + "Dashboard.header.encouragement": "Keep it going!", + "Dashboard.header.find": "Или найти", + "Dashboard.header.getStarted": "Накопите баллы, выполняя Задания Вызовов!", + "Dashboard.header.globalRank": "ranked #{rank, number}", + "Dashboard.header.globally": "globally.", + "Dashboard.header.jumpBackIn": "Jump back in!", + "Dashboard.header.pointsPrompt": ", earned", + "Dashboard.header.rankPrompt": ", and are", + "Dashboard.header.resume": "Resume your last challenge", + "Dashboard.header.somethingNew": "что-то новое", + "Dashboard.header.userScore": "{points, number} points", + "Dashboard.header.welcomeBack": "Добро пожаловать обратно, {username}!", + "Editor.id.label": "Изменить в iD (web editor)", + "Editor.josm.label": "Изменить в JOSM", + "Editor.josmFeatures.label": "Edit just features in JOSM", + "Editor.josmLayer.label": "Изменить в новом слое JOSM", + "Editor.level0.label": "Изменить в Level0", + "Editor.none.label": "None", + "Editor.rapid.label": "Edit in RapiD", "EnhancedMap.SearchControl.noResults": "Ничего не найдено", "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Nominatim Query", + "EnhancedMap.SearchControl.searchLabel": "Поиск", "ErrorModal.title": "Упс!", - "FeaturedChallenges.header": "Challenge Highlights", - "FeaturedChallenges.noFeatured": "Nothing currently featured", - "FeaturedChallenges.projectIndicator.label": "Проект", - "FeaturedChallenges.browse": "Исследовать", - "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", - "FeatureStyleLegend.comparators.contains.label": "contains", - "FeatureStyleLegend.comparators.missing.label": "missing", - "FeatureStyleLegend.comparators.exists.label": "exists", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Помощь", - "Footer.reportBug": "Сообщить об ошибке", - "Footer.joinNewsletter": "Присоединяйтесь к рассылке новостей!", - "Footer.followUs": "Подпишитесь на нас", - "Footer.email.placeholder": "Адрес электронной почты", - "Footer.email.submit.label": "Подтвердить", - "HelpPopout.control.label": "Помощь", - "LayerSource.challengeDefault.label": "Challenge Default", - "LayerSource.userDefault.label": "По умолчанию", - "HomePane.header": "Be an instant contributor to the world's maps", - "HomePane.feedback.header": "Обратная связь", - "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", - "HomePane.filterLocationIntro": "Вносите правки в местах, о которых вы заботитесь.", - "HomePane.filterDifficultyIntro": "Работайте на своем уровне, от новичка до эксперта.", - "HomePane.createChallenges": "Создавайте задачи для других в целях улучшения качества данных.", + "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", + "Errors.challenge.deleteFailure": "Невозможно удалить челлендж.", + "Errors.challenge.doesNotExist": "Такого челленджа не существует.", + "Errors.challenge.fetchFailure": "Невозможно загрузить свежие данные челленджа с сервера.", + "Errors.challenge.rebuildFailure": "Невозможно восстановить задачи челленджа", + "Errors.challenge.saveFailure": "Невозможно сохранить ваши изменения{подробности}", + "Errors.challenge.searchFailure": "Невозможно найти челленджи на сервере.", + "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", + "Errors.josm.missingFeatureIds": "This task’s features do not include the OSM identifiers required to open them standalone in JOSM. Please choose another editing option.", + "Errors.josm.noResponse": "Удаленное управление OSM не отвечает. У вас работает JOSM с разрешенным удаленным управлением?", + "Errors.leaderboard.fetchFailure": "Невозможно загрузить рейтинг.", + "Errors.map.placeNotFound": "Ничего не найдено с помощью Nominatim.", + "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", + "Errors.mapillary.fetchFailure": "Невозможно загрузить данные с Mapillary", + "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", + "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", + "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", + "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", + "Errors.osm.fetchFailure": "Невозможно загрузить данные с OpenStreetMap", + "Errors.osm.requestTooLarge": "Запрос данных OSM слишком большой", + "Errors.project.deleteFailure": "Невозможно удалить проект.", + "Errors.project.fetchFailure": "Невозможно загрузить свежие данные проекта с сервера.", + "Errors.project.notManager": "Вы должны быть менеджером этого проекта, чтобы продолжить.", + "Errors.project.saveFailure": "Невозможно сохранить изменения{подробности}", + "Errors.project.searchFailure": "Невозможно найти проекты.", + "Errors.reviewTask.alreadyClaimed": "Эта задача уже кем-то проверена.", + "Errors.reviewTask.fetchFailure": "Невозможно загрузить требующие проверки задачи", + "Errors.reviewTask.notClaimedByYou": "Невозможно отменить проверку.", + "Errors.task.alreadyLocked": "Задача уже кем-то заблокирована.", + "Errors.task.bundleFailure": "Unable to bundling tasks together", + "Errors.task.deleteFailure": "Невозможно удалить задачу.", + "Errors.task.doesNotExist": "Такой задачи не существует.", + "Errors.task.fetchFailure": "Невозможно загрузить задачу к выполнению.", + "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", + "Errors.task.none": "Нет задач к выполнению в этом челлендже.", + "Errors.task.saveFailure": "Невозможно сохранить ваши изменения{подробности}", + "Errors.task.updateFailure": "Невозможно сохранить изменения.", + "Errors.team.genericFailure": "Failure{details}", + "Errors.user.fetchFailure": "Невозможно выгрузить данные пользователя с сервера.", + "Errors.user.genericFollowFailure": "Failure{details}", + "Errors.user.missingHomeLocation": "Не найдено домашней локации. Пожалуйста, настройте разрешение в браузере или установите домашнюю локацию в настройках openstreetmap.org (потом вам нужно выйти и войти обратно на MapRoulette чтобы обновить настройки на OpenStreetMap).", + "Errors.user.notFound": "Не найдено пользователя с таким логином.", + "Errors.user.unauthenticated": "Пожалуйста, войдите, чтобы продолжить.", + "Errors.user.unauthorized": "Извините, у вас недостаточно прав для совершения данного действия.", + "Errors.user.updateFailure": "Невозможно обновить вашего пользователя на сервере.", + "Errors.virtualChallenge.createFailure": "Невозможно создать виртуальный челлендж{подробности}", + "Errors.virtualChallenge.expired": "Виртуальный челлендж завершен.", + "Errors.virtualChallenge.fetchFailure": "Невозможно загрузить свежие виртуальные данные челленджа с сервера.", + "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", + "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "FeatureStyleLegend.comparators.contains.label": "contains", + "FeatureStyleLegend.comparators.exists.label": "exists", + "FeatureStyleLegend.comparators.missing.label": "missing", + "FeatureStyleLegend.noStyles.label": "This challenge is not using custom styles", + "FeaturedChallenges.browse": "Исследовать", + "FeaturedChallenges.header": "Challenge Highlights", + "FeaturedChallenges.noFeatured": "Nothing currently featured", + "FeaturedChallenges.projectIndicator.label": "Проект", + "FitBoundsControl.tooltip": "Вписать карту под требования задачи", + "Followers.ViewFollowers.blockedHeader": "Blocked Followers", + "Followers.ViewFollowers.followersNotAllowed": "You are not allowing followers (this can be changed in your user settings)", + "Followers.ViewFollowers.header": "Your Followers", + "Followers.ViewFollowers.indicator.following": "Following", + "Followers.ViewFollowers.noBlockedFollowers": "You have not blocked any followers", + "Followers.ViewFollowers.noFollowers": "Nobody is following you", + "Followers.controls.block.label": "Block", + "Followers.controls.followBack.label": "Follow back", + "Followers.controls.unblock.label": "Unblock", + "Following.Activity.controls.loadMore.label": "Load More", + "Following.ViewFollowing.header": "You are Following", + "Following.ViewFollowing.notFollowing": "You're not following anyone", + "Following.controls.stopFollowing.label": "Stop Following", + "Footer.email.placeholder": "Адрес электронной почты", + "Footer.email.submit.label": "Подтвердить", + "Footer.followUs": "Подпишитесь на нас", + "Footer.getHelp": "Помощь", + "Footer.joinNewsletter": "Присоединяйтесь к рассылке новостей!", + "Footer.reportBug": "Сообщить об ошибке", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Note: all mustache property tags evaluate to empty in preview.", + "Form.controls.addPriorityRule.label": "Добавить правило", + "Form.textUpload.prompt": "Перенесите сюда файл GeoJSON или нажмите, чтобы выбрать файл", + "Form.textUpload.readonly": "Будет использован существующий файл", + "General.controls.moreResults.label": "Больше результатов", + "GlobalActivity.title": "Global Activity", + "Grant.Role.admin": "Admin", + "Grant.Role.read": "Read", + "Grant.Role.write": "Write", + "HelpPopout.control.label": "Помощь", + "Home.Featured.browse": "Explore", + "Home.Featured.header": "Featured Challenges", + "HomePane.createChallenges": "Создавайте задачи для других в целях улучшения качества данных.", + "HomePane.feedback.header": "Обратная связь", + "HomePane.filterDifficultyIntro": "Работайте на своем уровне, от новичка до эксперта.", + "HomePane.filterLocationIntro": "Вносите правки в местах, о которых вы заботитесь.", + "HomePane.filterTagIntro": "Find tasks that address efforts important to you.", + "HomePane.header": "Be an instant contributor to the world’s maps", "HomePane.subheader": "Начать", - "Admin.TaskInspect.controls.previousTask.label": "Приоритетная задача", - "Admin.TaskInspect.controls.nextTask.label": "Следующая задача", - "Admin.TaskInspect.controls.editTask.label": "Редактировать задачу", - "Admin.TaskInspect.controls.modifyTask.label": "Изменить задачу", - "Admin.TaskInspect.readonly.message": "Previewing task in read-only mode", + "Inbox.actions.openNotification.label": "Открыть", + "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", + "Inbox.controls.deleteSelected.label": "Удалить", + "Inbox.controls.groupByTask.label": "Группировка по Заданиям", + "Inbox.controls.manageSubscriptions.label": "Управление подписками", + "Inbox.controls.markSelectedRead.label": "Отметить как прочитанное", + "Inbox.controls.refreshNotifications.label": "Обновить", + "Inbox.followNotification.followed.lead": "You have a new follower!", + "Inbox.header": "Уведомления", + "Inbox.mentionNotification.lead": "Вас отметили в комментарии:", + "Inbox.noNotifications": "Нет уведомлений", + "Inbox.notification.controls.deleteNotification.label": "Удалить", + "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", + "Inbox.notification.controls.reviewTask.label": "Review Task", + "Inbox.notification.controls.viewTask.label": "Показать задачу", + "Inbox.notification.controls.viewTeams.label": "View Teams", + "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", + "Inbox.reviewApprovedNotification.lead": "Хорошие новости! Ваша работа над задачей проверена и подтверждена.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Ваша работа над задачей одобрена (с некоторыми замечаниями для вас от проверяющего).", + "Inbox.reviewRejectedNotification.lead": "По итогам проверки задачи проверяющий решил, что над ней еще надо поработать.", + "Inbox.tableHeaders.challengeName": "Челлендж", + "Inbox.tableHeaders.controls": "Действия", + "Inbox.tableHeaders.created": "Отправленные", + "Inbox.tableHeaders.fromUsername": "От", + "Inbox.tableHeaders.isRead": "Прочитать", + "Inbox.tableHeaders.notificationType": "Тип", + "Inbox.tableHeaders.taskId": "Задача", + "Inbox.teamNotification.invited.lead": "You've been invited to join a team!", + "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", + "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", + "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", + "KeyMapping.openEditor.editId": "Изменить в iD", + "KeyMapping.openEditor.editJosm": "Изменить в JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmLayer": "Изменить в новом слое JOSM", + "KeyMapping.openEditor.editLevel0": "Изменить в Level0", + "KeyMapping.openEditor.editRapid": "Edit in RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Уже исправлено", + "KeyMapping.taskCompletion.confirmSubmit": "Подтвердить", + "KeyMapping.taskCompletion.falsePositive": "Не требует правок", + "KeyMapping.taskCompletion.fixed": "Я исправил это!", + "KeyMapping.taskCompletion.skip": "Пропустить", + "KeyMapping.taskCompletion.tooHard": "Too difficult / Couldn’t see", + "KeyMapping.taskEditing.cancel": "Отменить изменения", + "KeyMapping.taskEditing.escapeLabel": "Выйти", + "KeyMapping.taskEditing.fitBounds": "Подогнать карту под требования задачи", + "KeyMapping.taskInspect.nextTask": "Следующая задача", + "KeyMapping.taskInspect.prevTask": "Предыдущая задача", + "KeyboardShortcuts.control.label": "Клавиатурные сокращения", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Добавить ключевые слова", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Выбрать Теги", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Filter Tags", "KeywordAutosuggestInput.controls.search.placeholder": "Поиск", - "General.controls.moreResults.label": "Больше результатов", + "LayerSource.challengeDefault.label": "Challenge Default", + "LayerSource.userDefault.label": "По умолчанию", + "LayerToggle.controls.more.label": "Больше", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "OSM данные", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Priority Bounds", + "LayerToggle.controls.showTaskFeatures.label": "Особенности задачи", + "LayerToggle.imageCount": "({count, plural, =0 {no images} other {# images}})", + "LayerToggle.loading": "(загрузка ...)", + "Leaderboard.controls.loadMore.label": "Показать больше", + "Leaderboard.global": "Глобальный", + "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| Too Hard | 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.label": "Способ подсчета очков", + "Leaderboard.title": "Рейтинг", + "Leaderboard.updatedDaily": "Обновляется каждые 24 ч", + "Leaderboard.updatedFrequently": "Обновляется каждые 15 мин", + "Leaderboard.user.points": "Очки", + "Leaderboard.user.topChallenges": "Топ челленджей", + "Leaderboard.users.none": "Нет пользователей в обозначенный период времени", + "Locale.af.label": "af (Африкаанс)", + "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", + "Locale.de.label": "нем (Немецкий)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Испанский)", + "Locale.fa-IR.label": "fa-IR (Persian - Iran)", + "Locale.fr.label": "fr (Французский)", + "Locale.ja.label": "ja (Японский)", + "Locale.ko.label": "ko (Корейский)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "рус-РУС (Русский-Россия)", + "Locale.uk.label": "uk (Ukrainian)", + "Metrics.completedTasksTitle": "Выполненные задачи", + "Metrics.leaderboard.globalRank.label": "Глобальный рейтинг", + "Metrics.leaderboard.topChallenges.label": "Топ челленджей", + "Metrics.leaderboard.totalPoints.label": "Всего очков", + "Metrics.leaderboardTitle": "Рейтинг", + "Metrics.reviewStats.approved.label": "Проверенные и одобренные задачи", + "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", + "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", + "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", + "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", + "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", + "Metrics.reviewStats.assisted.label": "Проверенные задачи, одобренные с замечаниями", + "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", + "Metrics.reviewStats.awaiting.label": "Задачи, ожидающие проверки", + "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", + "Metrics.reviewStats.rejected.label": "Неодобренные задачи", + "Metrics.reviewedTasksTitle": "Статус проверки", + "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", + "Metrics.tasks.evaluatedByUser.label": "Tasks Evaluated by Users", + "Metrics.totalCompletedTasksTitle": "Полностью выполненные задачи", + "Metrics.userOptedOut": "Этот пользователь отказался от публичного отображения своей статистики.", + "Metrics.userSince": "Пользователь с:", "MobileNotSupported.header": "Пожалуйста, зайдите со своего компьютера", "MobileNotSupported.message": "Извините, MapRoulette пока не поддерживается на мобильных устройствах.", "MobileNotSupported.pageMessage": "Извините, эта страница пока не совместима с мобильными устройствами и небольшими экранами.", "MobileNotSupported.widenDisplay": "Если вы используете компьютер, раскройте окно на весь экран или используйте монитор побольше.", - "Navbar.links.dashboard": "Панель управления", + "MobileTask.subheading.instructions": "Инструкции", + "Navbar.links.admin": "Создать и управлять", "Navbar.links.challengeResults": "Найти челленджи", - "Navbar.links.leaderboard": "Рейтинг", + "Navbar.links.dashboard": "Панель управления", + "Navbar.links.globalActivity": "Global Activity", + "Navbar.links.help": "Изучить", "Navbar.links.inbox": "Входящие", + "Navbar.links.leaderboard": "Рейтинг", "Navbar.links.review": "Проверка", - "Navbar.links.admin": "Создать и управлять", - "Navbar.links.help": "Изучить", - "Navbar.links.userProfile": "Настройки пользователя", - "Navbar.links.userMetrics": "Метрики пользователя", "Navbar.links.signout": "Выход", - "PageNotFound.message": "Упс! Страница, которую вы ищете, недоступна.", + "Navbar.links.teams": "Teams", + "Navbar.links.userMetrics": "Метрики пользователя", + "Navbar.links.userProfile": "Настройки пользователя", + "Notification.type.challengeCompleted": "Completed", + "Notification.type.challengeCompletedLong": "Challenge Completed", + "Notification.type.follow": "Follow", + "Notification.type.mention": "Mention", + "Notification.type.review.again": "Проверить", + "Notification.type.review.approved": "Одобрено", + "Notification.type.review.rejected": "Revise", + "Notification.type.system": "Система", + "Notification.type.team": "Team", "PageNotFound.homePage": "Домой", - "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", - "PastDurationSelector.currentMonth.selectOption": "Текущий месяц", + "PageNotFound.message": "Упс! Страница, которую вы ищете, недоступна.", + "Pages.SignIn.modal.prompt": "Пожалуйста, войдите чтобы продолжить", + "Pages.SignIn.modal.title": "Добро пожаловать обратно!", "PastDurationSelector.allTime.selectOption": "Всё время ", + "PastDurationSelector.currentMonth.selectOption": "Текущий месяц", + "PastDurationSelector.customRange.controls.search.label": "Поиск", + "PastDurationSelector.customRange.endDate": "Дата окончания", "PastDurationSelector.customRange.selectOption": "Custom", "PastDurationSelector.customRange.startDate": "Дата начала", - "PastDurationSelector.customRange.endDate": "Дата окончания", - "PastDurationSelector.customRange.controls.search.label": "Поиск", + "PastDurationSelector.pastMonths.selectOption": "Past {months, plural, one {Month} =12 {Year} other {# Months}}", "PointsTicker.label": "Мои очки", "PopularChallenges.header": "Популярные челленджи", "PopularChallenges.none": "Нет Вызовов", + "Profile.apiKey.controls.copy.label": "Копировать", + "Profile.apiKey.controls.reset.label": "Сбросить", + "Profile.apiKey.header": "API ключ", + "Profile.form.allowFollowing.description": "If no, users will not be able to follow your MapRoulette activity.", + "Profile.form.allowFollowing.label": "Allow Following", + "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Custom Basemap", + "Profile.form.defaultBasemap.description": "Выбрать основу для отображения по умолчанию. Установленная по умолчанию основа челленджа не будет меняться на выбранную вами.", + "Profile.form.defaultBasemap.label": "Основа по умолчанию", + "Profile.form.defaultEditor.description": "Выберите редактор по умолчанию для внесения правок. При выборе этой опции диалоговое окно с выбором редактора после нажатия на Изменить в задаче будет пропускаться.", + "Profile.form.defaultEditor.label": "Редактор по умолчанию", + "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.label": "Адрес электронной почты", + "Profile.form.isReviewer.description": "Волонтер-проверяющий задач, для которых запрошена проверка", + "Profile.form.isReviewer.label": "Волонтер в качестве проверяющего", + "Profile.form.leaderboardOptOut.description": "Если да, то вы не будете показаны в публичном рейтинге.", + "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", + "Profile.form.locale.description": "User locale to use for MapRoulette UI.", + "Profile.form.locale.label": "Locale", + "Profile.form.mandatory.label": "Обязательно", + "Profile.form.needsReview.description": "Автоматически запрашивать проверку человеком каждой выполненной вами задачи", + "Profile.form.needsReview.label": "Запросить проверку всей работы", + "Profile.form.no.label": "Нет", + "Profile.form.notification.label": "Уведомления", + "Profile.form.notificationSubscriptions.description": "Решите, какие уведомления MapRoulette вы хотите получать, вместе с тем, хотите ли вы получить электронное письмо с уведомлением об уведомлении (немедленно или в качестве еженедельной рассылки)", + "Profile.form.notificationSubscriptions.label": "Подписка на уведомления", + "Profile.form.yes.label": "Да", + "Profile.noUser": "Пользователь не найден или у вас недостаточно прав его видеть.", + "Profile.page.title": "User Settings", + "Profile.settings.header": "Общее", + "Profile.userSince": "Пользователь с:", + "Project.fields.viewLeaderboard.label": "Показать Рейтинг", + "Project.indicator.label": "Проект", "ProjectDetails.controls.goBack.label": "Вернуться", - "ProjectDetails.controls.unsave.label": "Не сохранять", "ProjectDetails.controls.save.label": "Сохранить", - "ProjectDetails.management.controls.manage.label": "Manage", - "ProjectDetails.management.controls.start.label": "Начать", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {No challenges} one {# challenge} other {# challenges}} remaining in {isVirtual, select, true {virtual } other {}}project", - "ProjectDetails.fields.featured.label": "Featured", + "ProjectDetails.controls.unsave.label": "Не сохранять", + "ProjectDetails.fields.challengeCount.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} remaining in {isVirtual,select, true{virtual } other{}}project", "ProjectDetails.fields.created.label": "Создано", + "ProjectDetails.fields.featured.label": "Featured", "ProjectDetails.fields.modified.label": "Изменено", "ProjectDetails.fields.viewLeaderboard.label": "Показать Рейтинг", "ProjectDetails.fields.viewReviews.label": "Review", - "QuickWidget.failedToLoad": "Widget Failed", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Обновить статус проверки", - "Admin.TaskReview.controls.currentTaskStatus.label": "Статус задачи:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Статус проверки:", - "Admin.TaskReview.controls.taskTags.label": "Теги:", - "Admin.TaskReview.controls.reviewNotRequested": "Для данной задачи проверка не запрошена.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Эта задача уже кем-то проверена.", - "Admin.TaskReview.controls.userNotReviewer": "You are not currently setup as a reviewer. To become a reviewer you can do so by visiting your user settings.", - "Admin.TaskReview.reviewerIsMapper": "Вы не можете проверить выполненные вами задачи.", - "Admin.TaskReview.controls.taskNotCompleted": "Задача не готова к проверке, т.к. она еще не выполнена.", - "Admin.TaskReview.controls.approved": "Одобрить", - "Admin.TaskReview.controls.rejected": "Отклонить", - "Admin.TaskReview.controls.approvedWithFixes": "Одобрить (с замечаниями)", - "Admin.TaskReview.controls.startReview": "Начать проверку", - "Admin.TaskReview.controls.skipReview": "Skip Review", - "Admin.TaskReview.controls.resubmit": "Запросить проверку снова", - "ReviewTaskPane.indicators.locked.label": "Задание заблокировано", + "ProjectDetails.management.controls.manage.label": "Manage", + "ProjectDetails.management.controls.start.label": "Начать", + "ProjectPickerModal.chooseProject": "Выбрать Проект", + "ProjectPickerModal.noProjects": "Не найдено проектов", + "PropertyList.noProperties": "No Properties", + "PropertyList.title": "Properties", + "QuickWidget.failedToLoad": "Widget Failed", + "RebuildTasksControl.label": "Восстановить задачи", + "RebuildTasksControl.modal.controls.cancel.label": "Отмена", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Date data was sourced", + "RebuildTasksControl.modal.controls.proceed.label": "Proceed", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "Сначала удалите невыполненные задачи", + "RebuildTasksControl.modal.explanation": "* Existing tasks included in the latest data will be updated\n* New tasks will be added\n* If you choose to first remove incomplete tasks (below), existing __incomplete__ tasks will first be removed\n* If you do not first remove incomplete tasks, they will be left as-is, possibly leaving tasks that have already been addressed outside of MapRoulette", + "RebuildTasksControl.modal.intro.local": "Восстановление позволит вам наполнить новый локальный файл свежими данными GeoJSON и восстановить задачи челленджа:", + "RebuildTasksControl.modal.intro.overpass": "Rebuilding will re-run the Overpass query and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.intro.remote": "Rebuilding will re-download the GeoJSON data from the challenge’s remote URL and rebuild the challenge tasks with the latest data:", + "RebuildTasksControl.modal.moreInfo": "[Узнать больше] (https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Восстановить задачи челленджа", + "RebuildTasksControl.modal.warning": "Warning: Rebuilding can lead to task duplication if your feature ids are not setup properly or if matching up old data with new data is unsuccessful. This operation cannot be undone!", + "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", + "Review.Dashboard.goBack.label": "Reconfigure Reviews", + "Review.Dashboard.myReviewTasks": "Мои проверенные задачи", + "Review.Dashboard.tasksReviewedByMe": "Задачи, проверенные мной", + "Review.Dashboard.tasksToBeReviewed": "Задачи на проверку", + "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", + "Review.Task.fields.id.label": "Внутренний идентификатор", + "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", + "Review.TaskAnalysisTable.columnHeaders.actions": "Действия", + "Review.TaskAnalysisTable.columnHeaders.comments": "Комментарии", + "Review.TaskAnalysisTable.configureColumns": "Configure columns", + "Review.TaskAnalysisTable.controls.fixTask.label": "Внести правки", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Проверить", + "Review.TaskAnalysisTable.controls.viewTask.label": "Показать", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Действия", + "Review.TaskAnalysisTable.myReviewTasks": "Мои выполненные задачи после проверки", + "Review.TaskAnalysisTable.noTasks": "Не найдено задач", + "Review.TaskAnalysisTable.noTasksReviewed": "Ни одна из ваших задач не проверена.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "Вы не проверяли никаких задач.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Лимит любимых челленджей", + "Review.TaskAnalysisTable.refresh": "Обновить", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Действия", + "Review.TaskAnalysisTable.reviewerControls.label": "Действия", + "Review.TaskAnalysisTable.startReviewing": "Проверить эти задачи", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Задачи, проверенные мной", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Задачи на проверку", + "Review.TaskAnalysisTable.totalTasks": "Всего: {countShown}", + "Review.fields.challenge.label": "Челлендж", + "Review.fields.mappedOn.label": "Mapped On", + "Review.fields.priority.label": "Приоритет", + "Review.fields.project.label": "Проект", + "Review.fields.requestedBy.label": "Маппер", + "Review.fields.reviewStatus.label": "Статус проверки", + "Review.fields.reviewedAt.label": "Reviewed On", + "Review.fields.reviewedBy.label": "Проверяющий", + "Review.fields.status.label": "Статус", + "Review.fields.tags.label": "Теги", + "Review.multipleTasks.tooltip": "Multiple bundled tasks", + "Review.tableFilter.reviewByAllChallenges": "Все Вызовы", + "Review.tableFilter.reviewByAllProjects": "Все Проекты", + "Review.tableFilter.reviewByChallenge": "Review by challenge", + "Review.tableFilter.reviewByProject": "Review by project", + "Review.tableFilter.viewAllTasks": "Показать все задания", + "Review.tablefilter.chooseFilter": "Выбрать проект или вызов", + "ReviewMap.metrics.title": "Карта проверок", + "ReviewStatus.metrics.alreadyFixed": "УЖЕ ИСПРАВЛЕНО", + "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", + "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", + "ReviewStatus.metrics.averageTime.label": "Avg time per review:", + "ReviewStatus.metrics.awaitingReview": "Задачи, ожидающие проверки", + "ReviewStatus.metrics.byTaskStatus.toggle": "Показать Задания по Статусу", + "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", + "ReviewStatus.metrics.falsePositive": "НЕ ТРЕБУЕТ ПРАВОК", + "ReviewStatus.metrics.fixed": "ИСПРАВЛЕНО", + "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", + "ReviewStatus.metrics.priority.toggle": "Показать Задания по Приоритету", + "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", + "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", + "ReviewStatus.metrics.title": "Статус проверки", + "ReviewStatus.metrics.tooHard": "СЛИШКОМ СЛОЖНО", "ReviewTaskPane.controls.unlock.label": "Разблокировать", + "ReviewTaskPane.indicators.locked.label": "Задание заблокировано", "RolePicker.chooseRole.label": "Choose Role", - "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", - "Challenge.controls.unsave.tooltip": "Unfavorite Challenge", "SavedChallenges.widget.noChallenges": "Нет Вызовов", "SavedChallenges.widget.startChallenge": "Начать Вызов", - "UserProfile.savedTasks.header": "Отслеживаемые задачи", - "Task.unsave.control.tooltip": "Остановить отслеживание", "SavedTasks.widget.noTasks": "Нет Заданий", "SavedTasks.widget.viewTask": "Показать Задание", "ScreenTooNarrow.header": "Пожалуйста, раскройте полностью окно вашего браузера", "ScreenTooNarrow.message": "Эта страница не совместима с небольшими экранами. Пожалуйста, раскройте полностью окно браузера или переключитесь на более крупное устройство или экран.", - "ChallengeFilterSubnav.query.searchType.project": "Проекты", - "ChallengeFilterSubnav.query.searchType.challenge": "Вызовы", "ShareLink.controls.copy.label": "Копировать", "SignIn.control.label": "Войти", "SignIn.control.longLabel": "Войти, чтобы начать", - "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", - "TagDiffVisualization.header": "Proposed OSM Tags", - "TagDiffVisualization.current.label": "Текущий", - "TagDiffVisualization.proposed.label": "Proposed", - "TagDiffVisualization.noChanges": "No Tag Changes", - "TagDiffVisualization.noChangeset": "No changeset would be uploaded", - "TagDiffVisualization.controls.tagList.tooltip": "Показать как список тегов", + "StartFollowing.controls.chooseOSMUser.placeholder": "OpenStreetMap username", + "StartFollowing.controls.follow.label": "Follow", + "StartFollowing.header": "Follow a User", + "StepNavigation.controls.cancel.label": "Отмена", + "StepNavigation.controls.finish.label": "Закончить", + "StepNavigation.controls.next.label": "Следующий", + "StepNavigation.controls.prev.label": "Предыдущий", + "Subscription.type.dailyEmail": "Получать и оповещать по электронной почте ежедневно", + "Subscription.type.ignore": "Игнорировать", + "Subscription.type.immediateEmail": "Получать и оповещать по электронной почте немедленно", + "Subscription.type.noEmail": "Получать, но не оповещать по электронной почте", + "TagDiffVisualization.controls.addTag.label": "Добавить Тег", + "TagDiffVisualization.controls.cancelEdits.label": "Отменить", "TagDiffVisualization.controls.changeset.tooltip": "View as OSM changeset", + "TagDiffVisualization.controls.deleteTag.tooltip": "Удалить тег", "TagDiffVisualization.controls.editTags.tooltip": "Изменить теги", "TagDiffVisualization.controls.keepTag.label": "Keep Tag", - "TagDiffVisualization.controls.addTag.label": "Добавить Тег", - "TagDiffVisualization.controls.deleteTag.tooltip": "Удалить тег", - "TagDiffVisualization.controls.saveEdits.label": "Сделано", - "TagDiffVisualization.controls.cancelEdits.label": "Отменить", "TagDiffVisualization.controls.restoreFix.label": "Revert Edits", "TagDiffVisualization.controls.restoreFix.tooltip": "Restore initial proposed tags", + "TagDiffVisualization.controls.saveEdits.label": "Сделано", + "TagDiffVisualization.controls.tagList.tooltip": "Показать как список тегов", "TagDiffVisualization.controls.tagName.placeholder": "Название Тега", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Действия", - "TasksTable.invert.abel": "invert", - "TasksTable.inverted.label": "inverted", - "Task.fields.id.label": "Внутренний идентификатор", - "Task.fields.featureId.label": "Feature Id", - "Task.fields.status.label": "Статус", - "Task.fields.priority.label": "Приоритет", - "Task.fields.mappedOn.label": "Mapped On", - "Task.fields.reviewStatus.label": "Статус проверки", - "Task.fields.completedBy.label": "Completed By", - "Admin.fields.completedDuration.label": "Completion Time", - "Task.fields.requestedBy.label": "Маппер", - "Task.fields.reviewedBy.label": "Проверяющий", - "Admin.fields.reviewedAt.label": "На проверке", - "Admin.fields.reviewDuration.label": "Review Time", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Комментарии", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Теги", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Inspect", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Проверить", - "Admin.TaskAnalysisTable.controls.editTask.label": "Редактировать", - "Admin.TaskAnalysisTable.controls.startTask.label": "Начать", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Выбрать задания", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Shown: {countShown} Tasks", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Selected: {selectedCount} Tasks", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Shown: {percentShown}% ({countShown}) of {countTotal} Tasks", - "Admin.manageTasks.controls.changeStatusTo.label": "Изменить статус на", - "Admin.manageTasks.controls.chooseStatus.label": "Выбрать ...", - "Admin.manageTasks.controls.changeReviewStatus.label": "Remove from review queue", - "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", - "Admin.manageTasks.controls.hideReviewColumns.label": "Спрятать колонки проверки", - "Admin.manageTasks.controls.configureColumns.label": "Configure Columns", - "Admin.manageTasks.controls.exportCSV.label": "Экспорт в CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Экспорт GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Export Mapper Review CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Shown", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Multiple bundled tasks", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Member of a task bundle", - "ReviewMap.metrics.title": "Карта проверок", - "TaskClusterMap.controls.clusterTasks.label": "Cluster", - "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", - "TaskClusterMap.message.nearMe.label": "Рядом со мной", - "TaskClusterMap.message.or.label": "или", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {No tasks found} one {# task found} other {# tasks found}}", - "TaskClusterMap.message.moveMapToRefresh.label": "Нажать для показа заданий", - "Task.controls.completionComment.placeholder": "Ваш комментарий", - "Task.comments.comment.controls.submit.label": "Подтвердить", - "Task.controls.completionComment.write.label": "Write", - "Task.controls.completionComment.preview.label": "Preview", - "TaskCommentsModal.header": "Комментарии", - "TaskConfirmationModal.header": "Пожалуйста, подтвердите", - "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", - "TaskConfirmationModal.disputeRevisionHeader": "Пожалуйста, подтвердите несогласие с проверкой", - "TaskConfirmationModal.inReviewHeader": "Пожалуйста, подтвердите проверку", - "TaskConfirmationModal.comment.label": "Оставьте любой комментарий", - "TaskConfirmationModal.review.label": "Нужна дополнительная проверка ваших правок? Отметьте здесь", - "TaskConfirmationModal.loadBy.label": "Следующая задача:", - "TaskConfirmationModal.loadNextReview.label": "Proceed With:", - "TaskConfirmationModal.cancel.label": "Отмена", - "TaskConfirmationModal.submit.label": "Подтвердить", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", - "TaskConfirmationModal.osmComment.header": "OSM Change Comment", - "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", - "TaskConfirmationModal.comment.placeholder": "Ваш комментарий (необязательно)", - "TaskConfirmationModal.nextNearby.label": "Выберите ваше следующее ближайшее задание (необязательно)", - "TaskConfirmationModal.addTags.placeholder": "Добавить MR-теги", - "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", - "TaskConfirmationModal.done.label": "Сделано", - "TaskConfirmationModal.useChallenge.label": "Использовать текущий Вызов", - "TaskConfirmationModal.reviewStatus.label": "Review Status:", - "TaskConfirmationModal.status.label": "Статус:", - "TaskConfirmationModal.priority.label": "Приоритет:", - "TaskConfirmationModal.challenge.label": "Вызов:", - "TaskConfirmationModal.mapper.label": "Маппер:", - "TaskPropertyFilter.label": "Filter By Property", - "TaskPriorityFilter.label": "Filter by Priority", - "TaskStatusFilter.label": "Filter by Status", - "TaskReviewStatusFilter.label": "Filter by Review Status", - "TaskHistory.fields.startedOn.label": "Started on task", - "TaskHistory.controls.viewAttic.label": "View Attic", - "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", - "CooperativeWorkControls.prompt": "Are the proposed OSM tag changes correct?", - "CooperativeWorkControls.controls.confirm.label": "Да", - "CooperativeWorkControls.controls.reject.label": "Нет", - "CooperativeWorkControls.controls.moreOptions.label": "Другое", - "Task.markedAs.label": "Задачи, помеченные как", - "Task.requestReview.label": "запросить проверку?", + "TagDiffVisualization.current.label": "Текущий", + "TagDiffVisualization.header": "Proposed OSM Tags", + "TagDiffVisualization.justChangesHeader": "Proposed OSM Tag Changes", + "TagDiffVisualization.noChanges": "No Tag Changes", + "TagDiffVisualization.noChangeset": "No changeset would be uploaded", + "TagDiffVisualization.proposed.label": "Proposed", "Task.awaitingReview.label": "Задача ожидает проверки.", - "Task.readonly.message": "Previewing task in read-only mode", - "Task.controls.viewChangeset.label": "View Changeset", - "Task.controls.moreOptions.label": "Больше настроек", + "Task.comments.comment.controls.submit.label": "Подтвердить", "Task.controls.alreadyFixed.label": "Уже исправлено", "Task.controls.alreadyFixed.tooltip": "Уже исправлено", "Task.controls.cancelEditing.label": "Отменить изменения", - "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", - "ActiveTask.controls.fixed.label": "Я исправил это!", - "ActiveTask.controls.notFixed.label": "Слишком сложно/ Не видно", - "ActiveTask.controls.aleadyFixed.label": "Уже исправлено", - "ActiveTask.controls.cancelEditing.label": "Вернуться", + "Task.controls.completionComment.placeholder": "Ваш комментарий", + "Task.controls.completionComment.preview.label": "Preview", + "Task.controls.completionComment.write.label": "Write", + "Task.controls.contactLink.label": "Message {owner} through OSM", + "Task.controls.contactOwner.label": "Связь с владельцем", "Task.controls.edit.label": "Редактировать", "Task.controls.edit.tooltip": "Редактировать", "Task.controls.falsePositive.label": "Не требует поправок", "Task.controls.falsePositive.tooltip": "Не требует поправок", "Task.controls.fixed.label": "Я исправил это!", "Task.controls.fixed.tooltip": "Я исправил это!", + "Task.controls.moreOptions.label": "Больше настроек", "Task.controls.next.label": "Следующая задача", - "Task.controls.next.tooltip": "Следующая задача", "Task.controls.next.loadBy.label": "Загрузить Следующее:", + "Task.controls.next.tooltip": "Следующая задача", "Task.controls.nextNearby.label": "Выбрать следующее ближайшее задание", + "Task.controls.revised.dispute": "Не согласиться с проверкой", "Task.controls.revised.label": "Revision Complete", - "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.revised.resubmit": "Resubmit for review", - "Task.controls.revised.dispute": "Не согласиться с проверкой", + "Task.controls.revised.tooltip": "Revision Complete", "Task.controls.skip.label": "Пропустить", "Task.controls.skip.tooltip": "Пропустить задачу", - "Task.controls.tooHard.label": "Слишком сложно / Не видно", - "Task.controls.tooHard.tooltip": "Слишком сложно / Не видно", - "KeyboardShortcuts.control.label": "Клавиатурные сокращения", - "ActiveTask.keyboardShortcuts.label": "Показать клавиатурные сокращения", - "ActiveTask.controls.info.tooltip": "Подробности задачи", - "ActiveTask.controls.comments.tooltip": "Показать комментарии", - "ActiveTask.subheading.comments": "Комментарии", - "ActiveTask.heading": "Информация о челлендже", - "ActiveTask.subheading.instructions": "Инструкции", - "ActiveTask.subheading.location": "Локация", - "ActiveTask.subheading.progress": "Прогресс челленджа", - "ActiveTask.subheading.social": "Поделиться", - "Task.pane.controls.inspect.label": "Inspect", - "Task.pane.indicators.locked.label": "Задание заблокировано", - "Task.pane.indicators.readOnly.label": "Read-only Preview", - "Task.pane.controls.unlock.label": "Разблокировать", - "Task.pane.controls.tryLock.label": "Try locking", - "Task.pane.controls.preview.label": "Preview Task", - "Task.pane.controls.browseChallenge.label": "Browse Challenge", - "Task.pane.controls.retryLock.label": "Retry Lock", - "Task.pane.lockFailedDialog.title": "Невозможно заблокировать Задание", - "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", - "Task.pane.controls.saveChanges.label": "Сохранить изменения", - "MobileTask.subheading.instructions": "Инструкции", - "Task.management.heading": "Настройки управления", - "Task.management.controls.inspect.label": "Inspect", - "Task.management.controls.modify.label": "Изменить", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Текущая задача", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "Нет доступных ближайших заданий.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Приоритет:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Статус:", - "Challenge.controls.taskLoadBy.label": "Load tasks by:", + "Task.controls.step1.revisionNeeded": "This task needs revision. Be sure to check comments for any details.", + "Task.controls.tooHard.label": "Too hard / Can’t see", + "Task.controls.tooHard.tooltip": "Too hard / Can’t see", "Task.controls.track.label": "Отслеживать эту задачу", "Task.controls.untrack.label": "Остановить отслеживание этой задачи", - "TaskPropertyQueryBuilder.controls.search": "Поиск", - "TaskPropertyQueryBuilder.controls.clear": "Clear", + "Task.controls.viewChangeset.label": "View Changeset", + "Task.fauxStatus.available": "Доступный", + "Task.fields.completedBy.label": "Completed By", + "Task.fields.featureId.label": "Feature Id", + "Task.fields.id.label": "Внутренний идентификатор", + "Task.fields.mappedOn.label": "Mapped On", + "Task.fields.priority.label": "Приоритет", + "Task.fields.requestedBy.label": "Маппер", + "Task.fields.reviewStatus.label": "Статус проверки", + "Task.fields.reviewedBy.label": "Проверяющий", + "Task.fields.status.label": "Статус", + "Task.loadByMethod.proximity": "Ближайшее", + "Task.loadByMethod.random": "Случайный", + "Task.management.controls.inspect.label": "Inspect", + "Task.management.controls.modify.label": "Изменить", + "Task.management.heading": "Настройки управления", + "Task.markedAs.label": "Задачи, помеченные как", + "Task.pane.controls.browseChallenge.label": "Browse Challenge", + "Task.pane.controls.inspect.label": "Inspect", + "Task.pane.controls.preview.label": "Preview Task", + "Task.pane.controls.retryLock.label": "Retry Lock", + "Task.pane.controls.saveChanges.label": "Сохранить изменения", + "Task.pane.controls.tryLock.label": "Try locking", + "Task.pane.controls.unlock.label": "Разблокировать", + "Task.pane.indicators.locked.label": "Задание заблокировано", + "Task.pane.indicators.readOnly.label": "Read-only Preview", + "Task.pane.lockFailedDialog.prompt": "Task lock could not be acquired. A read-only preview is available.", + "Task.pane.lockFailedDialog.title": "Невозможно заблокировать Задание", + "Task.priority.high": "Высокий", + "Task.priority.low": "Низкий", + "Task.priority.medium": "Средний", + "Task.property.operationType.and": "и", + "Task.property.operationType.or": "или", + "Task.property.searchType.contains": "contains", + "Task.property.searchType.equals": "equals", + "Task.property.searchType.exists": "exists", + "Task.property.searchType.missing": "missing", + "Task.property.searchType.notEqual": "doesn’t equal", + "Task.readonly.message": "Previewing task in read-only mode", + "Task.requestReview.label": "запросить проверку?", + "Task.review.loadByMethod.all": "Back to Review All", + "Task.review.loadByMethod.inbox": "Вернуться во входящие", + "Task.review.loadByMethod.nearby": "Nearby Task", + "Task.review.loadByMethod.next": "Next Filtered Task", + "Task.reviewStatus.approved": "Одобрено", + "Task.reviewStatus.approvedWithFixes": "Одобрено с замечаниями", + "Task.reviewStatus.disputed": "Contested", + "Task.reviewStatus.needed": "Запрошенная проверка", + "Task.reviewStatus.rejected": "Нуждается в пересмотре", + "Task.reviewStatus.unnecessary": "Unnecessary", + "Task.reviewStatus.unset": "Проверка еще не запрошена", + "Task.status.alreadyFixed": "Уже исправлено", + "Task.status.created": "Создано", + "Task.status.deleted": "Удалено", + "Task.status.disabled": "Disabled", + "Task.status.falsePositive": "Не требует правок", + "Task.status.fixed": "Исправлено", + "Task.status.skipped": "Пропущено", + "Task.status.tooHard": "Слишком сложно", + "Task.taskTags.add.label": "Добавить MR-теги", + "Task.taskTags.addTags.placeholder": "Добавить MR-теги", + "Task.taskTags.cancel.label": "Отмена", + "Task.taskTags.label": "MR-теги:", + "Task.taskTags.modify.label": "Изменить MR-теги", + "Task.taskTags.save.label": "Сохранить", + "Task.taskTags.update.label": "Обновить MR-теги", + "Task.unsave.control.tooltip": "Остановить отслеживание", + "TaskClusterMap.controls.clusterTasks.label": "Cluster", + "TaskClusterMap.message.moveMapToRefresh.label": "Нажать для показа заданий", + "TaskClusterMap.message.nearMe.label": "Рядом со мной", + "TaskClusterMap.message.or.label": "или", + "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", + "TaskClusterMap.message.zoomInForTasks.label": "Zoom in to view tasks", + "TaskCommentsModal.header": "Комментарии", + "TaskConfirmationModal.addTags.placeholder": "Добавить MR-теги", + "TaskConfirmationModal.adjustFilters.label": "Adjust Filters", + "TaskConfirmationModal.cancel.label": "Отмена", + "TaskConfirmationModal.challenge.label": "Вызов:", + "TaskConfirmationModal.comment.header": "MapRoulette Comment (optional)", + "TaskConfirmationModal.comment.label": "Оставьте любой комментарий", + "TaskConfirmationModal.comment.placeholder": "Ваш комментарий (необязательно)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Inspect changeset", + "TaskConfirmationModal.disputeRevisionHeader": "Пожалуйста, подтвердите несогласие с проверкой", + "TaskConfirmationModal.done.label": "Сделано", + "TaskConfirmationModal.header": "Пожалуйста, подтвердите", + "TaskConfirmationModal.inReviewHeader": "Пожалуйста, подтвердите проверку", + "TaskConfirmationModal.invert.label": "invert", + "TaskConfirmationModal.inverted.label": "inverted", + "TaskConfirmationModal.loadBy.label": "Следующая задача:", + "TaskConfirmationModal.loadNextReview.label": "Proceed With:", + "TaskConfirmationModal.mapper.label": "Маппер:", + "TaskConfirmationModal.nextNearby.label": "Выберите ваше следующее ближайшее задание (необязательно)", + "TaskConfirmationModal.osmComment.header": "OSM Change Comment", + "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", + "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.priority.label": "Приоритет:", + "TaskConfirmationModal.review.label": "Нужна дополнительная проверка ваших правок? Отметьте здесь", + "TaskConfirmationModal.reviewStatus.label": "Review Status:", + "TaskConfirmationModal.status.label": "Статус:", + "TaskConfirmationModal.submit.label": "Подтвердить", + "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.useChallenge.label": "Использовать текущий Вызов", + "TaskHistory.controls.viewAttic.label": "View Attic", + "TaskHistory.fields.startedOn.label": "Started on task", + "TaskHistory.fields.taskUpdated.label": "Task updated by challenge manager", + "TaskPriorityFilter.label": "Filter by Priority", + "TaskPropertyFilter.label": "Filter By Property", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", "TaskPropertyQueryBuilder.controls.addValue": "Add Value", - "TaskPropertyQueryBuilder.options.none.label": "None", - "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", + "TaskPropertyQueryBuilder.controls.clear": "Clear", + "TaskPropertyQueryBuilder.controls.search": "Поиск", "TaskPropertyQueryBuilder.error.missingKey": "Please select a property name.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", + "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.propertyType.stringType": "text", - "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.options.none.label": "None", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Comma separate values", - "ActiveTask.subheading.status": "Существующий статус", - "ActiveTask.controls.status.tooltip": "Существующий статус", - "ActiveTask.controls.viewChangset.label": "Посмотреть набор изменений", - "Task.taskTags.label": "MR-теги:", - "Task.taskTags.add.label": "Добавить MR-теги", - "Task.taskTags.update.label": "Обновить MR-теги", - "Task.taskTags.save.label": "Сохранить", - "Task.taskTags.cancel.label": "Отмена", - "Task.taskTags.modify.label": "Изменить MR-теги", - "Task.taskTags.addTags.placeholder": "Добавить MR-теги", + "TaskPropertyQueryBuilder.propertyType.numberType": "number", + "TaskPropertyQueryBuilder.propertyType.stringType": "text", + "TaskReviewStatusFilter.label": "Filter by Review Status", + "TaskStatusFilter.label": "Filter by Status", + "TasksTable.invert.abel": "invert", + "TasksTable.inverted.label": "inverted", + "Taxonomy.indicators.cooperative.label": "Cooperative", + "Taxonomy.indicators.favorite.label": "Favorite", + "Taxonomy.indicators.featured.label": "Featured", "Taxonomy.indicators.newest.label": "Newest", "Taxonomy.indicators.popular.label": "Популярные", - "Taxonomy.indicators.featured.label": "Featured", - "Taxonomy.indicators.favorite.label": "Favorite", "Taxonomy.indicators.tagFix.label": "Tag Fix", - "Taxonomy.indicators.cooperative.label": "Cooperative", - "AddTeamMember.controls.chooseRole.label": "Choose Role", - "AddTeamMember.controls.chooseOSMUser.placeholder": "OpenStreetMap username", - "Team.name.label": "Название", - "Team.name.description": "The unique name of the team", - "Team.description.label": "Описание", - "Team.description.description": "Краткое описание команды", - "Team.controls.save.label": "Сохранить", + "Team.Status.invited": "Приглашенный", + "Team.Status.member": "Участник", + "Team.activeMembers.header": "Активные Участники", + "Team.addMembers.header": "Пригласить нового участника", + "Team.controls.acceptInvite.label": "Присоединиться к Команде", "Team.controls.cancel.label": "Отменить", + "Team.controls.declineInvite.label": "Decline Invite", + "Team.controls.delete.label": "Удалить Команду", + "Team.controls.edit.label": "Изменить Команду", + "Team.controls.leave.label": "Покинуть Команду", + "Team.controls.save.label": "Сохранить", + "Team.controls.view.label": "Показать Команду", + "Team.description.description": "Краткое описание команды", + "Team.description.label": "Описание", + "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Присоединиться к Команде", "Team.member.controls.declineInvite.label": "Decline Invite", "Team.member.controls.delete.label": "Удалить Пользователя", "Team.member.controls.leave.label": "Покинуть Команду", "Team.members.indicator.you.label": "(you)", + "Team.name.description": "The unique name of the team", + "Team.name.label": "Название", "Team.noTeams": "Вы не состоите ни в одной команде", - "Team.controls.view.label": "Показать Команду", - "Team.controls.edit.label": "Изменить Команду", - "Team.controls.delete.label": "Удалить Команду", - "Team.controls.acceptInvite.label": "Присоединиться к Команде", - "Team.controls.declineInvite.label": "Decline Invite", - "Team.controls.leave.label": "Покинуть Команду", - "Team.activeMembers.header": "Активные Участники", - "Team.invitedMembers.header": "Pending Invitations", - "Team.addMembers.header": "Пригласить нового участника", - "UserProfile.topChallenges.header": "Ваш топ челленджей", "TopUserChallenges.widget.label": "Ваш топ челленджей", "TopUserChallenges.widget.noChallenges": "Нет Вызовов", "UserEditorSelector.currentEditor.label": "Текущий редактор:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Виртуальный челлендж", + "UserProfile.favoriteChallenges.header": "Your Favorite Challenges", + "UserProfile.savedTasks.header": "Отслеживаемые задачи", + "UserProfile.topChallenges.header": "Ваш топ челленджей", + "VirtualChallenge.controls.create.label": "Work on {taskCount, number} Mapped Tasks", + "VirtualChallenge.controls.tooMany.label": "Zoom in to work on mapped tasks", + "VirtualChallenge.controls.tooMany.tooltip": "At most {maxTasks, number} tasks can be included in a \"virtual\" challenge", + "VirtualChallenge.fields.name.label": "Name your \"virtual\" challenge", "WidgetPicker.menuLabel": "Добавить виджет", + "WidgetWorkspace.controls.addConfiguration.label": "Добавить новый макет", + "WidgetWorkspace.controls.deleteConfiguration.label": "Удалить макет", + "WidgetWorkspace.controls.editConfiguration.label": "Изменить макет", + "WidgetWorkspace.controls.exportConfiguration.label": "Экспорт макета", + "WidgetWorkspace.controls.importConfiguration.label": "Импорт макета", + "WidgetWorkspace.controls.resetConfiguration.label": "Выбрать макет по умолчанию", + "WidgetWorkspace.controls.saveConfiguration.label": "Сохранить изменения", + "WidgetWorkspace.exportModal.controls.cancel.label": "Отмена", + "WidgetWorkspace.exportModal.controls.download.label": "Загрузить", + "WidgetWorkspace.exportModal.fields.name.label": "Название макета", + "WidgetWorkspace.exportModal.header": "Экспорт вашего макета", + "WidgetWorkspace.fields.configurationName.label": "Layout Name:", + "WidgetWorkspace.importModal.controls.upload.label": "Нажмите для загрузки файла", + "WidgetWorkspace.importModal.header": "Импорт макета", + "WidgetWorkspace.labels.currentlyUsing": "Текущий макет:", + "WidgetWorkspace.labels.switchTo": "Переключить на:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.ActivityListingWidget.title": "Activity Listing", + "Widgets.ActivityMapWidget.title": "Activity Map", + "Widgets.BurndownChartWidget.label": "Burndown Chart", + "Widgets.BurndownChartWidget.title": "Остающиеся задачи: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Ежедневная статистика", + "Widgets.CalendarHeatmapWidget.title": "Ежедневная статистика: выполнение задач", + "Widgets.ChallengeListWidget.label": "Челленджи", + "Widgets.ChallengeListWidget.search.placeholder": "Поиск", + "Widgets.ChallengeListWidget.title": "Челленджи", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Создано:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built on {refreshDate} from data sourced on {sourceDate}.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Видимый:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Ключевые слова:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Изменено:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Статус:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Tasks From:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Обновленные задачи:", + "Widgets.ChallengeOverviewWidget.label": "Обзор челленджа", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "project not visible", + "Widgets.ChallengeOverviewWidget.title": "Обзор", "Widgets.ChallengeShareWidget.label": "Поделиться в социальных сетях", "Widgets.ChallengeShareWidget.title": "Поделиться", + "Widgets.ChallengeTasksWidget.label": "Задачи", + "Widgets.ChallengeTasksWidget.title": "Задачи", + "Widgets.CommentsWidget.controls.export.label": "Экспорт", + "Widgets.CommentsWidget.label": "Комментарии", + "Widgets.CommentsWidget.title": "Комментарии", "Widgets.CompletionProgressWidget.label": "Прогресс выполнения", - "Widgets.CompletionProgressWidget.title": "Прогресс выполнения", "Widgets.CompletionProgressWidget.noTasks": "Нет задач в челлендже", + "Widgets.CompletionProgressWidget.title": "Прогресс выполнения", "Widgets.FeatureStyleLegendWidget.label": "Feature Style Legend", "Widgets.FeatureStyleLegendWidget.title": "Feature Style Legend", + "Widgets.FollowersWidget.controls.activity.label": "Activity", + "Widgets.FollowersWidget.controls.followers.label": "Followers", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Show Exact Dates", + "Widgets.FollowingWidget.controls.following.label": "Following", + "Widgets.FollowingWidget.header.activity": "Activity You're Following", + "Widgets.FollowingWidget.header.followers": "Your Followers", + "Widgets.FollowingWidget.header.following": "You are Following", + "Widgets.FollowingWidget.label": "Follow", "Widgets.KeyboardShortcutsWidget.label": "Клавиатурные сокращения", "Widgets.KeyboardShortcutsWidget.title": "Клавиатурные сокращения", + "Widgets.LeaderboardWidget.label": "Рейтинг", + "Widgets.LeaderboardWidget.title": "Рейтинг", + "Widgets.ProjectAboutWidget.content": "Проекты служат средством объединения челленджей. Все челленджи должны принадлежать проекту.\nВы можете создать столько проектов, сколько нужно для организации ваших челленджей, и вы можете пригласить других пользователей MapRoulette помочь управлять ими.\nПроекты должны быть отмечены видимыми до того как любой челлендж в них будет показываться в поиске.", + "Widgets.ProjectAboutWidget.label": "О проектах", + "Widgets.ProjectAboutWidget.title": "О проектах", + "Widgets.ProjectListWidget.label": "Список проектов", + "Widgets.ProjectListWidget.search.placeholder": "Поиск", + "Widgets.ProjectListWidget.title": "Проекты", + "Widgets.ProjectManagersWidget.label": "Менеджеры проекта", + "Widgets.ProjectOverviewWidget.label": "Обзор", + "Widgets.ProjectOverviewWidget.title": "Обзор", + "Widgets.RecentActivityWidget.label": "Недавняя активность", + "Widgets.RecentActivityWidget.title": "Недавняя активность", "Widgets.ReviewMap.label": "Карта проверок", "Widgets.ReviewStatusMetricsWidget.label": "Метрики статусов проверок", "Widgets.ReviewStatusMetricsWidget.title": "Статус проверки", "Widgets.ReviewTableWidget.label": "Таблица проверок", "Widgets.ReviewTaskMetricsWidget.label": "Метрики проверок задач", "Widgets.ReviewTaskMetricsWidget.title": "Статус задачи", - "Widgets.SnapshotProgressWidget.label": "Past Progress", - "Widgets.SnapshotProgressWidget.title": "Past Progress", "Widgets.SnapshotProgressWidget.current.label": "Current", "Widgets.SnapshotProgressWidget.done.label": "Сделано", "Widgets.SnapshotProgressWidget.exportCSV.label": "Экспорт CSV", - "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.label": "Past Progress", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Manage Snapshots", - "Widgets.TagDiffWidget.label": "Cooperativees", - "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", + "Widgets.SnapshotProgressWidget.record.label": "Record New Snapshot", + "Widgets.SnapshotProgressWidget.title": "Past Progress", + "Widgets.StatusRadarWidget.label": "Радар статусов", + "Widgets.StatusRadarWidget.title": "Completion Status Distribution", "Widgets.TagDiffWidget.controls.viewAllTags.label": "Показать все Теги", - "Widgets.TaskBundleWidget.label": "Multi-Task Work", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Статус:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Приоритет:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Выбрано", + "Widgets.TagDiffWidget.label": "Cooperativees", + "Widgets.TagDiffWidget.title": "Proposed OSM Tag Changes", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Complete Together", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Clear Filters", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Unbundle", "Widgets.TaskBundleWidget.currentTask": "(current task)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", "Widgets.TaskBundleWidget.disallowBundling": "You are working on a single task. Task bundles cannot be created on this step.", + "Widgets.TaskBundleWidget.label": "Multi-Task Work", "Widgets.TaskBundleWidget.noCooperativeWork": "Cooperative tasks cannot be bundled together", "Widgets.TaskBundleWidget.noVirtualChallenges": "Tasks in \"virtual\" challenges cannot be bundled together", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Выбрано", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Feature Id:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Приоритет:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Статус:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.TaskBundleWidget.readOnly": "Previewing task in read-only mode", - "Widgets.TaskCompletionWidget.label": "Выполнение", - "Widgets.TaskCompletionWidget.title": "Выполнение", - "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Work on Multiple Tasks Together", + "Widgets.TaskBundleWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", + "Widgets.TaskCompletionWidget.cancelSelection": "Отменить выделение", + "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proposed Changes", + "Widgets.TaskCompletionWidget.inspectTitle": "Inspect", + "Widgets.TaskCompletionWidget.label": "Выполнение", "Widgets.TaskCompletionWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", - "Widgets.TaskCompletionWidget.completeTogether": "Complete Together", - "Widgets.TaskCompletionWidget.cancelSelection": "Отменить выделение", - "Widgets.TaskHistoryWidget.label": "История задач", - "Widgets.TaskHistoryWidget.title": "История", - "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", + "Widgets.TaskCompletionWidget.title": "Выполнение", "Widgets.TaskHistoryWidget.control.cancelDiff": "Cancel Diff", + "Widgets.TaskHistoryWidget.control.startDiff": "Start Diff", "Widgets.TaskHistoryWidget.control.viewOSMCha": "View OSM Cha", + "Widgets.TaskHistoryWidget.label": "История задач", + "Widgets.TaskHistoryWidget.title": "История", "Widgets.TaskInstructionsWidget.label": "Инструкции", "Widgets.TaskInstructionsWidget.title": "Инструкции", "Widgets.TaskLocationWidget.label": "Локация", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Задача", "Widgets.TaskMoreOptionsWidget.label": "Больше настроек", "Widgets.TaskMoreOptionsWidget.title": "Больше настроек", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Текущая задача", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "Нет доступных ближайших заданий.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", "Widgets.TaskPropertiesWidget.label": "Task Properties", - "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", + "Widgets.TaskPropertiesWidget.title": "Task Properties", "Widgets.TaskReviewWidget.label": "Проверка задачи", "Widgets.TaskReviewWidget.reviewTaskTitle": "Проверить", - "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together", "Widgets.TaskStatusWidget.label": "Статус задачи", "Widgets.TaskStatusWidget.title": "Статус задачи", + "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", + "Widgets.TeamsWidget.controls.myTeams.label": "Мои Команды", + "Widgets.TeamsWidget.createTeamTitle": "Создать новую Команду", + "Widgets.TeamsWidget.editTeamTitle": "Изменить Команду", "Widgets.TeamsWidget.label": "Команды", "Widgets.TeamsWidget.myTeamsTitle": "Мои Команды", - "Widgets.TeamsWidget.editTeamTitle": "Изменить Команду", - "Widgets.TeamsWidget.createTeamTitle": "Создать новую Команду", "Widgets.TeamsWidget.viewTeamTitle": "Team Details", - "Widgets.TeamsWidget.controls.myTeams.label": "Мои Команды", - "Widgets.TeamsWidget.controls.createTeam.label": "Start a Team", - "WidgetWorkspace.controls.editConfiguration.label": "Изменить макет", - "WidgetWorkspace.controls.saveConfiguration.label": "Сохранить изменения", - "WidgetWorkspace.fields.configurationName.label": "Layout Name:", - "WidgetWorkspace.controls.addConfiguration.label": "Добавить новый макет", - "WidgetWorkspace.controls.deleteConfiguration.label": "Удалить макет", - "WidgetWorkspace.controls.resetConfiguration.label": "Выбрать макет по умолчанию", - "WidgetWorkspace.controls.exportConfiguration.label": "Экспорт макета", - "WidgetWorkspace.controls.importConfiguration.label": "Импорт макета", - "WidgetWorkspace.labels.currentlyUsing": "Текущий макет:", - "WidgetWorkspace.labels.switchTo": "Переключить на:", - "WidgetWorkspace.exportModal.header": "Экспорт вашего макета", - "WidgetWorkspace.exportModal.fields.name.label": "Название макета", - "WidgetWorkspace.exportModal.controls.cancel.label": "Отмена", - "WidgetWorkspace.exportModal.controls.download.label": "Загрузить", - "WidgetWorkspace.importModal.header": "Импорт макета", - "WidgetWorkspace.importModal.controls.upload.label": "Нажмите для загрузки файла", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Overpass Turbo shortcuts are not supported. If you wish to use them, please visit Overpass Turbo and test your query, then choose Export -> Query -> Standalone -> Copy and then paste that here.", - "Dashboard.header": "Личный кабинет", - "Dashboard.header.welcomeBack": "Добро пожаловать обратно, {username}!", - "Dashboard.header.completionPrompt": "Вы закончили", - "Dashboard.header.completedTasks": "{completedTasks, number} tasks", - "Dashboard.header.pointsPrompt": ", earned", - "Dashboard.header.userScore": "{points, number} points", - "Dashboard.header.rankPrompt": ", and are", - "Dashboard.header.globalRank": "ranked #{rank, number}", - "Dashboard.header.globally": "globally.", - "Dashboard.header.encouragement": "Keep it going!", - "Dashboard.header.getStarted": "Накопите баллы, выполняя Задания Вызовов!", - "Dashboard.header.jumpBackIn": "Jump back in!", - "Dashboard.header.resume": "Resume your last challenge", - "Dashboard.header.controls.latestChallenge.label": "Take me to Challenge", - "Dashboard.header.find": "Или найти", - "Dashboard.header.somethingNew": "что-то новое", - "Dashboard.header.controls.findChallenge.label": "Найти новые Вызовы", - "Home.Featured.browse": "Explore", - "Home.Featured.header": "Featured", - "Inbox.header": "Уведомления", - "Inbox.controls.refreshNotifications.label": "Обновить", - "Inbox.controls.groupByTask.label": "Группировка по Заданиям", - "Inbox.controls.manageSubscriptions.label": "Управление подписками", - "Inbox.controls.markSelectedRead.label": "Отметить как прочитанное", - "Inbox.controls.deleteSelected.label": "Удалить", - "Inbox.tableHeaders.notificationType": "Тип", - "Inbox.tableHeaders.created": "Отправленные", - "Inbox.tableHeaders.fromUsername": "От", - "Inbox.tableHeaders.challengeName": "Челлендж", - "Inbox.tableHeaders.isRead": "Прочитать", - "Inbox.tableHeaders.taskId": "Задача", - "Inbox.tableHeaders.controls": "Действия", - "Inbox.actions.openNotification.label": "Открыть", - "Inbox.noNotifications": "Нет уведомлений", - "Inbox.mentionNotification.lead": "Вас отметили в комментарии:", - "Inbox.reviewApprovedNotification.lead": "Хорошие новости! Ваша работа над задачей проверена и подтверждена.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Ваша работа над задачей одобрена (с некоторыми замечаниями для вас от проверяющего).", - "Inbox.reviewRejectedNotification.lead": "По итогам проверки задачи проверяющий решил, что над ней еще надо поработать.", - "Inbox.reviewAgainNotification.lead": "The mapper has revised their work and is requesting an additional review.", - "Inbox.challengeCompleteNotification.lead": "A challenge you manage has been completed.", - "Inbox.notification.controls.deleteNotification.label": "Удалить", - "Inbox.notification.controls.viewTask.label": "Показать задачу", - "Inbox.notification.controls.reviewTask.label": "Review Task", - "Inbox.notification.controls.manageChallenge.label": "Manage Challenge", - "Leaderboard.title": "Рейтинг", - "Leaderboard.global": "Глобальный", - "Leaderboard.scoringMethod.label": "Способ подсчета очков", - "Leaderboard.scoringMethod.explanation": "##### Очки присуждаются за каждую выполненную задачу так:\n\n| Статус | Очки |\n| :------------ | -----: |\n| Исправлено | 5 |\n| Не требует правок | 3 |\n| Уже исправлено | 3 |\n| Слишком сложно | 1 |\n| Пропущено | 0 |", - "Leaderboard.user.points": "Очки", - "Leaderboard.user.topChallenges": "Топ челленджей", - "Leaderboard.users.none": "Нет пользователей в обозначенный период времени", - "Leaderboard.controls.loadMore.label": "Показать больше", - "Leaderboard.updatedFrequently": "Обновляется каждые 15 мин", - "Leaderboard.updatedDaily": "Обновляется каждые 24 ч", - "Metrics.userOptedOut": "Этот пользователь отказался от публичного отображения своей статистики.", - "Metrics.userSince": "Пользователь с:", - "Metrics.totalCompletedTasksTitle": "Полностью выполненные задачи", - "Metrics.completedTasksTitle": "Выполненные задачи", - "Metrics.reviewedTasksTitle": "Статус проверки", - "Metrics.leaderboardTitle": "Рейтинг", - "Metrics.leaderboard.globalRank.label": "Глобальный рейтинг", - "Metrics.leaderboard.totalPoints.label": "Всего очков", - "Metrics.leaderboard.topChallenges.label": "Топ челленджей", - "Metrics.reviewStats.approved.label": "Проверенные и одобренные задачи", - "Metrics.reviewStats.rejected.label": "Неодобренные задачи", - "Metrics.reviewStats.assisted.label": "Проверенные задачи, одобренные с замечаниями", - "Metrics.reviewStats.disputed.label": "Reviewed tasks that are being disputed", - "Metrics.reviewStats.awaiting.label": "Задачи, ожидающие проверки", - "Metrics.reviewStats.averageReviewTime.label": "Average time to review:", - "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Tasks Reviewed by You", - "Metrics.reviewStats.asReviewer.approved.label": "Reviewed tasks as passed", - "Metrics.reviewStats.asReviewer.rejected.label": "Reviewed tasks as failed", - "Metrics.reviewStats.asReviewer.assisted.label": "Reviewed tasks as passed with changes", - "Metrics.reviewStats.asReviewer.disputed.label": "Tasks currently in dispute", - "Metrics.reviewStats.asReviewer.awaiting.label": "Tasks that need a follow up", - "Profile.page.title": "User Settings", - "Profile.settings.header": "Общее", - "Profile.noUser": "Пользователь не найден или у вас недостаточно прав его видеть.", - "Profile.userSince": "Пользователь с:", - "Profile.form.defaultEditor.label": "Редактор по умолчанию", - "Profile.form.defaultEditor.description": "Выберите редактор по умолчанию для внесения правок. При выборе этой опции диалоговое окно с выбором редактора после нажатия на Изменить в задаче будет пропускаться.", - "Profile.form.defaultBasemap.label": "Основа по умолчанию", - "Profile.form.defaultBasemap.description": "Выбрать основу для отображения по умолчанию. Установленная по умолчанию основа челленджа не будет меняться на выбранную вами.", - "Profile.form.customBasemap.label": "Custom Basemap", - "Profile.form.customBasemap.description": "Insert a custom base map here. E.g. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Locale", - "Profile.form.locale.description": "User locale to use for MapRoulette UI.", - "Profile.form.leaderboardOptOut.label": "Opt out of Leaderboard", - "Profile.form.leaderboardOptOut.description": "Если да, то вы не будете показаны в публичном рейтинге.", - "Profile.apiKey.header": "API ключ", - "Profile.apiKey.controls.copy.label": "Копировать", - "Profile.apiKey.controls.reset.label": "Сбросить", - "Profile.form.needsReview.label": "Запросить проверку всей работы", - "Profile.form.needsReview.description": "Автоматически запрашивать проверку человеком каждой выполненной вами задачи", - "Profile.form.isReviewer.label": "Волонтер в качестве проверяющего", - "Profile.form.isReviewer.description": "Волонтер-проверяющий задач, для которых запрошена проверка", - "Profile.form.email.label": "Адрес электронной почты", - "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.notification.label": "Уведомления", - "Profile.form.notificationSubscriptions.label": "Подписка на уведомления", - "Profile.form.notificationSubscriptions.description": "Решите, какие уведомления MapRoulette вы хотите получать, вместе с тем, хотите ли вы получить электронное письмо с уведомлением об уведомлении (немедленно или в качестве еженедельной рассылки)", - "Profile.form.yes.label": "Да", - "Profile.form.no.label": "Нет", - "Profile.form.mandatory.label": "Обязательно", - "Review.Dashboard.tasksToBeReviewed": "Задачи на проверку", - "Review.Dashboard.tasksReviewedByMe": "Задачи, проверенные мной", - "Review.Dashboard.myReviewTasks": "Мои проверенные задачи", - "Review.Dashboard.allReviewedTasks": "All Review-related Tasks", - "Review.Dashboard.volunteerAsReviewer.label": "Volunteer as a Reviewer", - "Review.Dashboard.goBack.label": "Reconfigure Reviews", - "ReviewStatus.metrics.title": "Статус проверки", - "ReviewStatus.metrics.awaitingReview": "Задачи, ожидающие проверки", - "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", - "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", - "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", - "ReviewStatus.metrics.disputedReview": "Reviewed tasks that have been contested", - "ReviewStatus.metrics.fixed": "ИСПРАВЛЕНО", - "ReviewStatus.metrics.falsePositive": "НЕ ТРЕБУЕТ ПРАВОК", - "ReviewStatus.metrics.alreadyFixed": "УЖЕ ИСПРАВЛЕНО", - "ReviewStatus.metrics.tooHard": "СЛИШКОМ СЛОЖНО", - "ReviewStatus.metrics.priority.toggle": "Показать Задания по Приоритету", - "ReviewStatus.metrics.priority.label": "{priority} Priority Tasks", - "ReviewStatus.metrics.byTaskStatus.toggle": "Показать Задания по Статусу", - "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", - "ReviewStatus.metrics.averageTime.label": "Avg time per review:", - "Review.TaskAnalysisTable.noTasks": "Не найдено задач", - "Review.TaskAnalysisTable.refresh": "Обновить", - "Review.TaskAnalysisTable.startReviewing": "Проверить эти задачи", - "Review.TaskAnalysisTable.onlySavedChallenges": "Лимит любимых челленджей", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Exclude reviews assigned to others", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "Вы не проверяли никаких задач.", - "Review.TaskAnalysisTable.noTasksReviewed": "Ни одна из ваших задач не проверена.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Задачи на проверку", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Задачи, проверенные мной", - "Review.TaskAnalysisTable.myReviewTasks": "Мои выполненные задачи после проверки", - "Review.TaskAnalysisTable.allReviewedTasks": "All Review-related Tasks", - "Review.TaskAnalysisTable.totalTasks": "Всего: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Configure columns", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Export mapper CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Действия", - "Review.TaskAnalysisTable.columnHeaders.comments": "Комментарии", - "Review.TaskAnalysisTable.mapperControls.label": "Действия", - "Review.TaskAnalysisTable.reviewerControls.label": "Действия", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Действия", - "Review.Task.fields.id.label": "Внутренний идентификатор", - "Review.fields.status.label": "Статус", - "Review.fields.priority.label": "Приоритет", - "Review.fields.reviewStatus.label": "Статус проверки", - "Review.fields.requestedBy.label": "Маппер", - "Review.fields.reviewedBy.label": "Проверяющий", - "Review.fields.mappedOn.label": "Mapped On", - "Review.fields.reviewedAt.label": "Reviewed On", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Проверить", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Review Revision", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Resolve", - "Review.TaskAnalysisTable.controls.viewTask.label": "Показать", - "Review.TaskAnalysisTable.controls.fixTask.label": "Внести правки", - "Review.fields.challenge.label": "Челлендж", - "Review.fields.project.label": "Проект", - "Review.fields.tags.label": "Теги", - "Review.multipleTasks.tooltip": "Multiple bundled tasks", - "Review.tableFilter.viewAllTasks": "Показать все задания", - "Review.tablefilter.chooseFilter": "Выбрать проект или вызов", - "Review.tableFilter.reviewByProject": "Review by project", - "Review.tableFilter.reviewByChallenge": "Review by challenge", - "Review.tableFilter.reviewByAllChallenges": "Все Вызовы", - "Review.tableFilter.reviewByAllProjects": "Все Проекты", - "Pages.SignIn.modal.title": "Добро пожаловать обратно!", - "Pages.SignIn.modal.prompt": "Пожалуйста, войдите чтобы продолжить", - "Activity.action.updated": "Обновлено", - "Activity.action.created": "Создано", - "Activity.action.deleted": "Удалено", - "Activity.action.taskViewed": "Видимые", - "Activity.action.taskStatusSet": "Set Status on", - "Activity.action.tagAdded": "Добавленный тег в", - "Activity.action.tagRemoved": "Удаленный тег из", - "Activity.action.questionAnswered": "Answered Question on", - "Activity.item.project": "Проект", - "Activity.item.challenge": "Челлендж", - "Activity.item.task": "Задача", - "Activity.item.tag": "Тег", - "Activity.item.survey": "Survey", - "Activity.item.user": "Пользователь", - "Activity.item.group": "Группа", - "Activity.item.virtualChallenge": "Виртуальный Вызов", - "Activity.item.bundle": "Bundle", - "Activity.item.grant": "Grant", - "Challenge.basemap.none": "None", - "Admin.Challenge.basemap.none": "Пользователь по умолчанию", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Пользовательский", - "Challenge.difficulty.easy": "Легкий", - "Challenge.difficulty.normal": "Нормальный", - "Challenge.difficulty.expert": "Экспертный", - "Challenge.difficulty.any": "Любая", - "Challenge.keywords.navigation": "Дороги / Пешеходные дороги / Велосипедные дорожки", - "Challenge.keywords.water": "Вода", - "Challenge.keywords.pointsOfInterest": "Точки / Области интересов", - "Challenge.keywords.buildings": "Строения", - "Challenge.keywords.landUse": "Использование земель / Административные границы", - "Challenge.keywords.transit": "Transit", - "Challenge.keywords.other": "Другое", - "Challenge.keywords.any": "Все объекты", - "Challenge.location.nearMe": "Рядом со мной", - "Challenge.location.withinMapBounds": "В границах карты", - "Challenge.location.intersectingMapBounds": "Shown on Map", - "Challenge.location.any": "Везде", - "Challenge.status.none": "Не применимо", - "Challenge.status.building": "Строение", - "Challenge.status.failed": "Неудачно", - "Challenge.status.ready": "Готово", - "Challenge.status.partiallyLoaded": "Частично загружено", - "Challenge.status.finished": "Закончено", - "Challenge.status.deletingTasks": "Удаление задач", - "Challenge.type.challenge": "Челлендж", - "Challenge.type.survey": "Survey", - "Challenge.cooperativeType.none": "None", - "Challenge.cooperativeType.tags": "Tag Fix", - "Challenge.cooperativeType.changeFile": "Cooperative", - "Editor.none.label": "None", - "Editor.id.label": "Изменить в iD (web editor)", - "Editor.josm.label": "Изменить в JOSM", - "Editor.josmLayer.label": "Изменить в новом слое JOSM", - "Editor.josmFeatures.label": "Edit just features in JOSM", - "Editor.level0.label": "Изменить в Level0", - "Editor.rapid.label": "Edit in RapiD", - "Errors.user.missingHomeLocation": "Не найдено домашней локации. Пожалуйста, настройте разрешение в браузере или установите домашнюю локацию в настройках openstreetmap.org (потом вам нужно выйти и войти обратно на MapRoulette чтобы обновить настройки на OpenStreetMap).", - "Errors.user.unauthenticated": "Пожалуйста, войдите, чтобы продолжить.", - "Errors.user.unauthorized": "Извините, у вас недостаточно прав для совершения данного действия.", - "Errors.user.updateFailure": "Невозможно обновить вашего пользователя на сервере.", - "Errors.user.fetchFailure": "Невозможно выгрузить данные пользователя с сервера.", - "Errors.user.notFound": "Не найдено пользователя с таким логином.", - "Errors.leaderboard.fetchFailure": "Невозможно загрузить рейтинг.", - "Errors.task.none": "Нет задач к выполнению в этом челлендже.", - "Errors.task.saveFailure": "Невозможно сохранить ваши изменения{подробности}", - "Errors.task.updateFailure": "Невозможно сохранить изменения.", - "Errors.task.deleteFailure": "Невозможно удалить задачу.", - "Errors.task.fetchFailure": "Невозможно загрузить задачу к выполнению.", - "Errors.task.doesNotExist": "Такой задачи не существует.", - "Errors.task.alreadyLocked": "Задача уже кем-то заблокирована.", - "Errors.task.lockRefreshFailure": "Unable to extend your task lock. Your lock may have expired. We recommend refreshing the page to try establishing a fresh lock.", - "Errors.task.bundleFailure": "Unable to bundling tasks together", - "Errors.osm.requestTooLarge": "Запрос данных OSM слишком большой", - "Errors.osm.bandwidthExceeded": "OpenStreetMap allowed bandwidth exceeded", - "Errors.osm.elementMissing": "Element not found on OpenStreetMap server", - "Errors.osm.fetchFailure": "Невозможно загрузить данные с OpenStreetMap", - "Errors.mapillary.fetchFailure": "Невозможно загрузить данные с Mapillary", - "Errors.openStreetCam.fetchFailure": "Unable to fetch data from OpenStreetCam", - "Errors.nominatim.fetchFailure": "Unable to fetch data from Nominatim", - "Errors.clusteredTask.fetchFailure": "Unable to fetch task clusters", - "Errors.boundedTask.fetchFailure": "Unable to fetch map-bounded tasks", - "Errors.reviewTask.fetchFailure": "Невозможно загрузить требующие проверки задачи", - "Errors.reviewTask.alreadyClaimed": "Эта задача уже кем-то проверена.", - "Errors.reviewTask.notClaimedByYou": "Невозможно отменить проверку.", - "Errors.challenge.fetchFailure": "Невозможно загрузить свежие данные челленджа с сервера.", - "Errors.challenge.searchFailure": "Невозможно найти челленджи на сервере.", - "Errors.challenge.deleteFailure": "Невозможно удалить челлендж.", - "Errors.challenge.saveFailure": "Невозможно сохранить ваши изменения{подробности}", - "Errors.challenge.rebuildFailure": "Невозможно восстановить задачи челленджа", - "Errors.challenge.doesNotExist": "Такого челленджа не существует.", - "Errors.virtualChallenge.fetchFailure": "Невозможно загрузить свежие виртуальные данные челленджа с сервера.", - "Errors.virtualChallenge.createFailure": "Невозможно создать виртуальный челлендж{подробности}", - "Errors.virtualChallenge.expired": "Виртуальный челлендж завершен.", - "Errors.project.saveFailure": "Невозможно сохранить изменения{подробности}", - "Errors.project.fetchFailure": "Невозможно загрузить свежие данные проекта с сервера.", - "Errors.project.searchFailure": "Невозможно найти проекты.", - "Errors.project.deleteFailure": "Невозможно удалить проект.", - "Errors.project.notManager": "Вы должны быть менеджером этого проекта, чтобы продолжить.", - "Errors.map.renderFailure": "Unable to render the map{details}. Attempting to fall back to default map layer.", - "Errors.map.placeNotFound": "Ничего не найдено с помощью Nominatim.", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", - "Errors.widgetWorkspace.importFailure": "Unable to import layout{details}", - "Errors.josm.noResponse": "Удаленное управление OSM не отвечает. У вас работает JOSM с разрешенным удаленным управлением?", - "Errors.josm.missingFeatureIds": "Особенности выполнения этой задачи не включают в себя идентификаторы OSM, необходимые для открытия их автономно в JOSM. Пожалуйста, выберите другой вариант редактирования.", - "Errors.team.genericFailure": "Failure{details}", - "Grant.Role.admin": "Admin", - "Grant.Role.write": "Write", - "Grant.Role.read": "Read", - "KeyMapping.openEditor.editId": "Изменить в iD", - "KeyMapping.openEditor.editJosm": "Изменить в JOSM", - "KeyMapping.openEditor.editJosmLayer": "Изменить в новом слое JOSM", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", - "KeyMapping.openEditor.editLevel0": "Изменить в Level0", - "KeyMapping.openEditor.editRapid": "Edit in RapiD", - "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", - "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", - "KeyMapping.taskEditing.cancel": "Отменить изменения", - "KeyMapping.taskEditing.fitBounds": "Подогнать карту под требования задачи", - "KeyMapping.taskEditing.escapeLabel": "Выйти", - "KeyMapping.taskCompletion.skip": "Пропустить", - "KeyMapping.taskCompletion.falsePositive": "Не требует правок", - "KeyMapping.taskCompletion.fixed": "Я исправил это!", - "KeyMapping.taskCompletion.tooHard": "Слишком сложно / Не видно", - "KeyMapping.taskCompletion.alreadyFixed": "Уже исправлено", - "KeyMapping.taskInspect.nextTask": "Следующая задача", - "KeyMapping.taskInspect.prevTask": "Предыдущая задача", - "KeyMapping.taskCompletion.confirmSubmit": "Подтвердить", - "Subscription.type.ignore": "Игнорировать", - "Subscription.type.noEmail": "Получать, но не оповещать по электронной почте", - "Subscription.type.immediateEmail": "Получать и оповещать по электронной почте немедленно", - "Subscription.type.dailyEmail": "Получать и оповещать по электронной почте ежедневно", - "Notification.type.system": "Система", - "Notification.type.mention": "Mention", - "Notification.type.review.approved": "Одобрено", - "Notification.type.review.rejected": "Revise", - "Notification.type.review.again": "Проверить", - "Notification.type.challengeCompleted": "Completed", - "Notification.type.challengeCompletedLong": "Challenge Completed", - "Challenge.sort.name": "Название", - "Challenge.sort.created": "Новейшее", - "Challenge.sort.oldest": "Oldest", - "Challenge.sort.popularity": "Популярное", - "Challenge.sort.cooperativeWork": "Cooperative", - "Challenge.sort.default": "По умолчанию", - "Task.loadByMethod.random": "Случайный", - "Task.loadByMethod.proximity": "Ближайшее", - "Task.priority.high": "Высокий", - "Task.priority.medium": "Средний", - "Task.priority.low": "Низкий", - "Task.property.searchType.equals": "equals", - "Task.property.searchType.notEqual": "doesn't equal", - "Task.property.searchType.contains": "contains", - "Task.property.searchType.exists": "exists", - "Task.property.searchType.missing": "missing", - "Task.property.operationType.and": "и", - "Task.property.operationType.or": "или", - "Task.reviewStatus.needed": "Запрошенная проверка", - "Task.reviewStatus.approved": "Одобрено", - "Task.reviewStatus.rejected": "Нуждается в пересмотре", - "Task.reviewStatus.approvedWithFixes": "Одобрено с замечаниями", - "Task.reviewStatus.disputed": "Contested", - "Task.reviewStatus.unnecessary": "Unnecessary", - "Task.reviewStatus.unset": "Проверка еще не запрошена", - "Task.review.loadByMethod.next": "Next Filtered Task", - "Task.review.loadByMethod.all": "Back to Review All", - "Task.review.loadByMethod.inbox": "Вернуться во входящие", - "Task.status.created": "Создано", - "Task.status.fixed": "Исправлено", - "Task.status.falsePositive": "Не требует правок", - "Task.status.skipped": "Пропущено", - "Task.status.deleted": "Удалено", - "Task.status.disabled": "Disabled", - "Task.status.alreadyFixed": "Уже исправлено", - "Task.status.tooHard": "Слишком сложно", - "Team.Status.member": "Участник", - "Team.Status.invited": "Приглашенный", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Испанский)", - "Locale.de.label": "нем (Немецкий)", - "Locale.fr.label": "fr (Французский)", - "Locale.af.label": "af (Африкаанс)", - "Locale.ja.label": "ja (Японский)", - "Locale.ko.label": "ko (Корейский)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (Persian - Iran)", - "Locale.cs-CZ.label": "cs-CZ (Czech - Czech Republic)", - "Locale.ru-RU.label": "рус-РУС (Русский-Россия)", - "Dashboard.ChallengeFilter.visible.label": "Видимый", - "Dashboard.ChallengeFilter.pinned.label": "Закрепленный", - "Dashboard.ProjectFilter.visible.label": "Видимый", - "Dashboard.ProjectFilter.owner.label": "Owned", - "Dashboard.ProjectFilter.pinned.label": "Закрепленный" + "Widgets.review.simultaneousTasks": "Reviewing {taskCount, number} tasks together" } diff --git a/src/lang/uk.json b/src/lang/uk.json index f355e13c9..287c7ac22 100644 --- a/src/lang/uk.json +++ b/src/lang/uk.json @@ -1,409 +1,479 @@ { - "ActivityTimeline.UserActivityTimeline.header": "Нещодавні дії", - "BurndownChart.heading": "Завдань залишилось: {taskCount, number}", - "BurndownChart.tooltip": "Завдань залишилось", - "CalendarHeatmap.heading": "Щоденний перебіг: Виконання завдань", + "ActiveTask.controls.aleadyFixed.label": "Вже виправлено", + "ActiveTask.controls.cancelEditing.label": "Повернутись", + "ActiveTask.controls.comments.tooltip": "Показати коментарі", + "ActiveTask.controls.fixed.label": "Я виправив!", + "ActiveTask.controls.info.tooltip": "Деталі завдання", + "ActiveTask.controls.notFixed.label": "Дуже важко/Не бачу", + "ActiveTask.controls.status.tooltip": "Наявний стан", + "ActiveTask.controls.viewChangset.label": "Показати набір змін", + "ActiveTask.heading": "Інформація про виклик", + "ActiveTask.indicators.virtualChallenge.tooltip": "Віртуальний Виклик", + "ActiveTask.keyboardShortcuts.label": "Показати гарячі клавіші", + "ActiveTask.subheading.comments": "Коментарі", + "ActiveTask.subheading.instructions": "Інструкції", + "ActiveTask.subheading.location": "Місце", + "ActiveTask.subheading.progress": "Перебіг виклику", + "ActiveTask.subheading.social": "Поширити", + "ActiveTask.subheading.status": "Наявний стан", + "Activity.action.created": "Створено", + "Activity.action.deleted": "Вилучено", + "Activity.action.questionAnswered": "Відповідь на запит", + "Activity.action.tagAdded": "Теґ додано до", + "Activity.action.tagRemoved": "Теґ вилучено з", + "Activity.action.taskStatusSet": "Встановити стан у", + "Activity.action.taskViewed": "Переглянуто", + "Activity.action.updated": "Оновлено", + "Activity.item.bundle": "Пакунок", + "Activity.item.challenge": "Виклик", + "Activity.item.grant": "Надати", + "Activity.item.group": "Група", + "Activity.item.project": "Проєкт", + "Activity.item.survey": "Дослідження", + "Activity.item.tag": "Теґ", + "Activity.item.task": "Завдання", + "Activity.item.user": "Користувач", + "Activity.item.virtualChallenge": "Віртуальний Виклик", + "ActivityListing.controls.group.label": "Група", + "ActivityListing.noRecentActivity": "Немає останніх дій", + "ActivityListing.statusTo": "як", + "ActivityMap.noTasksAvailable.label": "Завдання поруч не доступні.", + "ActivityMap.tooltip.priorityLabel": "Пріоритет:", + "ActivityMap.tooltip.statusLabel": "Стан:", + "ActivityTimeline.UserActivityTimeline.header": "Ваш нещодавній внесок", + "AddTeamMember.controls.chooseOSMUser.placeholder": "Логін OpenStreetMap", + "AddTeamMember.controls.chooseRole.label": "Обрати роль", + "Admin.Challenge.activity.label": "Нещодавні дії", + "Admin.Challenge.basemap.none": "З налаштувань користувача", + "Admin.Challenge.controls.clone.label": "Клонувати Виклик", + "Admin.Challenge.controls.delete.label": "Вилучити Виклик", + "Admin.Challenge.controls.edit.label": "Змінити Виклик", + "Admin.Challenge.controls.move.label": "Перемістити Виклик", + "Admin.Challenge.controls.move.none": "Дозволені проєкти відсутні", + "Admin.Challenge.controls.refreshStatus.label": "Оновлення стану ", + "Admin.Challenge.controls.start.label": "Розпочати Виклик", + "Admin.Challenge.controls.startChallenge.label": "Розпочати Виклик", + "Admin.Challenge.fields.creationDate.label": "Створено:", + "Admin.Challenge.fields.enabled.label": "Видимий:", + "Admin.Challenge.fields.lastModifiedDate.label": "Змінено:", + "Admin.Challenge.fields.status.label": "Стан:", + "Admin.Challenge.tasksBuilding": "Створення Завдань…", + "Admin.Challenge.tasksCreatedCount": "завдань створено, поки що.", + "Admin.Challenge.tasksFailed": "Не вдалося створити Завдання", + "Admin.Challenge.tasksNone": "Завдань немає", + "Admin.Challenge.totalCreationTime": "Пройшло часу:", "Admin.ChallengeAnalysisTable.columnHeaders.actions": "Параметри", - "Admin.ChallengeAnalysisTable.columnHeaders.name": "Назва Заклику", "Admin.ChallengeAnalysisTable.columnHeaders.completed": "Виконано", - "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Перебіг виконання", "Admin.ChallengeAnalysisTable.columnHeaders.enabled": "Видимий", "Admin.ChallengeAnalysisTable.columnHeaders.lastActivity": "Останні дії", - "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Керувати", - "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Змінити", - "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Розпочати", + "Admin.ChallengeAnalysisTable.columnHeaders.name": "Назва Заклику", + "Admin.ChallengeAnalysisTable.columnHeaders.progress": "Перебіг виконання", "Admin.ChallengeAnalysisTable.controls.cloneChallenge.label": "Клонувати", - "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Додавати стовпчики стану", - "ChallengeCard.totalTasks": "Всього завдань", - "ChallengeCard.controls.visibilityToggle.tooltip": "Перемикач видимості заклику", - "Admin.Challenge.controls.start.label": "Розпочати Виклик", - "Admin.Challenge.controls.edit.label": "Змінити Виклик", - "Admin.Challenge.controls.move.label": "Перемістити Виклик", - "Admin.Challenge.controls.move.none": "Дозволені проєкти відсутні", - "Admin.Challenge.controls.clone.label": "Клонувати Виклик", "Admin.ChallengeAnalysisTable.controls.copyChallengeURL.label": "Копіювати URL", - "Admin.Challenge.controls.delete.label": "Вилучити Виклик", + "Admin.ChallengeAnalysisTable.controls.editChallenge.label": "Змінити", + "Admin.ChallengeAnalysisTable.controls.manageChallenge.label": "Керувати", + "Admin.ChallengeAnalysisTable.controls.showStatusColumns.label": "Додавати стовпчики стану", + "Admin.ChallengeAnalysisTable.controls.startChallenge.label": "Розпочати", "Admin.ChallengeList.noChallenges": "Викликів немає", - "ChallengeProgressBorder.available": "Наявні", - "CompletionRadar.heading": "Завдань виконано: {taskCount, number}", - "Admin.EditProject.unavailable": "Проєкт недоступний", - "Admin.EditProject.edit.header": "Змінити", - "Admin.EditProject.new.header": "Новий проєкт", - "Admin.EditProject.controls.save.label": "Зберегти", - "Admin.EditProject.controls.cancel.label": "Скасувати", - "Admin.EditProject.form.name.label": "Назва", - "Admin.EditProject.form.name.description": "Назва проєкту", - "Admin.EditProject.form.displayName.label": "Назва проєкту", - "Admin.EditProject.form.displayName.description": "Назва, що буде використовуватись для проєкту", - "Admin.EditProject.form.enabled.label": "Видимий", - "Admin.EditProject.form.enabled.description": "Після встановлення стану \"Видимий\", усі Виклики з цього проєкту також отримують стан \"Видимий\". Вони стануть доступні для пошуку іншим учасникам. Отже, переводячи проєкт в стан \"Видимий\" ви робите усі Виклики, що входять до його складу, також видимими. Ви все ще можете продовжувати працювати над вашими власними Викликами та поширювати URL для будь-яких ваших Викликів з іншими, і вони будуть працювати. До переводу проєкту до стану \"Видимий\", він буде слугувати тестовим майданчиком для ваших Викликів.", - "Admin.EditProject.form.featured.label": "Рекомендований", - "Admin.EditProject.form.featured.description": "Рекомендовані проєкти показуються на головній сторінці та на початку сторінки Пошук Викликів, для того щоб привернути до них більше уваги. Зауважте, що рекомендація проєкту ***не означає*** автоматичної рекомендації для викликів. Тільки адміністратор може зробити проєкт рекомендованим.", - "Admin.EditProject.form.isVirtual.label": "Віртуальний", - "Admin.EditProject.form.isVirtual.description": "До \"Віртуального\" проєкту можна додати наявні виклики для їх гуртування. Цей параметр не можна змінити після створення проєкту. Дозволи викликів залишаються від їх батьківських проєктів без змін.", - "Admin.EditProject.form.description.label": "Опис", - "Admin.EditProject.form.description.description": "Опис проєкту", - "Admin.InspectTask.header": "Огляд Завдань", - "Admin.EditChallenge.edit.header": "Змінити", + "Admin.ChallengeTaskMap.controls.editTask.label": "Змінити Завдання", + "Admin.ChallengeTaskMap.controls.inspectTask.label": "Огляд Завдання", "Admin.EditChallenge.clone.header": "Клонувати", - "Admin.EditChallenge.new.header": "Новий Виклик", - "Admin.EditChallenge.lineNumber": "Рядок {line, number}:", + "Admin.EditChallenge.edit.header": "Змінити", "Admin.EditChallenge.form.addMRTags.placeholder": "Додайте теґи MapRoulette", - "Admin.EditChallenge.form.step1.label": "Загальне", - "Admin.EditChallenge.form.visible.label": "Видимий", - "Admin.EditChallenge.form.visible.description": "Дозволяє вашому виклику бути видимим для всіх, показувати його в результатах пошуку іншим користувачам (в залежності від видимості проєкту). Якщо ви не впевнені в створенні нових Викликів, ми радимо вам залиши ти цей параметр в стані Ні на початку, особливо, коли батьківський проєкт є видимим. Встановлення видимості вашого виклику в стан Так призведе до його появи на головній сторінці, в результатах пошуку Викликів та в статистиці, яле за умови видимості батьківського Проєкту.", - "Admin.EditChallenge.form.name.label": "Назва", - "Admin.EditChallenge.form.name.description": "Назва вашого Виклику в тому вигляді, як вона буде показуватись в різних місцях MapRoulette. Також за назвою можна буде відшукати виклик через поле Пошуку. Це поле є обов’язковим та має містити звичайний текст.", - "Admin.EditChallenge.form.description.label": "Опис", - "Admin.EditChallenge.form.description.description": "Основний, докладний опис того що треба зробити під час опрацювання виклику, він буде показуватись користувачу після переходу на сторінку Виклику. Це поле підтримує форматування Markdown.", - "Admin.EditChallenge.form.blurb.label": "Скорочений опис", + "Admin.EditChallenge.form.additionalKeywords.description": "Додатково можна додати ключові слова, які також можна використовувати для пошуку вашого виклику. Користувачі можуть здійснювати пошук за ключовим словом у розділі Інші параметри випадаючого фільтра Категорія або у полі Пошуку, попередньо додавши знак хешу (напр. #tourism).", + "Admin.EditChallenge.form.additionalKeywords.label": "Ключові слова", "Admin.EditChallenge.form.blurb.description": "Стислий опис виклику, придатний для розміщення там, де бракує достатньо місця, це можуть бути вигулькуючі вікна маркерів й таке інше. Це поле підтримує форматування Markdown.", - "Admin.EditChallenge.form.instruction.label": "Інструкції", - "Admin.EditChallenge.form.instruction.description": "Інструкції розповідають маперу, що потрібно зробити для розв’язання Завдання у вашому Виклику. Це те що бачить мапер у вікні кожного завдання. Вони є основним джерелом інформації для мапера щодо розв’язання проблеми, тож подумайте ретельно про їх вміст. Ви можете додати посилання на сторінки Вікі OSM або ж будь-які інші гіперпосилання за потреби, скориставшись форматуванням Markdown. Ви також можете посилатись на властивості об’єктів з GeoJSON користуючись наступним синтаксисом: `'{{address}}'`, де ця частина буде замінена на значення властивості `address`, що дозволяє базову адаптацію інструкцій під кожне окреме завдання. Це поле є обов’язковим.", - "Admin.EditChallenge.form.checkinComment.label": "Опис набору змін", + "Admin.EditChallenge.form.blurb.label": "Скорочений опис", + "Admin.EditChallenge.form.category.description": "Вибір правильної категорії допоможе користувачам швидко знайти ваш виклик відповідно до їх інтересів. Оберіть категорію Інше, якщо не знайшли потрібного значення.", + "Admin.EditChallenge.form.category.label": "Категорія", "Admin.EditChallenge.form.checkinComment.description": "Коментар, який буде доданий до пов’язаного набору змін в редакторі під час надсилання даних на сервер", - "Admin.EditChallenge.form.checkinSource.label": "Джерело даних", + "Admin.EditChallenge.form.checkinComment.label": "Опис набору змін", "Admin.EditChallenge.form.checkinSource.description": "Інформація про джерело даних, яка буде додана до пов’язаного набору змін", - "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Автоматично додавати гештеґ #maproulette (рекомендується)", - "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Не додавати гештеґ", - "Admin.EditChallenge.form.includeCheckinHashtag.description": "Дозвіл на додавання гештеґів до опису наборів змін є корисним для проведення подальшого аналізу.", - "Admin.EditChallenge.form.difficulty.label": "Складність", + "Admin.EditChallenge.form.checkinSource.label": "Джерело даних", + "Admin.EditChallenge.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Admin.EditChallenge.form.customBasemap.label": "Власний фон", + "Admin.EditChallenge.form.customTaskStyles.button": "Налаштувати", + "Admin.EditChallenge.form.customTaskStyles.description": "Увімкніть налаштування власних стилів, щоб мати можливість використовувати певні властивості об’єктів для цього.", + "Admin.EditChallenge.form.customTaskStyles.error": "Стиль властивостей завдання містить помилки. Виправте його щоб продовжити.", + "Admin.EditChallenge.form.customTaskStyles.label": "Налаштування стилів Завдань", + "Admin.EditChallenge.form.dataOriginDate.description": "Вік даних. Вкажіть дату коли дані були отримані, згенеровані й таке інше.", + "Admin.EditChallenge.form.dataOriginDate.label": "Дані було отримано", + "Admin.EditChallenge.form.defaultBasemap.description": "Типовий фон, що використовується для Виклику, має перевагу над налаштуваннями користувача щодо використання типового фону.", + "Admin.EditChallenge.form.defaultBasemap.label": "Фонова мапа Виклику", + "Admin.EditChallenge.form.defaultPriority.description": "Типовий рівень пріоритету для завдань цього виклику", + "Admin.EditChallenge.form.defaultPriority.label": "Типовий Пріоритет", + "Admin.EditChallenge.form.defaultZoom.description": "Коли користувач розпочне роботу над завданням, MapRoulette спробує автоматично використовувати масштаб, який відповідає межам елементів завдання. Але якщо це неможливо, буде використаний цей типовий рівень масштабування. Він повинен бути встановлений на рівні, який підходить для роботи з більшістю завдань у вашому виклику.", + "Admin.EditChallenge.form.defaultZoom.label": "Типовий масштаб", + "Admin.EditChallenge.form.description.description": "Основний, докладний опис того що треба зробити під час опрацювання виклику, він буде показуватись користувачу після переходу на сторінку Виклику. Це поле підтримує форматування Markdown.", + "Admin.EditChallenge.form.description.label": "Опис", "Admin.EditChallenge.form.difficulty.description": "Оберіть між Легко, Звичайно та Експерт для надання інформації маперам щодо потрібних вмінь та навичок для розв’язання Завдань з вашого Виклику. Легкі завдання мають бути придатні для виконання новачками з невеликим досвідом в мапінгу.", - "Admin.EditChallenge.form.category.label": "Категорія", - "Admin.EditChallenge.form.category.description": "Вибір правильної категорії допоможе користувачам швидко знайти ваш виклик відповідно до їх інтересів. Оберіть категорію Інше, якщо не знайшли потрібного значення.", - "Admin.EditChallenge.form.additionalKeywords.label": "Ключові слова", - "Admin.EditChallenge.form.additionalKeywords.description": "Додатково можна додати ключові слова, які також можна використовувати для пошуку вашого виклику. Користувачі можуть здійснювати пошук за ключовим словом у розділі Інші параметри випадаючого фільтра Категорія або у полі Пошуку, попередньо додавши знак хешу (напр. #tourism).", - "Admin.EditChallenge.form.preferredTags.label": "Бажані теґи", - "Admin.EditChallenge.form.preferredTags.description": "Ви можете зазначити перелік бажаних теґів, які ви бажаєте щоб користувачі додавали в MapRoulette закінчуючи роботу із завданням.", - "Admin.EditChallenge.form.featured.label": "Рекомендований", + "Admin.EditChallenge.form.difficulty.label": "Складність", + "Admin.EditChallenge.form.exportableProperties.description": "Властивості розділені комою з цього переліку будуть додані у вигляді стовпців під час 'Експорту в CSV' та заповнені першою відповідною властивістю елемента для кожного завдання.", + "Admin.EditChallenge.form.exportableProperties.label": "Властивості для експорту в CSV", "Admin.EditChallenge.form.featured.description": "Рекомендовані виклики показуються на початку переліку під час перегляду та пошуку викликів. Тільки адміністратор може зробити виклик рекомендованим.", - "Admin.EditChallenge.form.step2.label": "Джерело GeoJSON", - "Admin.EditChallenge.form.step2.description": "Кожне завдання в MapRoulette в основному складається з геометрії: точки, лінії чи полігону, що показує на мапі місце до якого ви бажаєте отримати розв’язання проблеми. Тут ви можете вказати звідки MapRoulette може отримати геометрію для вашого завдання.\n\nІснує три способи отримання геометрії для вашого Виклику: за допомогою запита Overpass, використовуючи файл GeoJSON з вашого комп’ютера, або скориставшись URL, що вказує на файл GeoJSON десь в інтернеті.\n\n#### Запит Overpass\n\nOverpass API – потужний інструмент для отримання даних OpenStreetMap. Він не працює з \"живою\" базою OSM, але дані, які ви можете отримати за допомогою Overpass, зазвичай не старіші за кілька хвилин. Використовуючи [Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide), мову запитів Overpass Query Language, ви можете вказати які саме об’єкти OSM ви бажаєте використовувати у вашому Виклику у вигляді Завдань. [Дізнатись більше у вікі MapRoulette](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Файл GeoJSON\n\nІнший варіант – використання наявного у вас файлу GeoJSON. Чудово, якщо у вас є сторонні дані, придатні для додавання вручну в OSM. Інструменти, такі як [QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson) та [gdal](http://www.gdal.org/drv_geojson.html) можуть допомогти вам перетворити Shapefile в GeoJSON. Після перетворення переконайтесь, що ваші дані мають координати у вигляді датуму WGS84 (EPSG:4326), це та проєкція яку MapRoulette використовує безпосередньо.\n\n> Примітка: для викликів з великою кількістю завдань рекомендується використовувати формат [однин об’єкт на рядок](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format) для уникнення надлишкового використання ресурсів системи.\n\n#### GeoJSON URL\n\nВідмінність між файлом GeoJSON на вашому комп’ютері та URL, це місце з якого MapRoulette отримає дані. Якщо ви використовуєте URL, переконайтесь що посилання вказує на сам файл GeoJSON, а не на сторінку яка посилається на файл, через те що MapRoulette не обробляє такі випадки.", - "Admin.EditChallenge.form.source.label": "Джерело GeoJSON", - "Admin.EditChallenge.form.overpassQL.label": "Запит до Overpass API", + "Admin.EditChallenge.form.featured.label": "Рекомендований", + "Admin.EditChallenge.form.highPriorityRules.label": "Правила для важливих завдань", + "Admin.EditChallenge.form.ignoreSourceErrors.description": "Продовжувати попри виявлені помилки у даних. Тільки досвідчені користувачі, що розуміють наслідки можуть спробувати змінити цей параметр.", + "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ігнорувати помилки", + "Admin.EditChallenge.form.includeCheckinHashtag.description": "Дозвіл на додавання гештеґів до опису наборів змін є корисним для проведення подальшого аналізу.", + "Admin.EditChallenge.form.includeCheckinHashtag.value.false.label": "Не додавати гештеґ", + "Admin.EditChallenge.form.includeCheckinHashtag.value.true.label": "Автоматично додавати гештеґ #maproulette (рекомендується)", + "Admin.EditChallenge.form.instruction.description": "Інструкції розповідають маперу, що потрібно зробити для розв’язання Завдання у вашому Виклику. Це те що бачить мапер у вікні кожного завдання. Вони є основним джерелом інформації для мапера щодо розв’язання проблеми, тож подумайте ретельно про їх вміст. Ви можете додати посилання на сторінки Вікі OSM або ж будь-які інші гіперпосилання за потреби, скориставшись форматуванням Markdown. Ви також можете посилатись на властивості об’єктів з GeoJSON користуючись наступним синтаксисом: `'{{address}}'`, де ця частина буде замінена на значення властивості `address`, що дозволяє базову адаптацію інструкцій під кожне окреме завдання. Це поле є обов’язковим.", + "Admin.EditChallenge.form.instruction.label": "Інструкції", + "Admin.EditChallenge.form.localGeoJson.description": "Будь ласка, оберіть файл GeoJSON на вашому комп’ютері", + "Admin.EditChallenge.form.localGeoJson.label": "Завантажити файл", + "Admin.EditChallenge.form.lowPriorityRules.label": "Правила для непріоритетних завдань", + "Admin.EditChallenge.form.maxZoom.description": "Максимально дозволений масштаб для вашого Виклику. Він має бути на рівні, що дозволяє учасникам наблизитись для роботи над завданнями, не дозволяючи їм збільшити масштаб до рівня, який не є корисним або перевищує доступні масштаби для супутникових знімків в обраному регіоні.", + "Admin.EditChallenge.form.maxZoom.label": "Максимальний масштаб", + "Admin.EditChallenge.form.mediumPriorityRules.label": "Правила для звичайних завдань", + "Admin.EditChallenge.form.minZoom.description": "Мінімально дозволений масштаб для вашого Виклику. Він має бути на рівні, що дозволяє учасникам віддалитись для роботи над завданнями, не дозволяючи їм зменшити масштаб до рівня, який не є корисним.", + "Admin.EditChallenge.form.minZoom.label": "Мінімальний масштаб", + "Admin.EditChallenge.form.name.description": "Назва вашого Виклику в тому вигляді, як вона буде показуватись в різних місцях MapRoulette. Також за назвою можна буде відшукати виклик через поле Пошуку. Це поле є обов’язковим та має містити звичайний текст.", + "Admin.EditChallenge.form.name.label": "Назва", + "Admin.EditChallenge.form.osmIdProperty.description": "Назва властивості об’єкта, що містить ідентифікатор OpenStreetMap елемента завдання. Якщо лишити це поле порожнім, MapRoulette спробує пошукати загальні поля, що можуть мати інформацію з ідентифікатором, включаючи ті що їх повертає Overpass. Якщо задано, **переконайтесь, що воно містить унікальне значення для кожного елемента ваших даних**. Завдання з відсутньою властивістю отримують випадковий ідентифікатор, навіть якщо у нього є загальний параметр id. [Дізнатись більше у вікі MapRoulette](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", + "Admin.EditChallenge.form.osmIdProperty.label": "Параметр для OSM Id", "Admin.EditChallenge.form.overpassQL.description": "Будь ласка, задайте відповідну ділянку перед тим як додавати запит overpass, через те що він може генерувати досить великий обсяг даних, що засмічує систему.", + "Admin.EditChallenge.form.overpassQL.label": "Запит до Overpass API", "Admin.EditChallenge.form.overpassQL.placeholder": "Додайте запит до Overpass API тут…", - "Admin.EditChallenge.form.localGeoJson.label": "Завантажити файл", - "Admin.EditChallenge.form.localGeoJson.description": "Будь ласка, оберіть файл GeoJSON на вашому комп’ютері", - "Admin.EditChallenge.form.remoteGeoJson.label": "Посилання URL", + "Admin.EditChallenge.form.preferredTags.description": "Ви можете зазначити перелік бажаних теґів, які ви бажаєте щоб користувачі додавали в MapRoulette закінчуючи роботу із завданням.", + "Admin.EditChallenge.form.preferredTags.label": "Бажані теґи", "Admin.EditChallenge.form.remoteGeoJson.description": "Посилання URL, звідки можна отримати дані у вигляді GeoJSON", + "Admin.EditChallenge.form.remoteGeoJson.label": "Посилання URL", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", - "Admin.EditChallenge.form.dataOriginDate.label": "Дані було отримано", - "Admin.EditChallenge.form.dataOriginDate.description": "Вік даних. Вкажіть дату коли дані були отримані, згенеровані й таке інше", - "Admin.EditChallenge.form.ignoreSourceErrors.label": "Ігнорувати помилки", - "Admin.EditChallenge.form.ignoreSourceErrors.description": "Продовжувати попри виявлені помилки у даних. Тільки досвідчені користувачі, що розуміють наслідки можуть спробувати змінити цей параметр.", - "Admin.EditChallenge.form.step3.label": "Пріоритети", + "Admin.EditChallenge.form.requiresLocal.description": "Завдання, що вимагають знання місцевості. Примітка: виклик не буде показуватись в переліку 'Пошук викликів' в такому разі.", + "Admin.EditChallenge.form.requiresLocal.label": "Вимагає знання місцевості", + "Admin.EditChallenge.form.source.label": "Джерело GeoJSON", + "Admin.EditChallenge.form.step1.label": "Загальне", + "Admin.EditChallenge.form.step2.description": "\nКожне завдання в MapRoulette в основному складається з геометрії: точки, лінії чи полігону, що показує на мапі місце до якого ви бажаєте отримати розв’язання проблеми. Тут ви можете вказати звідки MapRoulette може отримати геометрію для вашого завдання.\n\nІснує три способи отримання геометрії для вашого Виклику: за допомогою запита Overpass, використовуючи файл GeoJSON з вашого комп’ютера, або скориставшись URL, що вказує на файл GeoJSON десь в інтернеті.\n\n#### Запит Overpass\n\nOverpass API – потужний інструмент для отримання даних OpenStreetMap. Він не працює з \"живою\" базою OSM, але дані, які ви можете отримати за допомогою Overpass, зазвичай не старіші за кілька хвилин. Використовуючи [Overpass QL](https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide), мову запитів Overpass Query Language, ви можете вказати які саме об’єкти OSM ви бажаєте використовувати у вашому Виклику у вигляді Завдань. [Дізнатись більше у вікі MapRoulette](https://github.com/osmlab/maproulette3/wiki/Using-Overpass-queries-to-create-Challenges).\n\n#### Файл GeoJSON\n\nІнший варіант – використання наявного у вас файлу GeoJSON. Чудово, якщо у вас є сторонні дані, придатні для додавання вручну в OSM. Інструменти, такі як [QGIS](https://gis.stackexchange.com/questions/91812/convert-shapefiles-to-geojson) та [gdal](http://www.gdal.org/drv_geojson.html) можуть допомогти вам перетворити Shapefile в GeoJSON. Після перетворення переконайтесь, що ваші дані мають координати у вигляді датуму WGS84 (EPSG:4326), це та проєкція яку MapRoulette використовує безпосередньо.\n\n> Примітка: для викликів з великою кількістю завдань рекомендується використовувати формат [однин об’єкт на рядок](https://github.com/osmlab/maproulette3/wiki/Line-by-Line-GeoJSON-Format) для уникнення надлишкового використання ресурсів системи.\n\n#### GeoJSON URL\n\nВідмінність між файлом GeoJSON на вашому комп’ютері та URL, це місце з якого MapRoulette отримає дані. Якщо ви використовуєте URL, переконайтесь що посилання вказує на сам файл GeoJSON, а не на сторінку яка посилається на файл, через те що MapRoulette не обробляє такі випадки.", + "Admin.EditChallenge.form.step2.label": "Джерело GeoJSON", "Admin.EditChallenge.form.step3.description": "Пріоритет завдань може бути визначена як Високий, Звичайний та Низький. Всі важливі завдання будуть запропоновані у Виклику для розв’язання першими, потім звичайні та на останок – неважливі. Кожний тип пріоритету призначається автоматично на основі правил, які можна визначити нижче, кожне з яких оцінює елементи завдання (теґи OSM, якщо ви використовуєте запит Overpass, в іншому випадку властивості, які ви включили до складу вашого GeoJSON). Завдання, що не відповідають жодному з правил отримують типовий рівень пріоритету.", - "Admin.EditChallenge.form.defaultPriority.label": "Типовий Пріоритет", - "Admin.EditChallenge.form.defaultPriority.description": "Типовий рівень пріоритету для завдань цього виклику", - "Admin.EditChallenge.form.highPriorityRules.label": "Правила для важливих завдань", - "Admin.EditChallenge.form.mediumPriorityRules.label": "Правила для звичайних завдань", - "Admin.EditChallenge.form.lowPriorityRules.label": "Правила для непріоритетних завдань", - "Admin.EditChallenge.form.step4.label": "Особливості", + "Admin.EditChallenge.form.step3.label": "Пріоритети", "Admin.EditChallenge.form.step4.description": "Додаткова інформація, яку можна за бажанням встановити для зручнішого мапінгу, специфічного до вимог виклику", - "Admin.EditChallenge.form.updateTasks.label": "Вилучати застарілі завдання", - "Admin.EditChallenge.form.updateTasks.description": "Періодично вилучати старі, \"протухлі\" (такі що не оновлювались впродовж останніх ~30 днів) завдання, які перебувають в стані Створене або Пропущене. Це може згодитись, якщо ви оновлюєте ваш Виклик на регулярній основі та бажаєте періодично вилучати застаріли завдання. У більшості випадків вашим вибором буде встановити значення цього параметру – Ні.", - "Admin.EditChallenge.form.defaultZoom.label": "Типовий масштаб", - "Admin.EditChallenge.form.defaultZoom.description": "Коли користувач розпочне роботу над завданням, MapRoulette спробує автоматично використовувати рівень масштабування, який відповідає межам елементів завдання. Але якщо це неможливо, буде використаний цей типовий рівень масштабування. Він повинен бути встановлений на рівні, який підходить для роботи з більшістю завдань у вашому виклику.", - "Admin.EditChallenge.form.minZoom.label": "Мінімальний масштаб", - "Admin.EditChallenge.form.minZoom.description": "Мінімально дозволений масштаб для вашого Виклику. Він має бути на рівні, що дозволяє учасникам віддалитись для роботи над завданнями, не дозволяючи їм зменшити масштаб до рівня, який не є корисним.", - "Admin.EditChallenge.form.maxZoom.label": "Максимальний масштаб", - "Admin.EditChallenge.form.maxZoom.description": "Максимально дозволений масштаб для вашого Виклику. Він має бути на рівні, що дозволяє учасникам наблизитись для роботи над завданнями, не дозволяючи їм збільшити масштаб до рівня, який не є корисним або перевищує доступні масштаби для супутникових знімків в обраному регіоні.", - "Admin.EditChallenge.form.defaultBasemap.label": "Фонова мапа Виклику", - "Admin.EditChallenge.form.defaultBasemap.description": "Типовий фон, що використовується для Виклику, має перевагу над налаштуваннями користувача щодо використання типового фону.", - "Admin.EditChallenge.form.customBasemap.label": "Власний фон", - "Admin.EditChallenge.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Admin.EditChallenge.form.exportableProperties.label": "Властивості для експорту в CSV", - "Admin.EditChallenge.form.exportableProperties.description": "Властивості розділені комою з цього переліку будуть додані у вигляді стовпців під час 'Експорту в CSV' та заповнені першою відповідною властивістю елемента для кожного завдання.", - "Admin.EditChallenge.form.osmIdProperty.label": "Параметр для OSM Id", - "Admin.EditChallenge.form.osmIdProperty.description": "Назва властивості об’єкта, що містить ідентифікатор OpenStreetMap елемента завдання. Якщо лишити це поле порожнім, MapRoulette спробує пошукати загальні поля, що можуть мати інформацію з ідентифікатором, включаючи ті що їх повертає Overpass. Якщо задано, **переконайтесь, що воно містить унікальне значення для кожного елемента ваших даних**. Завдання з відсутньою властивістю отримують випадковий ідентифікатор, навіть якщо у нього є загальний параметр id. [Дізнатись більше у вікі MapRoulette](https://github.com/osmlab/maproulette3/wiki/Challenge-Managers:-setting-external-task-IDs-(e.g.-OSM-IDs)).", - "Admin.EditChallenge.form.customTaskStyles.label": "Налаштування стилів Завдань", - "Admin.EditChallenge.form.customTaskStyles.description": "Увімкніть налаштування власних стилів, щоб мати можливість використовувати певні властивості об’єктів для цього.", - "Admin.EditChallenge.form.customTaskStyles.error": "Стиль властивостей завдання містить помилки. Виправте його щоб продовжити.", - "Admin.EditChallenge.form.customTaskStyles.button": "Налаштувати", - "Admin.EditChallenge.form.taskPropertyStyles.label": "Правила стилів Завдання", - "Admin.EditChallenge.form.taskPropertyStyles.close": "Готово", + "Admin.EditChallenge.form.step4.label": "Особливості", "Admin.EditChallenge.form.taskPropertyStyles.clear": "Очистити", + "Admin.EditChallenge.form.taskPropertyStyles.close": "Готово", "Admin.EditChallenge.form.taskPropertyStyles.description": "Встановлення правил стилів для завдань......", - "Admin.EditChallenge.form.requiresLocal.label": "Вимагає знання місцевості", - "Admin.EditChallenge.form.requiresLocal.description": "Завдання, що вимагають знання місцевості. Примітка: виклик не буде показуватись в переліку 'Пошук викликів' в такому разі.", - "Admin.ManageChallenges.header": "Виклики", - "Admin.ManageChallenges.help.info": "Виклики складаються з завдань, що дозволяють розв’язати певну проблему або виправити недолік в даних OpenStreetMap. Завдання, зазвичай, створюються автоматично за допомогою запитів OverpassQL під час створення Виклику, або можуть бути завантажені з локального файлу GeoJSON чи отримані за посиланням URL, що повертає об’єкти в форматі GeoJSON. Ви можете створити стільки викликів, скільки вам треба.", - "Admin.ManageChallenges.search.placeholder": "Назва", - "Admin.ManageChallenges.allProjectChallenge": "Всі", - "Admin.Challenge.fields.creationDate.label": "Створено:", - "Admin.Challenge.fields.lastModifiedDate.label": "Змінено:", - "Admin.Challenge.fields.status.label": "Стан:", - "Admin.Challenge.fields.enabled.label": "Видимий:", - "Admin.Challenge.controls.startChallenge.label": "Розпочати Виклик", - "Admin.Challenge.activity.label": "Нещодавні дії", - "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Вилучити", - "Admin.EditTask.edit.header": "Змінити Завдання", - "Admin.EditTask.new.header": "Нове Завдання", - "Admin.EditTask.form.formTitle": "Деталі завдання", - "Admin.EditTask.controls.save.label": "Зберегти", - "Admin.EditTask.controls.cancel.label": "Скасувати", - "Admin.EditTask.form.name.label": "Назва", - "Admin.EditTask.form.name.description": "Назва завдання", - "Admin.EditTask.form.instruction.label": "Інструкції", - "Admin.EditTask.form.instruction.description": "Інструкції для користувачів для виконання цього завдання (мають перевагу перед інструкціями з виклику)", - "Admin.EditTask.form.geometries.label": "GeoJSON", - "Admin.EditTask.form.geometries.description": "GeoJSON код для цього завдання. Кожне завдання в MapRoulette в основному складається з геометрії: точки, лінії чи полігону, що показує на мапі місце до якого ви бажаєте привернути увагу мапера для розв’язання проблеми, в форматі GeoJSON.", - "Admin.EditTask.form.priority.label": "Пріоритет", - "Admin.EditTask.form.status.label": "Стан", - "Admin.EditTask.form.status.description": "Стан цього завдання. В залежності від поточного стану, ваші можливості по його оновленню можуть бути обмежені", - "Admin.EditTask.form.additionalTags.label": "Теґи MapRoulette", - "Admin.EditTask.form.additionalTags.description": "Ви можете зазначити перелік бажаних теґів, які ви бажаєте щоб користувачі додавали в MapRoulette для позначення цього завдання.", - "Admin.EditTask.form.additionalTags.placeholder": "Додайте теґи MapRoulette", - "Admin.Task.controls.editTask.tooltip": "Зміна Завдання", - "Admin.Task.controls.editTask.label": "Змінити", - "Admin.manage.header": "Створити / Керувати", - "Admin.manage.virtual": "Віртуальні", - "Admin.ProjectCard.tabs.challenges.label": "Виклики", - "Admin.ProjectCard.tabs.details.label": "Деталі", - "Admin.ProjectCard.tabs.managers.label": "Менеджери", - "Admin.Project.fields.enabled.tooltip": "Увімкнено", - "Admin.Project.fields.disabled.tooltip": "Вимкнено", - "Admin.ProjectCard.controls.editProject.tooltip": "Змінити Проєкт", - "Admin.ProjectCard.controls.editProject.label": "Змінити Проєкт", - "Admin.ProjectCard.controls.pinProject.label": "Закріпити Проєкт", - "Admin.ProjectCard.controls.unpinProject.label": "Відкріпити Проєкт", + "Admin.EditChallenge.form.taskPropertyStyles.label": "Правила стилів Завдання", + "Admin.EditChallenge.form.updateTasks.description": "Періодично вилучати старі, \"протухлі\" (такі що не оновлювались впродовж останніх ~30 днів) завдання, які перебувають в стані Створене або Пропущене. Це може згодитись, якщо ви оновлюєте ваш Виклик на регулярній основі та бажаєте періодично вилучати застаріли завдання. У більшості випадків вашим вибором буде встановити значення цього параметру – Ні.", + "Admin.EditChallenge.form.updateTasks.label": "Вилучати застарілі завдання", + "Admin.EditChallenge.form.visible.description": "Дозволяє вашому виклику бути видимим для всіх, показувати його в результатах пошуку іншим користувачам (в залежності від видимості проєкту). Якщо ви не впевнені в створенні нових Викликів, ми радимо вам залиши ти цей параметр в стані Ні на початку, особливо, коли батьківський проєкт є видимим. Встановлення видимості вашого виклику в стан Так призведе до його появи на головній сторінці, в результатах пошуку Викликів та в статистиці, яле за умови видимості батьківського Проєкту.", + "Admin.EditChallenge.form.visible.label": "Видимий", + "Admin.EditChallenge.lineNumber": "Рядок {line, number}:", + "Admin.EditChallenge.new.header": "Новий Виклик", + "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Скорочення Overpass Turbo не підтримуються. Якщо ви бажаєте використовувати їх, відвідайте Overpass Turbo та протестуйте ваш запит, потім натисніть Експорт -> Запит -> Самостійний –> Копіювати та вставте його тут. ", + "Admin.EditProject.controls.cancel.label": "Скасувати", + "Admin.EditProject.controls.save.label": "Зберегти", + "Admin.EditProject.edit.header": "Змінити", + "Admin.EditProject.form.description.description": "Опис проєкту", + "Admin.EditProject.form.description.label": "Опис", + "Admin.EditProject.form.displayName.description": "Назва, що буде використовуватись для проєкту", + "Admin.EditProject.form.displayName.label": "Назва проєкту", + "Admin.EditProject.form.enabled.description": "Після встановлення стану \"Видимий\", усі Виклики з цього проєкту також отримують стан \"Видимий\". Вони стануть доступні для пошуку іншим учасникам. Отже, переводячи проєкт в стан \"Видимий\" ви робите усі Виклики, що входять до його складу, також видимими. Ви все ще можете продовжувати працювати над вашими власними Викликами та поширювати URL для будь-яких ваших Викликів з іншими, і вони будуть працювати. До переводу проєкту до стану \"Видимий\", він буде слугувати тестовим майданчиком для ваших Викликів.", + "Admin.EditProject.form.enabled.label": "Видимий", + "Admin.EditProject.form.featured.description": "Рекомендовані проєкти показуються на головній сторінці та на початку сторінки Пошук Викликів, для того щоб привернути до них більше уваги. Зауважте, що рекомендація проєкту ***не означає*** автоматичної рекомендації для викликів. Тільки адміністратор може зробити проєкт рекомендованим.", + "Admin.EditProject.form.featured.label": "Рекомендований", + "Admin.EditProject.form.isVirtual.description": "До \"Віртуального\" проєкту можна додати наявні виклики для їх гуртування. Цей параметр не можна змінити після створення проєкту. Дозволи викликів залишаються від їх батьківських проєктів без змін.", + "Admin.EditProject.form.isVirtual.label": "Віртуальний", + "Admin.EditProject.form.name.description": "Назва проєкту", + "Admin.EditProject.form.name.label": "Назва", + "Admin.EditProject.new.header": "Новий проєкт", + "Admin.EditProject.unavailable": "Проєкт недоступний", + "Admin.EditTask.controls.cancel.label": "Скасувати", + "Admin.EditTask.controls.save.label": "Зберегти", + "Admin.EditTask.edit.header": "Змінити Завдання", + "Admin.EditTask.form.additionalTags.description": "Ви можете зазначити перелік бажаних теґів, які ви бажаєте щоб користувачі додавали в MapRoulette для позначення цього завдання.", + "Admin.EditTask.form.additionalTags.label": "Теґи MapRoulette", + "Admin.EditTask.form.additionalTags.placeholder": "Додайте теґи MapRoulette", + "Admin.EditTask.form.formTitle": "Деталі завдання", + "Admin.EditTask.form.geometries.description": "GeoJSON код для цього завдання. Кожне завдання в MapRoulette в основному складається з геометрії: точки, лінії чи полігону, що показує на мапі місце до якого ви бажаєте привернути увагу мапера для розв’язання проблеми, в форматі GeoJSON.", + "Admin.EditTask.form.geometries.label": "GeoJSON", + "Admin.EditTask.form.instruction.description": "Інструкції для користувачів для виконання цього завдання (мають перевагу перед інструкціями з виклику)", + "Admin.EditTask.form.instruction.label": "Інструкції", + "Admin.EditTask.form.name.description": "Назва завдання", + "Admin.EditTask.form.name.label": "Назва", + "Admin.EditTask.form.priority.label": "Пріоритет", + "Admin.EditTask.form.status.description": "Стан цього завдання. В залежності від поточного стану, ваші можливості по його оновленню можуть бути обмежені", + "Admin.EditTask.form.status.label": "Стан", + "Admin.EditTask.new.header": "Нове Завдання", + "Admin.InspectTask.header": "Огляд Завдань", + "Admin.ManageChallengeSnapshots.deleteSnapshot.label": "Вилучити", + "Admin.ManageChallenges.allProjectChallenge": "Всі", + "Admin.ManageChallenges.header": "Виклики", + "Admin.ManageChallenges.help.info": "Виклики складаються з завдань, що дозволяють розв’язати певну проблему або виправити недолік в даних OpenStreetMap. Завдання, зазвичай, створюються автоматично за допомогою запитів OverpassQL під час створення Виклику, або можуть бути завантажені з локального файлу GeoJSON чи отримані за посиланням URL, що повертає об’єкти в форматі GeoJSON. Ви можете створити стільки викликів, скільки вам треба.", + "Admin.ManageChallenges.search.placeholder": "Назва", + "Admin.ManageTasks.geographicIndexingNotice": "Візьміть до уваги що географічна індексація нових та змінених викликів може тривати {delay, plural, one {# годину} few {# години} othere {# годин}}. Ваш виклик (та його завдання) може не показуватись в пошуку на мапі чи в результатах пошукових запитів до закінчення індексації.", + "Admin.ManageTasks.header": "Завдання", + "Admin.Project.challengesUndiscoverable": "виклики відсутні в пошуку", "Admin.Project.controls.addChallenge.label": "Додати Виклик", + "Admin.Project.controls.addChallenge.tooltip": "Новий Виклик", + "Admin.Project.controls.delete.label": "Вилучити Проєкт", + "Admin.Project.controls.export.label": "Експорт в CSV", "Admin.Project.controls.manageChallengeList.label": "Керування Викликами", + "Admin.Project.controls.visible.confirmation": "Ви впевнені? Жодного виклику з цього проєкту не буде видно для інших.", + "Admin.Project.controls.visible.label": "Видимий:", + "Admin.Project.fields.creationDate.label": "Створено:", + "Admin.Project.fields.disabled.tooltip": "Вимкнено", + "Admin.Project.fields.enabled.tooltip": "Увімкнено", + "Admin.Project.fields.lastModifiedDate.label": "Змінено:", "Admin.Project.headers.challengePreview": "Збіги Викликів", "Admin.Project.headers.virtual": "Віртуальний", - "Admin.Project.controls.export.label": "Експорт в CSV", - "Admin.ProjectDashboard.controls.edit.label": "Змінити Проєкт", - "Admin.ProjectDashboard.controls.delete.label": "Вилучити Проєкт", + "Admin.ProjectCard.controls.editProject.label": "Змінити Проєкт", + "Admin.ProjectCard.controls.editProject.tooltip": "Змінити Проєкт", + "Admin.ProjectCard.controls.pinProject.label": "Закріпити Проєкт", + "Admin.ProjectCard.controls.unpinProject.label": "Відкріпити Проєкт", + "Admin.ProjectCard.tabs.challenges.label": "Виклики", + "Admin.ProjectCard.tabs.details.label": "Деталі", + "Admin.ProjectCard.tabs.managers.label": "Менеджери", "Admin.ProjectDashboard.controls.addChallenge.label": "Додати Виклик", + "Admin.ProjectDashboard.controls.delete.label": "Вилучити Проєкт", + "Admin.ProjectDashboard.controls.edit.label": "Змінити Проєкт", "Admin.ProjectDashboard.controls.manageChallenges.label": "Керування Викликами", - "Admin.Project.fields.creationDate.label": "Створено:", - "Admin.Project.fields.lastModifiedDate.label": "Змінено:", - "Admin.Project.controls.delete.label": "Вилучити Проєкт", - "Admin.Project.controls.visible.label": "Видимий:", - "Admin.Project.controls.visible.confirmation": "Ви впевнені? Жодного виклику з цього проєкту не буде видно для інших.", - "Admin.Project.challengesUndiscoverable": "виклики відсутні в пошуку", - "ProjectPickerModal.chooseProject": "Оберіть Проєкт", - "ProjectPickerModal.noProjects": "Не знайдено жодного проекту", - "Admin.ProjectsDashboard.newProject": "Додати Проєкт", + "Admin.ProjectManagers.addManager": "Додати керівника проєкту", + "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Логін OpenStreetMap", + "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Назва команди", + "Admin.ProjectManagers.controls.removeManager.confirmation": "Ви впевнені, що бажаєте вилучити керівника з проєкту?", + "Admin.ProjectManagers.controls.removeManager.label": "Вилучити керівника", + "Admin.ProjectManagers.controls.selectRole.choose.label": "Оберіть роль", + "Admin.ProjectManagers.noManagers": "Керівників немає", + "Admin.ProjectManagers.options.teams.label": "Команда", + "Admin.ProjectManagers.options.users.label": "Користувач", + "Admin.ProjectManagers.projectOwner": "Власник", + "Admin.ProjectManagers.team.indicator": "Команда", "Admin.ProjectsDashboard.help.info": "Проєкти слугують засобом гуртування пов’язаних Викликів. Усі виклики повинні належати проєкту.", - "Admin.ProjectsDashboard.search.placeholder": "Назва Проєкту чи Виклику", - "Admin.Project.controls.addChallenge.tooltip": "Новий Виклик", + "Admin.ProjectsDashboard.newProject": "Додати Проєкт", "Admin.ProjectsDashboard.regenerateHomeProject": "Вийдіть із системи та увійдіть, щоб перестворити домашню сторінку проєкту.", - "RebuildTasksControl.label": "Перестворити Завдання", - "RebuildTasksControl.modal.title": "Перестворити Завдання Виклику", - "RebuildTasksControl.modal.intro.overpass": "Перестворення призведено для перезапуску запиту Overpass та перегенерації завдань Виклику на основі свіжих даних:", - "RebuildTasksControl.modal.intro.remote": "Процес перествореня завдань завантажить наново дані GeoJSON за вказаним під час створення Виклику URL та створить наново всі завдання, використовуючи найсвіжіші дані:", - "RebuildTasksControl.modal.intro.local": "Процес перестворення завдань дозволить вам завантажити новий файл GeoJSON зі свіжими даними для створення наново завдань для Виклику:", - "RebuildTasksControl.modal.explanation": "* Поточні завдання, для яких є свіжі дані буде оновлено\n* Будуть додані нові завдання\n* Якщо ви обрали спочатку вилучати незакінчені завдання (нижче), поточні __незакінчені__ завдання будуть вилучені\n* Якщо до цього ви не обрали опцію для вилучення незакінчених завдань, вони залишаться у Виклику так як є, можливо, залишаючи завдання які вже були розв’язані по за MapRoulette", - "RebuildTasksControl.modal.warning": "Попередження: Перестворення завдань може призвести до їх дублювання, якщо ідентифікатори завдань не були (правильно) вказані або порівняння наявних даних із новими пройшло з помилками. Цю дію не можливо буде скасувати!", - "RebuildTasksControl.modal.moreInfo": "[Дізнатись більше](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", - "RebuildTasksControl.modal.controls.removeUnmatched.label": "Спочатку вилучить незакінчені завдання", - "RebuildTasksControl.modal.controls.cancel.label": "Скасувати", - "RebuildTasksControl.modal.controls.proceed.label": "Продовжити", - "RebuildTasksControl.modal.controls.dataOriginDate.label": "Дані було отримано", - "StepNavigation.controls.cancel.label": "Скасувати", - "StepNavigation.controls.next.label": "Далі", - "StepNavigation.controls.prev.label": "Назад", - "StepNavigation.controls.finish.label": "Завершити", + "Admin.ProjectsDashboard.search.placeholder": "Назва Проєкту чи Виклику", + "Admin.Task.controls.editTask.label": "Змінити", + "Admin.Task.controls.editTask.tooltip": "Зміна Завдання", + "Admin.Task.fields.name.label": "Завдання:", + "Admin.Task.fields.status.label": "Стан:", + "Admin.TaskAnalysisTable.bundleMember.tooltip": "Частина комплексного завдання", + "Admin.TaskAnalysisTable.columnHeaders.actions": "Дії", + "Admin.TaskAnalysisTable.columnHeaders.comments": "Коментарі", + "Admin.TaskAnalysisTable.columnHeaders.tags": "Теґи", + "Admin.TaskAnalysisTable.controls.editTask.label": "Змінити", + "Admin.TaskAnalysisTable.controls.inspectTask.label": "Огляд", + "Admin.TaskAnalysisTable.controls.reviewTask.label": "Перевірка", + "Admin.TaskAnalysisTable.controls.startTask.label": "Розпочати", + "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Кілька комплексних завдань", + "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Показано", + "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Виділено: {selectedCount, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", + "Admin.TaskAnalysisTableHeader.taskCountStatus": "Показано: {countShown, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", + "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Показано: {percentShown}% ({countShown}) з {countTotal, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", "Admin.TaskDeletingProgress.deletingTasks.header": "Вилучення Завдань", "Admin.TaskDeletingProgress.tasksDeleting.label": "завдань вилучено", - "Admin.TaskPropertyStyleRules.styles.header": "Стилізація Завдань", - "Admin.TaskPropertyStyleRules.deleteRule": "Вилучити правило", - "Admin.TaskPropertyStyleRules.addRule": "Додати інше правило", + "Admin.TaskInspect.controls.editTask.label": "Зміна Завдання", + "Admin.TaskInspect.controls.modifyTask.label": "Змінити Завдання", + "Admin.TaskInspect.controls.nextTask.label": "Наступне Завдання", + "Admin.TaskInspect.controls.previousTask.label": "Попереднє завдання", + "Admin.TaskInspect.readonly.message": "Перегляд завдань в режимі \"тільки читання\"", "Admin.TaskPropertyStyleRules.addNewStyle.label": "Додати", "Admin.TaskPropertyStyleRules.addNewStyle.tooltip": "Додати стиль", + "Admin.TaskPropertyStyleRules.addRule": "Додати інше правило", + "Admin.TaskPropertyStyleRules.deleteRule": "Вилучити правило", "Admin.TaskPropertyStyleRules.removeStyle.tooltip": "Вилучити стиль", "Admin.TaskPropertyStyleRules.styleName": "Назва стилю", "Admin.TaskPropertyStyleRules.styleValue": "Значення стилю", "Admin.TaskPropertyStyleRules.styleValue.placeholder": "значення", - "Admin.TaskUploadProgress.uploadingTasks.header": "Створення Завдань", + "Admin.TaskPropertyStyleRules.styles.header": "Стилізація Завдань", + "Admin.TaskReview.controls.approved": "Ухвалити", + "Admin.TaskReview.controls.approvedWithFixes": "Ухвалити (зі змінами)", + "Admin.TaskReview.controls.currentReviewStatus.label": "Стан перевірки:", + "Admin.TaskReview.controls.currentTaskStatus.label": "Стан завдання:", + "Admin.TaskReview.controls.rejected": "Відхилити", + "Admin.TaskReview.controls.resubmit": "Надіслати на перевірку знов", + "Admin.TaskReview.controls.reviewAlreadyClaimed": "Це завдання вже перевіряється кимось іншим.", + "Admin.TaskReview.controls.reviewNotRequested": "Для цього завдання запиту на перевірку не надходило.", + "Admin.TaskReview.controls.skipReview": "Пропустити", + "Admin.TaskReview.controls.startReview": "Розпочати Перевірку", + "Admin.TaskReview.controls.taskNotCompleted": "Це завдання неможливо перевірити, воно ще не завершене.", + "Admin.TaskReview.controls.taskTags.label": "Теґи:", + "Admin.TaskReview.controls.updateReviewStatusTask.label": "Оновити стан перевірки", + "Admin.TaskReview.controls.userNotReviewer": "Ви зараз не є контролером. Щоб стати ним, встановіть відповідний параметр в налаштуваннях користувача.", + "Admin.TaskReview.reviewerIsMapper": "Ви не можете перевіряти власне завдання.", "Admin.TaskUploadProgress.tasksUploaded.label": "завдань отримано", - "Admin.Challenge.tasksBuilding": "Створення Завдань…", - "Admin.Challenge.tasksFailed": "Не вдалося створити Завдання", - "Admin.Challenge.tasksNone": "Завдань немає", - "Admin.Challenge.tasksCreatedCount": "завдань створено, поки що.", - "Admin.Challenge.totalCreationTime": "Пройшло часу:", - "Admin.Challenge.controls.refreshStatus.label": "Оновлення стану ", - "Admin.ManageTasks.header": "Завдання", - "Admin.ManageTasks.geographicIndexingNotice": "Візьміть до уваги що географічна індексація нових та змінених викликів може тривати {delay, plural, one {# годину} few {# години} othere {# годин}}. Ваш виклик (та його завдання) може не показуватись в пошуку на мапі чи в результатах пошукових запитів до закінчення індексації.", - "Admin.manageTasks.controls.changePriority.label": "Змінити Пріоритет", - "Admin.manageTasks.priorityLabel": "Пріоритет", - "Admin.manageTasks.controls.clearFilters.label": "Скинути фільтри", - "Admin.ChallengeTaskMap.controls.inspectTask.label": "Огляд Завдання", - "Admin.ChallengeTaskMap.controls.editTask.label": "Змінити Завдання", - "Admin.Task.fields.name.label": "Завдання:", - "Admin.Task.fields.status.label": "Стан:", - "Admin.VirtualProject.manageChallenge.label": "Керування Викликами", - "Admin.VirtualProject.controls.done.label": "Готово", - "Admin.VirtualProject.controls.addChallenge.label": "Додати Виклик", + "Admin.TaskUploadProgress.uploadingTasks.header": "Створення Завдань", "Admin.VirtualProject.ChallengeList.noChallenges": "Викликів немає", "Admin.VirtualProject.ChallengeList.search.placeholder": "Пошук", - "Admin.VirtualProject.currentChallenges.label": "Викликів у", - "Admin.VirtualProject.findChallenges.label": "Пошук Викликів", "Admin.VirtualProject.controls.add.label": "Додати", + "Admin.VirtualProject.controls.addChallenge.label": "Додати Виклик", + "Admin.VirtualProject.controls.done.label": "Готово", "Admin.VirtualProject.controls.remove.label": "Вилучити", - "Widgets.BurndownChartWidget.label": "Графік виконання", - "Widgets.BurndownChartWidget.title": "Залишилось завдань: {taskCount, number}", - "Widgets.CalendarHeatmapWidget.label": "Щоденний перебіг", - "Widgets.CalendarHeatmapWidget.title": "Щоденний перебіг: Виконання завдань", - "Widgets.ChallengeListWidget.label": "Виклики", - "Widgets.ChallengeListWidget.title": "Виклики", - "Widgets.ChallengeListWidget.search.placeholder": "Пошук", + "Admin.VirtualProject.currentChallenges.label": "Викликів у", + "Admin.VirtualProject.findChallenges.label": "Пошук Викликів", + "Admin.VirtualProject.manageChallenge.label": "Керування Викликами", + "Admin.fields.completedDuration.label": "Час виконання", + "Admin.fields.reviewDuration.label": "Час перевірки", + "Admin.fields.reviewedAt.label": "Перевірено", + "Admin.manage.header": "Створити / Керувати", + "Admin.manage.virtual": "Віртуальні", "Admin.manageProjectChallenges.controls.exportCSV.label": "Експорт в CSV", - "Widgets.ChallengeOverviewWidget.label": "Огляд Виклику", - "Widgets.ChallengeOverviewWidget.title": "Огляд", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Створено:", - "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Змінено:", - "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Завдань оновлено:", - "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Завдання створені:", - "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Завдання створені {refreshDate}, з отриманих {sourceDate} даних.", - "Widgets.ChallengeOverviewWidget.fields.status.label": "Стан:", - "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Видимий:", - "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Ключові слова:", - "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "проєкт невидимий", - "Widgets.ChallengeTasksWidget.label": "Завдання", - "Widgets.ChallengeTasksWidget.title": "Завдання", - "Widgets.CommentsWidget.label": "Коментарі", - "Widgets.CommentsWidget.title": "Коментарі", - "Widgets.CommentsWidget.controls.export.label": "Експорт", - "Widgets.LeaderboardWidget.label": "Дошка досягнень", - "Widgets.LeaderboardWidget.title": "Дошка досягнень", - "Widgets.ProjectAboutWidget.label": "Про Проєкти", - "Widgets.ProjectAboutWidget.title": "Про Проєкти", - "Widgets.ProjectAboutWidget.content": "Проєкти служать засобом гуртування пов’язаних між собою викликів. Усі виклики повинні бути частиною проєкту.\n\nВи можете створити стільки проєктів, скільки вам потрібно для того щоб організувати ваші Виклики та запросити інших користувачів MapRoulette допомогти розв’язати їх.\n\nВидимість проєктів має бути увімкнено перед тим як будь-які виклики з їх складу з’являться в результатах пошуку доступних для широкого загалу.", - "Widgets.ProjectListWidget.label": "Перелік проєктів", - "Widgets.ProjectListWidget.title": "Проєкти", - "Widgets.ProjectListWidget.search.placeholder": "Пошук", - "Widgets.ProjectManagersWidget.label": "Керівники проєкту", - "Admin.ProjectManagers.noManagers": "Керівників немає", - "Admin.ProjectManagers.addManager": "Додати керівника проєкту", - "Admin.ProjectManagers.projectOwner": "Власник", - "Admin.ProjectManagers.controls.removeManager.label": "Вилучити керівника", - "Admin.ProjectManagers.controls.removeManager.confirmation": "Ви впевнені, що бажаєте вилучити керівника з проєкту?", - "Admin.ProjectManagers.controls.selectRole.choose.label": "Оберіть роль", - "Admin.ProjectManagers.controls.chooseOSMUser.placeholder": "Логін OpenStreetMap", - "Admin.ProjectManagers.controls.chooseTeam.placeholder": "Назва команди", - "Admin.ProjectManagers.options.teams.label": "Команда", - "Admin.ProjectManagers.options.users.label": "Користувач", - "Admin.ProjectManagers.team.indicator": "Команда", - "Widgets.ProjectOverviewWidget.label": "Огляд", - "Widgets.ProjectOverviewWidget.title": "Огляд", - "Widgets.RecentActivityWidget.label": "Нещодавні дії", - "Widgets.RecentActivityWidget.title": "Нещодавні дії", - "Widgets.StatusRadarWidget.label": "Радар Станів", - "Widgets.StatusRadarWidget.title": "Розподіл станів завершених завдань", - "Metrics.tasks.evaluatedByUser.label": "Завдання розглянуті користувачами", - "AutosuggestTextBox.labels.noResults": "Збігів немає", - "Form.textUpload.prompt": "Киньте файл GeoJSON тут або клацніть щоб знайти його", - "Form.textUpload.readonly": "Буде використано поточний файл", - "Form.controls.addPriorityRule.label": "Додати правило", - "Form.controls.addMustachePreview.note": "Примітка: всі властивості в фігурних дужках показуватимуться порожніми у попередньому перегляді.", - "Challenge.fields.difficulty.label": "Складність", - "Challenge.fields.lastTaskRefresh.label": "Завдання створені", - "Challenge.fields.viewLeaderboard.label": "Дошка досягнень", - "Challenge.fields.vpList.label": "Також збігається з {count, plural, one {віртуальним проєктом} other {віртуальними проєктами}}:", - "Project.fields.viewLeaderboard.label": "Дошка досягнень", - "Project.indicator.label": "Проєкт", - "ChallengeDetails.controls.goBack.label": "Повернутись", - "ChallengeDetails.controls.start.label": "Розпочати", + "Admin.manageTasks.controls.bulkSelection.tooltip": "Виділити завдання", + "Admin.manageTasks.controls.changePriority.label": "Змінити Пріоритет", + "Admin.manageTasks.controls.changeReviewStatus.label": "Вилучити з переліку перевірки", + "Admin.manageTasks.controls.changeStatusTo.label": "Змінити стан на", + "Admin.manageTasks.controls.chooseStatus.label": "Обрати…", + "Admin.manageTasks.controls.clearFilters.label": "Скинути фільтри", + "Admin.manageTasks.controls.configureColumns.label": "Налаштування Стовпців", + "Admin.manageTasks.controls.exportCSV.label": "Експорт в CSV", + "Admin.manageTasks.controls.exportGeoJSON.label": "Експорт в GeoJSON", + "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Експорт перевірок в CSV", + "Admin.manageTasks.controls.hideReviewColumns.label": "Приховати стовпці Перевірки", + "Admin.manageTasks.controls.showReviewColumns.label": "Показати стовпці Перевірки", + "Admin.manageTasks.priorityLabel": "Пріоритет", + "AutosuggestTextBox.labels.noResults": "Збігів немає", + "BoundsSelectorModal.control.dismiss.label": "Обрати межі", + "BoundsSelectorModal.header": "Обрати межі", + "BoundsSelectorModal.primaryMessage": "Підсвітити межі, які ви бажаєте виділити.", + "BurndownChart.heading": "Завдань залишилось: {taskCount, number}", + "BurndownChart.tooltip": "Завдань залишилось", + "CalendarHeatmap.heading": "Щоденний перебіг: Виконання завдань", + "Challenge.basemap.bing": "Bing", + "Challenge.basemap.custom": "Власний фон", + "Challenge.basemap.none": "Нічого", + "Challenge.basemap.openCycleMap": "OpenCycleMap", + "Challenge.basemap.openStreetMap": "OpenStreetMap", + "Challenge.controls.clearFilters.label": "Скинути фільтри", + "Challenge.controls.loadMore.label": "Більше результатів", + "Challenge.controls.save.label": "Закріпити", + "Challenge.controls.start.label": "Розпочати", + "Challenge.controls.taskLoadBy.label": "Завантажити завдання в:", + "Challenge.controls.unsave.label": "Відкріпити", + "Challenge.controls.unsave.tooltip": "Відкріпити виклик", + "Challenge.cooperativeType.changeFile": "Кооперативний", + "Challenge.cooperativeType.none": "Нічого", + "Challenge.cooperativeType.tags": "Виправлення теґів", + "Challenge.difficulty.any": "Будь-яка", + "Challenge.difficulty.easy": "Легко", + "Challenge.difficulty.expert": "Експерт", + "Challenge.difficulty.normal": "Звичайно", + "Challenge.fields.difficulty.label": "Складність", + "Challenge.fields.lastTaskRefresh.label": "Завдання створені", + "Challenge.fields.viewLeaderboard.label": "Дошка досягнень", + "Challenge.fields.vpList.label": "Також збігається з {count, plural, one{віртуальним проєктом} other{віртуальними проєктами}}:", + "Challenge.keywords.any": "Будь-що", + "Challenge.keywords.buildings": "Будинки", + "Challenge.keywords.landUse": "Землекористування / Адміністративні межі", + "Challenge.keywords.navigation": "Дороги / Тротуари / Велодоріжки", + "Challenge.keywords.other": "Інше", + "Challenge.keywords.pointsOfInterest": "Точки / Території Інтересу", + "Challenge.keywords.transit": "Маршрути / Перевезення", + "Challenge.keywords.water": "Вода", + "Challenge.location.any": "Будь-де", + "Challenge.location.intersectingMapBounds": "Показані на мапі", + "Challenge.location.nearMe": "Поруч з вами", + "Challenge.location.withinMapBounds": "В межах мапи", + "Challenge.management.controls.manage.label": "Керувати", + "Challenge.results.heading": "Виклики", + "Challenge.results.noResults": "Результатів немає", + "Challenge.signIn.label": "Увійдіть щоб розпочати", + "Challenge.sort.cooperativeWork": "Кооперативні", + "Challenge.sort.created": "Найновіші", + "Challenge.sort.default": "Типово", + "Challenge.sort.name": "Назва", + "Challenge.sort.oldest": "Найстаріші", + "Challenge.sort.popularity": "Популярні", + "Challenge.status.building": "Створюється", + "Challenge.status.deletingTasks": "Вилучення Завдань", + "Challenge.status.failed": "Збій", + "Challenge.status.finished": "Завершений", + "Challenge.status.none": "Не застосовується", + "Challenge.status.partiallyLoaded": "Частково завантажений", + "Challenge.status.ready": "Готово", + "Challenge.type.challenge": "Виклик", + "Challenge.type.survey": "Дослідження", + "ChallengeCard.controls.visibilityToggle.tooltip": "Перемикач видимості заклику", + "ChallengeCard.totalTasks": "Всього завдань", + "ChallengeDetails.Task.fields.featured.label": "Рекомендований", "ChallengeDetails.controls.favorite.label": "Закріпити", "ChallengeDetails.controls.favorite.tooltip": "Додати в закладки", + "ChallengeDetails.controls.goBack.label": "Повернутись", + "ChallengeDetails.controls.start.label": "Розпочати", "ChallengeDetails.controls.unfavorite.label": "Відкріпити", "ChallengeDetails.controls.unfavorite.tooltip": "Вилучити із закладок", - "ChallengeDetails.management.controls.manage.label": "Керувати", - "ChallengeDetails.Task.fields.featured.label": "Рекомендований", "ChallengeDetails.fields.difficulty.label": "Складність", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Завдання створені", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Завдання створені {refreshDate}, з отриманих {sourceDate} даних.", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Завдання створені", "ChallengeDetails.fields.viewLeaderboard.label": "Дошка досягнень", "ChallengeDetails.fields.viewReviews.label": "Перевірка", + "ChallengeDetails.management.controls.manage.label": "Керувати", + "ChallengeEndModal.control.dismiss.label": "Продовжити", "ChallengeEndModal.header": "Виклик Завершено", "ChallengeEndModal.primaryMessage": "Ви позначили решту завдань в цьому виклику або пропущеними або занадто складними.", - "ChallengeEndModal.control.dismiss.label": "Продовжити", - "Task.controls.contactOwner.label": "Зв’язатись з власником", - "Task.controls.contactLink.label": "Напишіть до {owner} через OSM", - "ChallengeFilterSubnav.header": "Виклики", + "ChallengeFilterSubnav.controls.sortBy.label": "Впорядковувати за", "ChallengeFilterSubnav.filter.difficulty.label": "Складність", "ChallengeFilterSubnav.filter.keyword.label": "Працювати з", + "ChallengeFilterSubnav.filter.keywords.otherLabel": "Інше:", "ChallengeFilterSubnav.filter.location.label": "Місце", "ChallengeFilterSubnav.filter.search.label": "Шукати за назвою", - "Challenge.controls.clearFilters.label": "Скинути фільтри", - "ChallengeFilterSubnav.controls.sortBy.label": "Впорядковувати за", - "ChallengeFilterSubnav.filter.keywords.otherLabel": "Інше:", - "Challenge.controls.unsave.label": "Відкріпити", - "Challenge.controls.save.label": "Закріпити", - "Challenge.controls.start.label": "Розпочати", - "Challenge.management.controls.manage.label": "Керувати", - "Challenge.signIn.label": "Увійдіть щоб розпочати", - "Challenge.results.heading": "Виклики", - "Challenge.results.noResults": "Результатів немає", - "VirtualChallenge.controls.tooMany.label": "Треба наблизитись, щоб працювати з обраними завданнями", - "VirtualChallenge.controls.tooMany.tooltip": "Не більше {maxTasks, number} {maxTasks, plural, one {завдання} few {завдання} other {завдань}} може бути додано до \"віртуального\" виклику", - "VirtualChallenge.controls.create.label": "Працювати з {taskCount, number} {taskCount, plural, one {обраним завданням} few {обраними завданнями} other {обраними завданнями}}", - "VirtualChallenge.fields.name.label": "Назва вашого \"віртуального\" виклику", - "Challenge.controls.loadMore.label": "Більше результатів", + "ChallengeFilterSubnav.header": "Виклики", + "ChallengeFilterSubnav.query.searchType.challenge": "Виклики", + "ChallengeFilterSubnav.query.searchType.project": "Проєкти", "ChallengePane.controls.startChallenge.label": "Розпочати Виклик", - "Task.fauxStatus.available": "Наявні", - "ChallengeProgress.tooltip.label": "Завдання", - "ChallengeProgress.tasks.remaining": "Залишилось завдань: {taskCount, number}", - "ChallengeProgress.tasks.totalCount": "з {totalCount, number}", - "ChallengeProgress.priority.toggle": "Переглянути за Пріоритетом", - "ChallengeProgress.priority.label": "{priority} пріоритет завдання", - "ChallengeProgress.reviewStatus.label": "Стан перевірки", "ChallengeProgress.metrics.averageTime.label": "В середньому на завдання:", "ChallengeProgress.metrics.excludesSkip.label": "(виключаючи пропущені завдання)", + "ChallengeProgress.priority.label": "{priority} пріоритет завдання", + "ChallengeProgress.priority.toggle": "Переглянути за Пріоритетом", + "ChallengeProgress.reviewStatus.label": "Стан перевірки", + "ChallengeProgress.tasks.remaining": "Залишилось завдань: {taskCount, number}", + "ChallengeProgress.tasks.totalCount": "з {totalCount, number}", + "ChallengeProgress.tooltip.label": "Завдання", + "ChallengeProgressBorder.available": "Наявні", "CommentList.controls.viewTask.label": "Переглянути Завдання", "CommentList.noComments.label": "Коментарів немає", - "ConfigureColumnsModal.header": "Оберіть стовпці для показу", + "CompletionRadar.heading": "Завдань виконано: {taskCount, number}", "ConfigureColumnsModal.availableColumns.header": "Наявні стовпці", - "ConfigureColumnsModal.showingColumns.header": "Обрані стовпці", "ConfigureColumnsModal.controls.add": "Додати", - "ConfigureColumnsModal.controls.remove": "Вилучити", "ConfigureColumnsModal.controls.done.label": "Готово", - "ConfirmAction.title": "Ви впевнені?", - "ConfirmAction.prompt": "Цю дію не можливо скасувати", + "ConfigureColumnsModal.controls.remove": "Вилучити", + "ConfigureColumnsModal.header": "Оберіть стовпці для показу", + "ConfigureColumnsModal.showingColumns.header": "Обрані стовпці", "ConfirmAction.cancel": "Скасувати", "ConfirmAction.proceed": "Продовжити", + "ConfirmAction.prompt": "Цю дію не можливо скасувати", + "ConfirmAction.title": "Ви впевнені?", + "CongratulateModal.control.dismiss.label": "Продовжити", "CongratulateModal.header": "Вітаємо!", "CongratulateModal.primaryMessage": "Виклик опрацьовано", - "CongratulateModal.control.dismiss.label": "Продовжити", - "CountryName.ALL": "Всі країни", + "CooperativeWorkControls.controls.confirm.label": "Так", + "CooperativeWorkControls.controls.moreOptions.label": "Інше", + "CooperativeWorkControls.controls.reject.label": "Ні", + "CooperativeWorkControls.prompt": "Чи запропоновані зміни теґів OSM є правильними?", + "CountryName.AE": "Об’єднанні Арабські Емірати", "CountryName.AF": "Афганістан", - "CountryName.AO": "Ангола", "CountryName.AL": "Албанія", - "CountryName.AE": "Об’єднанні Арабські Емірати", - "CountryName.AR": "Аргентина", + "CountryName.ALL": "Всі країни", "CountryName.AM": "Вірменія", + "CountryName.AO": "Ангола", "CountryName.AQ": "Антарктида", - "CountryName.TF": "Французькі південні території", - "CountryName.AU": "Австралія", + "CountryName.AR": "Аргентина", "CountryName.AT": "Австрія", + "CountryName.AU": "Австралія", "CountryName.AZ": "Азербайджан", - "CountryName.BI": "Бурунді", + "CountryName.BA": "Боснія і Герцеговина", + "CountryName.BD": "Бангладеш", "CountryName.BE": "Бельгія", - "CountryName.BJ": "Бенін", "CountryName.BF": "Буркіна-Фасо", - "CountryName.BD": "Бангладеш", "CountryName.BG": "Болгарія", - "CountryName.BS": "Багами", - "CountryName.BA": "Боснія і Герцеговина", - "CountryName.BY": "Білорусь", - "CountryName.BZ": "Беліз", + "CountryName.BI": "Бурунді", + "CountryName.BJ": "Бенін", + "CountryName.BN": "Бруней", "CountryName.BO": "Болівія", "CountryName.BR": "Бразилія", - "CountryName.BN": "Бруней", + "CountryName.BS": "Багами", "CountryName.BT": "Бутан", "CountryName.BW": "Ботсвана", - "CountryName.CF": "Центральноафриканська республіка", + "CountryName.BY": "Білорусь", + "CountryName.BZ": "Беліз", "CountryName.CA": "Канада", + "CountryName.CD": "Конго (Кіншаса)", + "CountryName.CF": "Центральноафриканська республіка", + "CountryName.CG": "Конго (Браззавіль)", "CountryName.CH": "Швейцарія", - "CountryName.CL": "Чилі", - "CountryName.CN": "Китай", "CountryName.CI": "Кот-д'Івуар", + "CountryName.CL": "Чилі", "CountryName.CM": "Камерун", - "CountryName.CD": "Конго (Кіншаса)", - "CountryName.CG": "Конго (Браззавіль)", + "CountryName.CN": "Китай", "CountryName.CO": "Колумбія", "CountryName.CR": "Коста-Рика", "CountryName.CU": "Куба", @@ -415,10 +485,10 @@ "CountryName.DO": "Домініканська республіка", "CountryName.DZ": "Алжир", "CountryName.EC": "Еквадор", + "CountryName.EE": "Естонія", "CountryName.EG": "Єгипет", "CountryName.ER": "Еритрея", "CountryName.ES": "Іспанія", - "CountryName.EE": "Естонія", "CountryName.ET": "Ефіопія", "CountryName.FI": "Фінляндія", "CountryName.FJ": "Фіджі", @@ -428,57 +498,58 @@ "CountryName.GB": "Великобританія", "CountryName.GE": "Грузія", "CountryName.GH": "Гана", - "CountryName.GN": "Гвінея", + "CountryName.GL": "Гренландія", "CountryName.GM": "Гамбія", - "CountryName.GW": "Гвінея Бісау", + "CountryName.GN": "Гвінея", "CountryName.GQ": "Екваторіальна Гвінея", "CountryName.GR": "Греція", - "CountryName.GL": "Гренландія", "CountryName.GT": "Гватемала", + "CountryName.GW": "Гвінея Бісау", "CountryName.GY": "Гайана", "CountryName.HN": "Гондурас", "CountryName.HR": "Хорватія", "CountryName.HT": "Гаїті", "CountryName.HU": "Угорщина", "CountryName.ID": "Індонезія", - "CountryName.IN": "Індія", "CountryName.IE": "Ірландія", - "CountryName.IR": "Іран", + "CountryName.IL": "Ізраель", + "CountryName.IN": "Індія", "CountryName.IQ": "Ірак", + "CountryName.IR": "Іран", "CountryName.IS": "Ісландія", - "CountryName.IL": "Ізраель", "CountryName.IT": "Італія", "CountryName.JM": "Ямайка", "CountryName.JO": "Йорданія", "CountryName.JP": "Японія", - "CountryName.KZ": "Казахстан", "CountryName.KE": "Кенія", "CountryName.KG": "Киргизстан", "CountryName.KH": "Камбоджа", + "CountryName.KP": "Північна Корея", "CountryName.KR": "Південна Корея", "CountryName.KW": "Кувейт", + "CountryName.KZ": "Казахстан", "CountryName.LA": "Лаос", "CountryName.LB": "Ліван", - "CountryName.LR": "Ліберія", - "CountryName.LY": "Лівія", "CountryName.LK": "Шрі-Ланка", + "CountryName.LR": "Ліберія", "CountryName.LS": "Лесото", "CountryName.LT": "Литва", "CountryName.LU": "Люксембург", "CountryName.LV": "Латвія", + "CountryName.LY": "Лівія", "CountryName.MA": "Марокко", "CountryName.MD": "Молдова", + "CountryName.ME": "Чорногорія", "CountryName.MG": "Мадагаскар", - "CountryName.MX": "Мексика", "CountryName.MK": "Македонія", "CountryName.ML": "Малі", "CountryName.MM": "М’янма", - "CountryName.ME": "Чорногорія", "CountryName.MN": "Монголія", - "CountryName.MZ": "Мозамбік", "CountryName.MR": "Мавританія", "CountryName.MW": "Малаві", + "CountryName.MX": "Мексика", "CountryName.MY": "Малайзія", + "CountryName.MZ": "Мозамбік", "CountryName.NA": "Намібія", "CountryName.NC": "Нова Каледонія", "CountryName.NE": "Нігер", @@ -489,460 +560,821 @@ "CountryName.NP": "Непал", "CountryName.NZ": "Нова Зеландія", "CountryName.OM": "Оман", - "CountryName.PK": "Пакистан", "CountryName.PA": "Панама", "CountryName.PE": "Перу", - "CountryName.PH": "Філіппіни", "CountryName.PG": "Папуа-Нова Гвінея", + "CountryName.PH": "Філіппіни", + "CountryName.PK": "Пакистан", "CountryName.PL": "Польща", "CountryName.PR": "Пуерто-Рико", - "CountryName.KP": "Північна Корея", + "CountryName.PS": "Західний берег ріки Йордан", "CountryName.PT": "Португалія", "CountryName.PY": "Парагвай", "CountryName.QA": "Катар", "CountryName.RO": "Румунія", + "CountryName.RS": "Сербія", "CountryName.RU": "Росія", "CountryName.RW": "Руанда", "CountryName.SA": "Саудівська Аравія", - "CountryName.SD": "Судан", - "CountryName.SS": "Південний Судан", - "CountryName.SN": "Сенегал", "CountryName.SB": "Соломонові острови", + "CountryName.SD": "Судан", + "CountryName.SE": "Швеція", + "CountryName.SI": "Словенія", + "CountryName.SK": "Словаччина", "CountryName.SL": "Сьєрра-Леоне", - "CountryName.SV": "Сальвадор", + "CountryName.SN": "Сенегал", "CountryName.SO": "Сомалі", - "CountryName.RS": "Сербія", "CountryName.SR": "Сурінам", - "CountryName.SK": "Словаччина", - "CountryName.SI": "Словенія", - "CountryName.SE": "Швеція", - "CountryName.SZ": "Свазіленд", + "CountryName.SS": "Південний Судан", + "CountryName.SV": "Сальвадор", "CountryName.SY": "Сирія", + "CountryName.SZ": "Свазіленд", "CountryName.TD": "Чад", + "CountryName.TF": "Французькі південні території", "CountryName.TG": "Того", "CountryName.TH": "Таїланд", "CountryName.TJ": "Таджикистан", - "CountryName.TM": "Туркменістан", "CountryName.TL": "Східний Тимор", - "CountryName.TT": "Тринідад і Тобаго", + "CountryName.TM": "Туркменістан", "CountryName.TN": "Туніс", "CountryName.TR": "Туреччина", + "CountryName.TT": "Тринідад і Тобаго", "CountryName.TW": "Тайвань", "CountryName.TZ": "Танзанія", - "CountryName.UG": "Уганда", "CountryName.UA": "Україна", - "CountryName.UY": "Уругвай", + "CountryName.UG": "Уганда", "CountryName.US": "Сполучені Штати Америки", + "CountryName.UY": "Уругвай", "CountryName.UZ": "Узбекистан", "CountryName.VE": "Венесуела", "CountryName.VN": "В’єтнам", "CountryName.VU": "Вануату", - "CountryName.PS": "Західний берег ріки Йордан", "CountryName.YE": "Йемен", "CountryName.ZA": "Південна Африка", "CountryName.ZM": "Замбія", "CountryName.ZW": "Зімбабве", - "FitBoundsControl.tooltip": "Підігнати масштаб під елементи завдання", - "LayerToggle.controls.showTaskFeatures.label": "Елементи завдання", - "LayerToggle.controls.showOSMData.label": "Дані OSM", - "LayerToggle.controls.showMapillary.label": "Mapillary", - "LayerToggle.controls.more.label": "Більше", - "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", - "LayerToggle.imageCount": "({count, plural, =0 {знімків немає} one {# знімок} few {# знімки} other {# знімків}})", - "LayerToggle.loading": "(завантаження…)", - "PropertyList.title": "Властивості", - "PropertyList.noProperties": "Немає властивостей", - "EnhancedMap.SearchControl.searchLabel": "Пошук", - "EnhancedMap.SearchControl.noResults": "Результатів немає", - "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Запит до Nominatim", - "ErrorModal.title": "Овва!", - "FeaturedChallenges.header": "Подробиці Виклику", - "FeaturedChallenges.noFeatured": "Зараз рекомендованих Викликів немає", - "FeaturedChallenges.projectIndicator.label": "Проєкт", - "FeaturedChallenges.browse": "Переглянути", - "FeatureStyleLegend.noStyles.label": "Цей виклик не використовує власних стилів", - "FeatureStyleLegend.comparators.contains.label": "містить", - "FeatureStyleLegend.comparators.missing.label": "не містить", + "Dashboard.ChallengeFilter.pinned.label": "Пришпилений", + "Dashboard.ChallengeFilter.visible.label": "Видимий", + "Dashboard.ProjectFilter.owner.label": "Власний", + "Dashboard.ProjectFilter.pinned.label": "Пришпилений", + "Dashboard.ProjectFilter.visible.label": "Видимий", + "Dashboard.header": "Інформаційна панель", + "Dashboard.header.completedTasks": "{completedTasks, number} {completedTasks, plural, =0 {жодного завдання} one {завдання} few {завдання} other {завдань}}", + "Dashboard.header.completionPrompt": "Ви виконали", + "Dashboard.header.controls.findChallenge.label": "Відкрийте для себе нові Виклики", + "Dashboard.header.controls.latestChallenge.label": "Перейти до Виклику", + "Dashboard.header.encouragement": "Так тримати!", + "Dashboard.header.find": "Або знайдіть", + "Dashboard.header.getStarted": "Здобувайте бали виконуючи завдання!", + "Dashboard.header.globalRank": " #{rank, number} місце", + "Dashboard.header.globally": "в загальному рейтингу.", + "Dashboard.header.jumpBackIn": "Застрибуйте знов!", + "Dashboard.header.pointsPrompt": ", за що отримали", + "Dashboard.header.rankPrompt": ", та посіли", + "Dashboard.header.resume": "Продовжуйте ваш останній виклик", + "Dashboard.header.somethingNew": "щось нове", + "Dashboard.header.userScore": "{points, number} {points, plural, =0 {балів} one {бал} few {бали} other {балів}}", + "Dashboard.header.welcomeBack": "З поверненням, {username}!", + "Editor.id.label": "Редагувати в iD (веб-редактор)", + "Editor.josm.label": "Редагувати в JOSM", + "Editor.josmFeatures.label": "Редагувати в JOSM тільки ці елементи", + "Editor.josmLayer.label": "Редагувати в JOSM (новий шар)", + "Editor.level0.label": "Редагувати в Level0", + "Editor.none.label": "Нічого", + "Editor.rapid.label": "Редагувати в RapiD", + "EnhancedMap.SearchControl.noResults": "Результатів немає", + "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Запит до Nominatim", + "EnhancedMap.SearchControl.searchLabel": "Пошук", + "ErrorModal.title": "Овва!", + "Errors.boundedTask.fetchFailure": "Неможливо отримати завдання, обмежені мапою", + "Errors.challenge.deleteFailure": "Неможливо вилучити виклик.", + "Errors.challenge.doesNotExist": "Цей виклик не існує.", + "Errors.challenge.fetchFailure": "Неможливо отримати найновіші дані виклику з сервера.", + "Errors.challenge.rebuildFailure": "Неможливо перестворити завдання виклику", + "Errors.challenge.saveFailure": "Неможливо зберегти ваші зміни {details}", + "Errors.challenge.searchFailure": "Неможливо знайти виклики на сервері.", + "Errors.clusteredTask.fetchFailure": "Неможливо отримати кластери завдань", + "Errors.josm.missingFeatureIds": "Елементи завдання не містять ідентифікатора OSM, який потрібен для самостійного його завантаження в JOSM. Оберіть інший варіант редагування.", + "Errors.josm.noResponse": "Дистанційне керування OSM не відповідає. Переконайтесь, що ви увімкнули його в JOSM?", + "Errors.leaderboard.fetchFailure": "Неможливо отримати досягнення.", + "Errors.map.placeNotFound": "Nominatim нічого не знайшов.", + "Errors.map.renderFailure": "Неможливо показати {details}. Спроба перейти до типового фонового зображення.", + "Errors.mapillary.fetchFailure": "Неможливо отримати дані з Mapillary", + "Errors.nominatim.fetchFailure": "Неможливо отримати дані від Nominatim", + "Errors.openStreetCam.fetchFailure": "Неможливо отримати дані з OpenStreetCam", + "Errors.osm.bandwidthExceeded": "Перевищено пропускну здатність OpenStreetMap", + "Errors.osm.elementMissing": "Елемент не знайдений на сервері OpenStreetMap", + "Errors.osm.fetchFailure": "Неможливо отримати дані з OpenStreetMap", + "Errors.osm.requestTooLarge": "Запит даних OpenStreetMap завеликий", + "Errors.project.deleteFailure": "Неможливо вилучити проєкт.", + "Errors.project.fetchFailure": "Неможливо отримати найновіші дані проєкту з сервера.", + "Errors.project.notManager": "Ви маєте бути керівником проєкту.", + "Errors.project.saveFailure": "Неможливо зберегти ваші зміни {details}", + "Errors.project.searchFailure": "Неможливо знайти проєкти на сервері.", + "Errors.reviewTask.alreadyClaimed": "Це завдання вже перевіряє хтось інший.", + "Errors.reviewTask.fetchFailure": "Неможливо отримати завдання, що вимагають перевірки", + "Errors.reviewTask.notClaimedByYou": "Неможливо скасувати перевірку.", + "Errors.task.alreadyLocked": "Це завдання вже заблоковане кимось іншим.", + "Errors.task.bundleFailure": "Неможливо згуртувати завдання", + "Errors.task.deleteFailure": "Неможливо вилучити завдання.", + "Errors.task.doesNotExist": "Такого завдання не існує.", + "Errors.task.fetchFailure": "Неможливо отримати завдання для роботи з ними.", + "Errors.task.lockRefreshFailure": "Неможливо продовжити блокування завдання. Ваше блокування закінчилось. Ми рекомендуємо оновити сторінку та спробувати заблокувати завдання наново.", + "Errors.task.none": "В цьому виклику більше не залишилось завдань.", + "Errors.task.saveFailure": "Неможливо зберегти ваші зміни {details}", + "Errors.task.updateFailure": "Неможливо зберегти ваші зміни.", + "Errors.team.genericFailure": "Збій {details}", + "Errors.user.fetchFailure": "Неможливо отримати дані користувача з сервера.", + "Errors.user.genericFollowFailure": "Збій {details}", + "Errors.user.missingHomeLocation": "Ваше положення не визначене. Або дозвольте веб оглядачу визначати ваше положення, або встановіть його в налаштуваннях openstreetmap.org (можливо вам доведеться вийти та увійти знов у MapRoulette, щоб підхопити ці зміни в налаштуваннях OpenStreetMap).", + "Errors.user.notFound": "Користувач з таким іменем не знайдений.", + "Errors.user.unauthenticated": "Будь ласка, увійдіть щоб продовжити.", + "Errors.user.unauthorized": "На жаль, ви не маєте прав на виконання цієї дії.", + "Errors.user.updateFailure": "Неможливо оновити вашу інформацію користувача на сервері.", + "Errors.virtualChallenge.createFailure": "Неможливо створити віртуальний виклик {details}", + "Errors.virtualChallenge.expired": "Термін дії віртуального виклику минув.", + "Errors.virtualChallenge.fetchFailure": "Неможливо отримати найновіші дані віртуального виклику з сервера.", + "Errors.widgetWorkspace.importFailure": "Неможливо імпортувати оформлення {details}", + "Errors.widgetWorkspace.renderFailure": "Неможливо відтворити робоче середовище. Перемикаємось на робоче оформлення.", + "FeatureStyleLegend.comparators.contains.label": "містить", "FeatureStyleLegend.comparators.exists.label": "існує", - "Footer.versionLabel": "MapRoulette", - "Footer.getHelp": "Довідка", - "Footer.reportBug": "Сповістити про ваду", - "Footer.joinNewsletter": "Приєднатись до розсилки", - "Footer.followUs": "Стежити", + "FeatureStyleLegend.comparators.missing.label": "не містить", + "FeatureStyleLegend.noStyles.label": "Цей виклик не використовує власних стилів", + "FeaturedChallenges.browse": "Переглянути", + "FeaturedChallenges.header": "Подробиці Виклику", + "FeaturedChallenges.noFeatured": "Зараз рекомендованих Викликів немає", + "FeaturedChallenges.projectIndicator.label": "Проєкт", + "FitBoundsControl.tooltip": "Підігнати масштаб під елементи завдання", + "Followers.ViewFollowers.blockedHeader": "Заблоковані прихильники", + "Followers.ViewFollowers.followersNotAllowed": "Ви не дозволяєте стежити за вами (це можна змінити в налаштуваннях користувача)", + "Followers.ViewFollowers.header": "Ваші прихильники", + "Followers.ViewFollowers.indicator.following": "Стежать", + "Followers.ViewFollowers.noBlockedFollowers": "У вас немає жодного заблокованого прихильника", + "Followers.ViewFollowers.noFollowers": "Ніхто не стежить за вами", + "Followers.controls.block.label": "Заблокувати", + "Followers.controls.followBack.label": "Стежити також", + "Followers.controls.unblock.label": "Розблокувати", + "Following.Activity.controls.loadMore.label": "Завантажити ще", + "Following.ViewFollowing.header": "Ви стежите за", + "Following.ViewFollowing.notFollowing": "Ви ні за ким не стежите", + "Following.controls.stopFollowing.label": "Припинити стеження", "Footer.email.placeholder": "Адреса електронної пошти", "Footer.email.submit.label": "Надіслати", + "Footer.followUs": "Стежити", + "Footer.getHelp": "Довідка", + "Footer.joinNewsletter": "Приєднатись до розсилки", + "Footer.reportBug": "Сповістити про ваду", + "Footer.versionLabel": "MapRoulette", + "Form.controls.addMustachePreview.note": "Примітка: всі властивості в фігурних дужках показуватимуться порожніми у попередньому перегляді.", + "Form.controls.addPriorityRule.label": "Додати правило", + "Form.textUpload.prompt": "Киньте файл GeoJSON тут або клацніть щоб знайти його", + "Form.textUpload.readonly": "Буде використано поточний файл", + "General.controls.moreResults.label": "Більше результатів", + "GlobalActivity.title": "Глобальна активність", + "Grant.Role.admin": "Адмін", + "Grant.Role.read": "Читання", + "Grant.Role.write": "Запис", "HelpPopout.control.label": "Довідка", - "LayerSource.challengeDefault.label": "Типово для Виклику", - "LayerSource.userDefault.label": "Типово за вашими налаштуваннями", - "HomePane.header": "Створюйте мапу світу прямо зараз", + "Home.Featured.browse": "Переглянути", + "Home.Featured.header": "Рекомендовані Виклики", + "HomePane.createChallenges": "Створюйте завдання для інших, щоб допомогти покращити мапу.", "HomePane.feedback.header": "Відгук", - "HomePane.filterTagIntro": "Знайдіть завдання, які стосуються ваших інтересів.", - "HomePane.filterLocationIntro": "Виправляйте вади у місцевості, якою ви опікуєтесь.", "HomePane.filterDifficultyIntro": "Обирайте завдання відповідно до вашого досвіду.", - "HomePane.createChallenges": "Створюйте завдання для інших, щоб допомогти покращити мапу.", + "HomePane.filterLocationIntro": "Виправляйте вади у місцевості, якою ви опікуєтесь.", + "HomePane.filterTagIntro": "Знайдіть завдання, які стосуються ваших інтересів.", + "HomePane.header": "Розпочніть створювати мапу світу зараз", "HomePane.subheader": "Розпочати", - "Admin.TaskInspect.controls.previousTask.label": "Попереднє завдання", - "Admin.TaskInspect.controls.nextTask.label": "Наступне Завдання", - "Admin.TaskInspect.controls.editTask.label": "Зміна Завдання", - "Admin.TaskInspect.controls.modifyTask.label": "Змінити Завдання", - "Admin.TaskInspect.readonly.message": "Перегляд завдань в режимі \"тільки читання\"", + "Inbox.actions.openNotification.label": "Відкрити", + "Inbox.challengeCompleteNotification.lead": "Виклик, яким ви керуєте було завершено.", + "Inbox.controls.deleteSelected.label": "Вилучити", + "Inbox.controls.groupByTask.label": "Гуртувати за завданнями", + "Inbox.controls.manageSubscriptions.label": "Керувати підписками", + "Inbox.controls.markSelectedRead.label": "Позначити прочитаним", + "Inbox.controls.refreshNotifications.label": "Оновити", + "Inbox.followNotification.followed.lead": "У вас новий прихильник!", + "Inbox.header": "Сповіщення", + "Inbox.mentionNotification.lead": "Вас згадували в коментарях:", + "Inbox.noNotifications": "Немає сповіщень", + "Inbox.notification.controls.deleteNotification.label": "Вилучити", + "Inbox.notification.controls.manageChallenge.label": "Керувати Викликом", + "Inbox.notification.controls.reviewTask.label": "Перевірити Завдання", + "Inbox.notification.controls.viewTask.label": "Переглянути Завдання", + "Inbox.notification.controls.viewTeams.label": "Переглянути Команди", + "Inbox.reviewAgainNotification.lead": "Мапер переглянув свою роботу та запросив додаткової перевірки.", + "Inbox.reviewApprovedNotification.lead": "Гарні новини! Ваше завдання було перевірене та ухвалене.", + "Inbox.reviewApprovedWithFixesNotification.lead": "Ваше завдання було ухвалене (із деякими виправленням, зробленими контролером).", + "Inbox.reviewRejectedNotification.lead": "Під час перевірки вашого завдання, контролер визначив, що його треба доопрацювати.", + "Inbox.tableHeaders.challengeName": "Виклик", + "Inbox.tableHeaders.controls": "Дії", + "Inbox.tableHeaders.created": "Відправлено", + "Inbox.tableHeaders.fromUsername": "Від", + "Inbox.tableHeaders.isRead": "Читати", + "Inbox.tableHeaders.notificationType": "Тип", + "Inbox.tableHeaders.taskId": "Завдання", + "Inbox.teamNotification.invited.lead": "Вас запрошено приєднатись до команди!", + "KeyMapping.layers.layerMapillary": "Увімкнути шар Mapillary", + "KeyMapping.layers.layerOSMData": "Увімкнути шар даних OSM", + "KeyMapping.layers.layerTaskFeatures": "Увімкнути шар елементів", + "KeyMapping.openEditor.editId": "Редагувати в iD", + "KeyMapping.openEditor.editJosm": "Редагувати в JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Редагувати в JOSM тільки ці елементи", + "KeyMapping.openEditor.editJosmLayer": "Редагувати в JOSM (новий шар)", + "KeyMapping.openEditor.editLevel0": "Редагувати в Level0", + "KeyMapping.openEditor.editRapid": "Редагувати в RapiD", + "KeyMapping.taskCompletion.alreadyFixed": "Вже виправлено", + "KeyMapping.taskCompletion.confirmSubmit": "Так", + "KeyMapping.taskCompletion.falsePositive": "Не проблема", + "KeyMapping.taskCompletion.fixed": "Я виправив!", + "KeyMapping.taskCompletion.skip": "Пропустити", + "KeyMapping.taskCompletion.tooHard": "Дуже важко/Не бачу", + "KeyMapping.taskEditing.cancel": "Скасувати редагування", + "KeyMapping.taskEditing.escapeLabel": "ESC", + "KeyMapping.taskEditing.fitBounds": "Підігнати масштаб під елементи завдання", + "KeyMapping.taskInspect.nextTask": "Наступне Завдання", + "KeyMapping.taskInspect.prevTask": "Попереднє завдання", + "KeyboardShortcuts.control.label": "Гарячі клавіші", "KeywordAutosuggestInput.controls.addKeyword.placeholder": "Додати ключове слово", - "KeywordAutosuggestInput.controls.filterTags.placeholder": "Фільтр теґів", "KeywordAutosuggestInput.controls.chooseTags.placeholder": "Обрати теґи", + "KeywordAutosuggestInput.controls.filterTags.placeholder": "Фільтр теґів", "KeywordAutosuggestInput.controls.search.placeholder": "Пошук", - "General.controls.moreResults.label": "Більше результатів", + "LayerSource.challengeDefault.label": "Типово для Виклику", + "LayerSource.userDefault.label": "Типово за вашими налаштуваннями", + "LayerToggle.controls.more.label": "Більше", + "LayerToggle.controls.showMapillary.label": "Mapillary", + "LayerToggle.controls.showOSMData.label": "Дані OSM", + "LayerToggle.controls.showOpenStreetCam.label": "OpenStreetCam", + "LayerToggle.controls.showPriorityBounds.label": "Межі пріоритетів", + "LayerToggle.controls.showTaskFeatures.label": "Елементи завдання", + "LayerToggle.imageCount": "({count, plural, =0 {знімків немає} one {# знімок} few {# знімки} other {# знімків}})", + "LayerToggle.loading": "(завантаження…)", + "Leaderboard.controls.loadMore.label": "Показати більше", + "Leaderboard.global": "Загальна", + "Leaderboard.scoringMethod.explanation": "\n##### Бали нараховуються за виконані завдання наступним чином:\n\n| Стан | Бали |\n| :------------ | -----: |\n| Виправлено | 5 |\n| Не проблема | 3 |\n| Вже виправлено | 3 |\n| Дуже важко | 1 |\n| Пропущено | 0 |\n", + "Leaderboard.scoringMethod.label": "Рахування балів", + "Leaderboard.title": "Дошка досягнень", + "Leaderboard.updatedDaily": "Оновлюється кожні 24 години", + "Leaderboard.updatedFrequently": "Оновлюється кожні 15 хвилин", + "Leaderboard.user.points": "Бали", + "Leaderboard.user.topChallenges": "Основні виклики", + "Leaderboard.users.none": "Немає учасників за обраний період", + "Locale.af.label": "af (Afrikaans)", + "Locale.cs-CZ.label": "cs-CZ (Česko - Česká republika)", + "Locale.de.label": "de (Deutsch)", + "Locale.en-US.label": "en-US (U.S. English)", + "Locale.es.label": "es (Español)", + "Locale.fa-IR.label": "fa-IR (فارسی - ایران)", + "Locale.fr.label": "fr (Français)", + "Locale.ja.label": "ja (日本語)", + "Locale.ko.label": "ko (한국어)", + "Locale.nl.label": "nl (Dutch)", + "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", + "Locale.ru-RU.label": "ru-RU (Русский - Россия)", + "Locale.uk.label": "uk (Українська)", + "Metrics.completedTasksTitle": "Виконані Завдання", + "Metrics.leaderboard.globalRank.label": "Загальний рейтинг", + "Metrics.leaderboard.topChallenges.label": "Основні виклики", + "Metrics.leaderboard.totalPoints.label": "Всього балів", + "Metrics.leaderboardTitle": "Дошка досягнень", + "Metrics.reviewStats.approved.label": "Ухвалені під час перевірки завдання", + "Metrics.reviewStats.asReviewer.approved.label": "Ухвалені перевірені завдання", + "Metrics.reviewStats.asReviewer.assisted.label": "Перевірені завдання ухвалені зі змінами", + "Metrics.reviewStats.asReviewer.awaiting.label": "Завдання, які потребують завершення", + "Metrics.reviewStats.asReviewer.disputed.label": "Завдання із суперечками", + "Metrics.reviewStats.asReviewer.rejected.label": "Відхилені перевірені завдання", + "Metrics.reviewStats.assisted.label": "Ухвалені зі змінами під час перевірки завдання", + "Metrics.reviewStats.averageReviewTime.label": "Середній час перевірки:", + "Metrics.reviewStats.awaiting.label": "Завдання, що очікують на перевірку", + "Metrics.reviewStats.disputed.label": "Перевірені завдання із суперечками", + "Metrics.reviewStats.rejected.label": "Відхилені завдання", + "Metrics.reviewedTasksTitle": "Стан перевірки", + "Metrics.reviewedTasksTitle.asReviewer": "Завдання перевірені {username}", + "Metrics.reviewedTasksTitle.asReviewer.you": "Завдання перевірені вами", + "Metrics.tasks.evaluatedByUser.label": "Завдання розглянуті користувачами", + "Metrics.totalCompletedTasksTitle": "Всього виконано завдань", + "Metrics.userOptedOut": "Цей користувач вирішив не ділитись своїми досягненнями.", + "Metrics.userSince": "Приєднався:", "MobileNotSupported.header": "Будь ласка, скористайтесь вашим комп’ютером", "MobileNotSupported.message": "На жаль, MapRoulette зараз не підтримує роботу на мобільний пристроях.", "MobileNotSupported.pageMessage": "На жаль, ця сторінка поки що не сумісна з малими екранами та мобільними пристроями.", "MobileNotSupported.widenDisplay": "Якщо ви використовуєте комп’ютер, зробить вікно більшим або скористайтесь більшим екраном.", - "Navbar.links.dashboard": "Інформаційна панель", + "MobileTask.subheading.instructions": "Інструкції", + "Navbar.links.admin": "Створити / Керувати", "Navbar.links.challengeResults": "Пошук Викликів", - "Navbar.links.leaderboard": "Дошка досягнень", + "Navbar.links.dashboard": "Інформаційна панель", + "Navbar.links.globalActivity": "Глобальна активність", + "Navbar.links.help": "Дізнатись", "Navbar.links.inbox": "Вхідні", + "Navbar.links.leaderboard": "Дошка досягнень", "Navbar.links.review": "Перевірка", - "Navbar.links.admin": "Створити / Керувати", - "Navbar.links.help": "Дізнатись", - "Navbar.links.userProfile": "Налаштування", - "Navbar.links.userMetrics": "Статистика", "Navbar.links.signout": "Вийти", - "PageNotFound.message": "Овва! Сторінку, яку ви шукаєте, втрачено.", + "Navbar.links.teams": "Команди", + "Navbar.links.userMetrics": "Статистика", + "Navbar.links.userProfile": "Налаштування", + "Notification.type.challengeCompleted": "Завершення", + "Notification.type.challengeCompletedLong": "Завершення Виклику", + "Notification.type.follow": "Стежити", + "Notification.type.mention": "Загадування", + "Notification.type.review.again": "Перевірка", + "Notification.type.review.approved": "Ухвалено", + "Notification.type.review.rejected": "Відхилення", + "Notification.type.system": "Системні", + "Notification.type.team": "Команда", "PageNotFound.homePage": "На головну", - "PastDurationSelector.pastMonths.selectOption": "{months, plural, one {Минулий місяць} =12 {Минулий рік} few {Минулі # місяці} other {Минулі # місяців}}", - "PastDurationSelector.currentMonth.selectOption": "Поточний місяць", + "PageNotFound.message": "Овва! Сторінку, яку ви шукаєте, втрачено.", + "Pages.SignIn.modal.prompt": "Будь ласка, увійдіть щоб продовжити", + "Pages.SignIn.modal.title": "З поверненням!", "PastDurationSelector.allTime.selectOption": "Весь час", + "PastDurationSelector.currentMonth.selectOption": "Поточний місяць", + "PastDurationSelector.customRange.controls.search.label": "Шукати", + "PastDurationSelector.customRange.endDate": "Кінець", "PastDurationSelector.customRange.selectOption": "Задати", "PastDurationSelector.customRange.startDate": "Початок", - "PastDurationSelector.customRange.endDate": "Кінець", - "PastDurationSelector.customRange.controls.search.label": "Шукати", + "PastDurationSelector.pastMonths.selectOption": "{months, plural, one {Минулий місяць} =12 {Минулий рік} few {Минулі # місяці} other {Минулі # місяців}}", "PointsTicker.label": "Рахунок", "PopularChallenges.header": "Популярні Виклики", "PopularChallenges.none": "Викликів немає", - "ProjectDetails.controls.goBack.label": "Повернутись", - "ProjectDetails.controls.unsave.label": "Відкріпити", + "Profile.apiKey.controls.copy.label": "Копіювати", + "Profile.apiKey.controls.reset.label": "Оновити", + "Profile.apiKey.header": "Ключ API", + "Profile.form.allowFollowing.description": "Якщо Ні, інші учасники не зможуть відстежувати вашу активність в MapRoulette.", + "Profile.form.allowFollowing.label": "Дозволити мати Прихильників", + "Profile.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", + "Profile.form.customBasemap.label": "Власний фон", + "Profile.form.defaultBasemap.description": "Оберіть типову фонову мапу для показу. Це значення може не братись до уваги, якщо у виклику встановлене інший типовий фон.", + "Profile.form.defaultBasemap.label": "Типова фонова мапа", + "Profile.form.defaultEditor.description": "Оберіть типовий редактор, який ви бажаєте використовувати для роботи над завданнями. Встановивши цей параметр ви зможете оминути вікно його вибору після натискання на кнопку Редагувати в завданні.", + "Profile.form.defaultEditor.label": "Типовий редактор", + "Profile.form.email.description": "У разі вибору надсилань Сповіщень на електрону пошту, вони надходитимуть на цю адресу.\n\nОберіть які сповіщення від MapRoulette ви бажаєте отримувати, разом із тим, чи хочете ви отримувати листи зі сповіщеннями (негайно або у вигляді щоденного дайджесту)", + "Profile.form.email.label": "Адреса електронної пошти", + "Profile.form.isReviewer.description": "Брати участь у перевірці завдань, що до яких учасники запитали перевірки", + "Profile.form.isReviewer.label": "Контролер", + "Profile.form.leaderboardOptOut.description": "Якщо Так, ваші досягнення не будуть показуватись на загальній Дошці досягнень.", + "Profile.form.leaderboardOptOut.label": "Не показувати на Дошці досягнень", + "Profile.form.locale.description": "Мова інтерфейсу MapRoulette.", + "Profile.form.locale.label": "Мова", + "Profile.form.mandatory.label": "Обов’язково", + "Profile.form.needsReview.description": "Автоматично запитувати перевірку для кожного виконаного завдання", + "Profile.form.needsReview.label": "Запитувати перевірку для всієї роботи", + "Profile.form.no.label": "Ні", + "Profile.form.notification.label": "Сповіщення", + "Profile.form.notificationSubscriptions.description": "Оберіть які сповіщення від MapRoulette ви бажаєте отримувати, разом із тим, чи хочете ви отримувати листи зі сповіщеннями (негайно або у вигляді щоденного дайджесту)", + "Profile.form.notificationSubscriptions.label": "Підписка на сповіщення", + "Profile.form.yes.label": "Так", + "Profile.noUser": "Користувача не знайдено або у вас немає повноважень для перегляду.", + "Profile.page.title": "Налаштування Користувача", + "Profile.settings.header": "Загальні", + "Profile.userSince": "Приєднався:", + "Project.fields.viewLeaderboard.label": "Дошка досягнень", + "Project.indicator.label": "Проєкт", + "ProjectDetails.controls.goBack.label": "Повернутись", "ProjectDetails.controls.save.label": "Закріпити", - "ProjectDetails.management.controls.manage.label": "Керувати", - "ProjectDetails.management.controls.start.label": "Розпочати", - "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {Жодного виклику не залишилось} one {# виклик залишився} few {# виклики залишилось} other {# викликів залишилось}} у {isVirtual, select, true {віртуальному } other {}}проєкті", - "ProjectDetails.fields.featured.label": "Рекомендований", + "ProjectDetails.controls.unsave.label": "Відкріпити", + "ProjectDetails.fields.challengeCount.label": "{count, plural, =0 {Жодного виклику не залишилось} one{# виклик залишився} few{# виклики залишилось} other{# викликів залишилось}} у {isVirtual, select, true{віртуальному } other{}}проєкті", "ProjectDetails.fields.created.label": "Створено", + "ProjectDetails.fields.featured.label": "Рекомендований", "ProjectDetails.fields.modified.label": "Змінено", "ProjectDetails.fields.viewLeaderboard.label": "Дошка досягнень", "ProjectDetails.fields.viewReviews.label": "Перевірка", + "ProjectDetails.management.controls.manage.label": "Керувати", + "ProjectDetails.management.controls.start.label": "Розпочати", + "ProjectPickerModal.chooseProject": "Оберіть Проєкт", + "ProjectPickerModal.noProjects": "Не знайдено жодного проекту", + "PropertyList.noProperties": "Немає властивостей", + "PropertyList.title": "Властивості", "QuickWidget.failedToLoad": "Помилка віджету", - "Admin.TaskReview.controls.updateReviewStatusTask.label": "Оновити стан перевірки", - "Admin.TaskReview.controls.currentTaskStatus.label": "Стан завдання:", - "Admin.TaskReview.controls.currentReviewStatus.label": "Стан перевірки:", - "Admin.TaskReview.controls.taskTags.label": "Теґи:", - "Admin.TaskReview.controls.reviewNotRequested": "Для цього завдання запиту на перевірку не надходило.", - "Admin.TaskReview.controls.reviewAlreadyClaimed": "Це завдання вже перевіряється кимось іншим.", - "Admin.TaskReview.controls.userNotReviewer": "Ви зараз не є контролером. Щоб стати ним, встановіть відповідний параметр в налаштуваннях користувача.", - "Admin.TaskReview.reviewerIsMapper": "Ви не можете перевіряти власне завдання.", - "Admin.TaskReview.controls.taskNotCompleted": "Це завдання неможливо перевірити, воно ще не завершене.", - "Admin.TaskReview.controls.approved": "Ухвалити", - "Admin.TaskReview.controls.rejected": "Відхилити", - "Admin.TaskReview.controls.approvedWithFixes": "Ухвалити (зі змінами)", - "Admin.TaskReview.controls.startReview": "Розпочати Перевірку", - "Admin.TaskReview.controls.skipReview": "Пропустити", - "Admin.TaskReview.controls.resubmit": "Надіслати на перевірку знов", - "ReviewTaskPane.indicators.locked.label": "Завдання заблоковане", + "RebuildTasksControl.label": "Перестворити Завдання", + "RebuildTasksControl.modal.controls.cancel.label": "Скасувати", + "RebuildTasksControl.modal.controls.dataOriginDate.label": "Дані було отримано", + "RebuildTasksControl.modal.controls.proceed.label": "Продовжити", + "RebuildTasksControl.modal.controls.removeUnmatched.label": "Спочатку вилучить незакінчені завдання", + "RebuildTasksControl.modal.explanation": "* Поточні завдання, для яких є свіжі дані буде оновлено\n* Будуть додані нові завдання\n* Якщо ви обрали спочатку вилучати незакінчені завдання (нижче), поточні __незакінчені__ завдання будуть вилучені\n* Якщо до цього ви не обрали опцію для вилучення незакінчених завдань, вони залишаться у Виклику так як є, можливо, залишаючи завдання які вже були розв’язані по за MapRoulette", + "RebuildTasksControl.modal.intro.local": "Процес перестворення завдань дозволить вам завантажити новий файл GeoJSON зі свіжими даними для створення наново завдань для Виклику:", + "RebuildTasksControl.modal.intro.overpass": "Перестворення призведено для перезапуску запиту Overpass та перегенерації завдань Виклику на основі свіжих даних:", + "RebuildTasksControl.modal.intro.remote": "Процес перестворення завдань завантажить наново дані GeoJSON за вказаним під час створення Виклику URL та створить наново всі завдання, використовуючи найсвіжіші дані:", + "RebuildTasksControl.modal.moreInfo": "[Дізнатись більше](https://github.com/osmlab/maproulette3/wiki/Rebuilding-(Updating)-Challenge-Task-Data)", + "RebuildTasksControl.modal.title": "Перестворити Завдання Виклику", + "RebuildTasksControl.modal.warning": "Попередження: Перестворення завдань може призвести до їх дублювання, якщо ідентифікатори завдань не були (правильно) вказані або порівняння наявних даних із новими пройшло з помилками. Цю дію не можливо буде скасувати!", + "Review.Dashboard.allReviewedTasks": "Всі завдання для перевірки", + "Review.Dashboard.goBack.label": "Переналаштувати Перевірку", + "Review.Dashboard.myReviewTasks": "Мої перевірені завдання", + "Review.Dashboard.tasksReviewedByMe": "Завдання перевірені мною", + "Review.Dashboard.tasksToBeReviewed": "Завдання для перевірки", + "Review.Dashboard.volunteerAsReviewer.label": "Контролер", + "Review.Task.fields.id.label": "Внутрішній Id", + "Review.TaskAnalysisTable.allReviewedTasks": "Всі завдання для перевірки", + "Review.TaskAnalysisTable.columnHeaders.actions": "Дії", + "Review.TaskAnalysisTable.columnHeaders.comments": "Коментарі", + "Review.TaskAnalysisTable.configureColumns": "Налаштування стовпців", + "Review.TaskAnalysisTable.controls.fixTask.label": "Виправити", + "Review.TaskAnalysisTable.controls.resolveTask.label": "Розв’язати", + "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Перевірити зміни", + "Review.TaskAnalysisTable.controls.reviewTask.label": "Перевірка", + "Review.TaskAnalysisTable.controls.viewTask.label": "Переглянути", + "Review.TaskAnalysisTable.excludeOtherReviewers": "Не включати перевірки призначені для інших", + "Review.TaskAnalysisTable.exportMapperCSVLabel": "Експорт маперів в CSV", + "Review.TaskAnalysisTable.mapperControls.label": "Дії", + "Review.TaskAnalysisTable.myReviewTasks": "Мої виконані завдання після перевірки", + "Review.TaskAnalysisTable.noTasks": "Не знайдено жодного завдання", + "Review.TaskAnalysisTable.noTasksReviewed": "Жодне з ваших виконанних завдань не було перевірене.", + "Review.TaskAnalysisTable.noTasksReviewedByMe": "Ви не перевірили поки що жодного завдання.", + "Review.TaskAnalysisTable.onlySavedChallenges": "Обмежити закріпленими викликами", + "Review.TaskAnalysisTable.refresh": "Оновити", + "Review.TaskAnalysisTable.reviewCompleteControls.label": "Дії", + "Review.TaskAnalysisTable.reviewerControls.label": "Дії", + "Review.TaskAnalysisTable.startReviewing": "Перевірити ці Завдання", + "Review.TaskAnalysisTable.tasksReviewedByMe": "Завдання перевірені мною", + "Review.TaskAnalysisTable.tasksToBeReviewed": "Завдання для перевірки", + "Review.TaskAnalysisTable.totalTasks": "Всього: {countShown}", + "Review.fields.challenge.label": "Виклик", + "Review.fields.mappedOn.label": "Замаплено", + "Review.fields.priority.label": "Пріоритет", + "Review.fields.project.label": "Проєкт", + "Review.fields.requestedBy.label": "Мапер", + "Review.fields.reviewStatus.label": "Стан перевірки", + "Review.fields.reviewedAt.label": "Перевірено", + "Review.fields.reviewedBy.label": "Контролер", + "Review.fields.status.label": "Стан", + "Review.fields.tags.label": "Теґи", + "Review.multipleTasks.tooltip": "Кілька комплексних завдань", + "Review.tableFilter.reviewByAllChallenges": "Всі виклики", + "Review.tableFilter.reviewByAllProjects": "Всі проєкти", + "Review.tableFilter.reviewByChallenge": "Перевірка за викликами", + "Review.tableFilter.reviewByProject": "Перевірка за проєктами", + "Review.tableFilter.viewAllTasks": "Переглянути всі Завдання", + "Review.tablefilter.chooseFilter": "Оберіть проєкт чи виклик", + "ReviewMap.metrics.title": "Мапа Перевірки", + "ReviewStatus.metrics.alreadyFixed": "ВЖЕ ВИПРАВЛЕНО", + "ReviewStatus.metrics.approvedReview": "Ухвалені перевірені завдання", + "ReviewStatus.metrics.assistedReview": "Ухвалені зі змінами перевірені завдання", + "ReviewStatus.metrics.averageTime.label": "Ср. час перевірки:", + "ReviewStatus.metrics.awaitingReview": "Завдання, що очікують на перевірку", + "ReviewStatus.metrics.byTaskStatus.toggle": "Дивитись за станом завдань", + "ReviewStatus.metrics.disputedReview": "Перевірені оскаржені завдання", + "ReviewStatus.metrics.falsePositive": "НЕ ПРОБЛЕМА", + "ReviewStatus.metrics.fixed": "ВИПРАВЛЕНО", + "ReviewStatus.metrics.priority.label": "{priority} пріоритет завдання", + "ReviewStatus.metrics.priority.toggle": "Дивитись за пріоритетом завдань", + "ReviewStatus.metrics.rejectedReview": "Відхилені перевірені завдання", + "ReviewStatus.metrics.taskStatus.label": "{status} завдання", + "ReviewStatus.metrics.title": "Стан перевірки", + "ReviewStatus.metrics.tooHard": "ДУЖЕ ВАЖКО", "ReviewTaskPane.controls.unlock.label": "Розблокувати", + "ReviewTaskPane.indicators.locked.label": "Завдання заблоковане", "RolePicker.chooseRole.label": "Обрати роль", - "UserProfile.favoriteChallenges.header": "Ваші закріплені виклики", - "Challenge.controls.unsave.tooltip": "Відкріпити виклик", "SavedChallenges.widget.noChallenges": "Викликів немає", "SavedChallenges.widget.startChallenge": "Розпочати Виклик", - "UserProfile.savedTasks.header": "Відстежувані Завдання", - "Task.unsave.control.tooltip": "Припинити стеження", "SavedTasks.widget.noTasks": "Завдань немає", "SavedTasks.widget.viewTask": "Переглянути Завдання", "ScreenTooNarrow.header": "Зробіть вікно оглядача ширшим", "ScreenTooNarrow.message": "Ця сторінки поки що не сумісна з маленькими екранами. Збільшить вікно вашого оглядача або перейдіть до пристрою з більшим екраном.", - "ChallengeFilterSubnav.query.searchType.project": "Проєкти", - "ChallengeFilterSubnav.query.searchType.challenge": "Виклики", "ShareLink.controls.copy.label": "Копіювати", "SignIn.control.label": "Увійти", "SignIn.control.longLabel": "Увійдіть щоб розпочати", - "TagDiffVisualization.justChangesHeader": "Пропоновані зміни теґів OSM", - "TagDiffVisualization.header": "Пропоновані теґи OSM", - "TagDiffVisualization.current.label": "Зараз", - "TagDiffVisualization.proposed.label": "Пропонується", - "TagDiffVisualization.noChanges": "Немає змін", - "TagDiffVisualization.noChangeset": "Жодного набору змін не буде завантажено", - "TagDiffVisualization.controls.tagList.tooltip": "У вигляді переліку теґів", + "StartFollowing.controls.chooseOSMUser.placeholder": "Логін OpenStreetMap", + "StartFollowing.controls.follow.label": "Стежити", + "StartFollowing.header": "Стежити за учасником", + "StepNavigation.controls.cancel.label": "Скасувати", + "StepNavigation.controls.finish.label": "Завершити", + "StepNavigation.controls.next.label": "Далі", + "StepNavigation.controls.prev.label": "Назад", + "Subscription.type.dailyEmail": "Отримувати та щоденно надсилати на пошту", + "Subscription.type.ignore": "Ігнорувати", + "Subscription.type.immediateEmail": "Отримувати та негайно надсилати на пошту", + "Subscription.type.noEmail": "Отримувати, не надсилати поштою", + "TagDiffVisualization.controls.addTag.label": "Додати теґ", + "TagDiffVisualization.controls.cancelEdits.label": "Скасувати", "TagDiffVisualization.controls.changeset.tooltip": "У вигляді набору змін OSM", + "TagDiffVisualization.controls.deleteTag.tooltip": "Вилучити теґ", "TagDiffVisualization.controls.editTags.tooltip": "Змінити теґи", "TagDiffVisualization.controls.keepTag.label": "Залишити теґ", - "TagDiffVisualization.controls.addTag.label": "Додати теґ", - "TagDiffVisualization.controls.deleteTag.tooltip": "Вилучити теґ", - "TagDiffVisualization.controls.saveEdits.label": "Готово", - "TagDiffVisualization.controls.cancelEdits.label": "Скасувати", "TagDiffVisualization.controls.restoreFix.label": "Скасувати зміни", "TagDiffVisualization.controls.restoreFix.tooltip": "Відновити попередньо запропоновані теґи ", + "TagDiffVisualization.controls.saveEdits.label": "Готово", + "TagDiffVisualization.controls.tagList.tooltip": "У вигляді переліку теґів", "TagDiffVisualization.controls.tagName.placeholder": "Теґ", - "Admin.TaskAnalysisTable.columnHeaders.actions": "Дії", - "TasksTable.invert.abel": "інвертувати", - "TasksTable.inverted.label": "інвертовано", - "Task.fields.id.label": "Внутрішній Id", + "TagDiffVisualization.current.label": "Зараз", + "TagDiffVisualization.header": "Пропоновані теґи OSM", + "TagDiffVisualization.justChangesHeader": "Пропоновані зміни теґів OSM", + "TagDiffVisualization.noChanges": "Немає змін", + "TagDiffVisualization.noChangeset": "Жодного набору змін не буде завантажено", + "TagDiffVisualization.proposed.label": "Пропонується", + "Task.awaitingReview.label": "Завдання очікує на перевірку.", + "Task.comments.comment.controls.submit.label": "Надіслати", + "Task.controls.alreadyFixed.label": "Вже виправлено", + "Task.controls.alreadyFixed.tooltip": "Вже виправлено", + "Task.controls.cancelEditing.label": "Скасувати редагування", + "Task.controls.completionComment.placeholder": "Ваш коментар", + "Task.controls.completionComment.preview.label": "Переглянути", + "Task.controls.completionComment.write.label": "Писати", + "Task.controls.contactLink.label": "Напишіть до {owner} через OSM", + "Task.controls.contactOwner.label": "Зв’язатись з власником", + "Task.controls.edit.label": "Виправити", + "Task.controls.edit.tooltip": "Виправити", + "Task.controls.falsePositive.label": "Не проблема", + "Task.controls.falsePositive.tooltip": "Не проблема", + "Task.controls.fixed.label": "Я виправив!", + "Task.controls.fixed.tooltip": "Я виправив!", + "Task.controls.moreOptions.label": "Більше…", + "Task.controls.next.label": "Наступне Завдання", + "Task.controls.next.loadBy.label": "Завантажити наступне:", + "Task.controls.next.tooltip": "Наступне Завдання", + "Task.controls.nextNearby.label": "Оберіть наступне завдання поруч", + "Task.controls.revised.dispute": "Незгода з перевіркою", + "Task.controls.revised.label": "Перевірку завершено", + "Task.controls.revised.resubmit": "Надіслати на повторну перевірку", + "Task.controls.revised.tooltip": "Перевірку завершено", + "Task.controls.skip.label": "Пропустити", + "Task.controls.skip.tooltip": "Пропустити Завдання", + "Task.controls.step1.revisionNeeded": "Це завдання вимагає перевірки. Ознайомтесь з коментарями до нього, щоб дізнатись подробиці.", + "Task.controls.tooHard.label": "Дуже важко/Не бачу", + "Task.controls.tooHard.tooltip": "Дуже важко/Не бачу", + "Task.controls.track.label": "Відстежувати це завдання", + "Task.controls.untrack.label": "Припинити відстежування завдання", + "Task.controls.viewChangeset.label": "Показати набір змін", + "Task.fauxStatus.available": "Наявні", + "Task.fields.completedBy.label": "Виконавець", "Task.fields.featureId.label": "Id елемента", - "Task.fields.status.label": "Стан", - "Task.fields.priority.label": "Пріоритет", + "Task.fields.id.label": "Внутрішній Id", "Task.fields.mappedOn.label": "Замаплено", - "Task.fields.reviewStatus.label": "Стан перевірки", - "Task.fields.completedBy.label": "Виконавець", - "Admin.fields.completedDuration.label": "Час виконання", + "Task.fields.priority.label": "Пріоритет", "Task.fields.requestedBy.label": "Мапер", + "Task.fields.reviewStatus.label": "Стан перевірки", "Task.fields.reviewedBy.label": "Контролер", - "Admin.fields.reviewedAt.label": "Перевірено", - "Admin.fields.reviewDuration.label": "Час перевірки", - "Admin.TaskAnalysisTable.columnHeaders.comments": "Коментарі", - "Admin.TaskAnalysisTable.columnHeaders.tags": "Теґи", - "Admin.TaskAnalysisTable.controls.inspectTask.label": "Огляд", - "Admin.TaskAnalysisTable.controls.reviewTask.label": "Перевірка", - "Admin.TaskAnalysisTable.controls.editTask.label": "Змінити", - "Admin.TaskAnalysisTable.controls.startTask.label": "Розпочати", - "Admin.manageTasks.controls.bulkSelection.tooltip": "Виділити завдання", - "Admin.TaskAnalysisTableHeader.taskCountStatus": "Показано: {countShown, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", - "Admin.TaskAnalysisTableHeader.taskCountSelectedStatus": "Виділено: {selectedCount, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", - "Admin.TaskAnalysisTableHeader.taskPercentStatus": "Показано: {percentShown}% ({countShown}) з {countTotal, plural, one {# Завдання} few {# Завдання} other {# Завдань}}", - "Admin.manageTasks.controls.changeStatusTo.label": "Змінити стан на", - "Admin.manageTasks.controls.chooseStatus.label": "Обрати…", - "Admin.manageTasks.controls.changeReviewStatus.label": "Вилучити з переліку перевірки", - "Admin.manageTasks.controls.showReviewColumns.label": "Показати стовпці Перевірки", - "Admin.manageTasks.controls.hideReviewColumns.label": "Приховати стовпці Перевірки", - "Admin.manageTasks.controls.configureColumns.label": "Налаштування Стовпців", - "Admin.manageTasks.controls.exportCSV.label": "Експорт в CSV", - "Admin.manageTasks.controls.exportGeoJSON.label": "Експорт в GeoJSON", - "Admin.manageTasks.controls.exportMapperReviewCSV.label": "Експорт перевірок в CSV", - "Admin.TaskAnalysisTableHeader.controls.chooseShown.label": "Показано", - "Admin.TaskAnalysisTable.multipleTasks.tooltip": "Кілька комплексних завдань", - "Admin.TaskAnalysisTable.bundleMember.tooltip": "Частина комплексного завдання", - "ReviewMap.metrics.title": "Мапа Перевірки", - "TaskClusterMap.controls.clusterTasks.label": "Гуртувати", - "TaskClusterMap.message.zoomInForTasks.label": "Наблизьтесь щоб побачити завдання", - "TaskClusterMap.message.nearMe.label": "Поруч з вами", - "TaskClusterMap.message.or.label": "або", - "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {Жодного завдання не} one {# завдання} few {# завдання} other {# завдань}} знайдено", - "TaskClusterMap.message.moveMapToRefresh.label": "Натисніть для показу завдань", - "Task.controls.completionComment.placeholder": "Ваш коментар", - "Task.comments.comment.controls.submit.label": "Надіслати", - "Task.controls.completionComment.write.label": "Писати", - "Task.controls.completionComment.preview.label": "Переглянути", - "TaskCommentsModal.header": "Коментарі", - "TaskConfirmationModal.header": "Підтвердить, будь ласка", - "TaskConfirmationModal.submitRevisionHeader": "Підтвердить, будь ласка, переробку", + "Task.fields.status.label": "Стан", + "Task.loadByMethod.proximity": "Поруч", + "Task.loadByMethod.random": "Випадково", + "Task.management.controls.inspect.label": "Огляд", + "Task.management.controls.modify.label": "Змінити", + "Task.management.heading": "Параметри керування", + "Task.markedAs.label": "Завдання позначене як", + "Task.pane.controls.browseChallenge.label": "Переглянути Виклик", + "Task.pane.controls.inspect.label": "Огляд", + "Task.pane.controls.preview.label": "Переглянути завдання", + "Task.pane.controls.retryLock.label": "Спробувати заблокувати знов", + "Task.pane.controls.saveChanges.label": "Зберегти зміни", + "Task.pane.controls.tryLock.label": "Спробуйте заблокувати", + "Task.pane.controls.unlock.label": "Розблокувати", + "Task.pane.indicators.locked.label": "Завдання заблоковане", + "Task.pane.indicators.readOnly.label": "Перегляд в режимі \"тільки читання\"", + "Task.pane.lockFailedDialog.prompt": "Блокування завдань не передбачане. Тільки перегляд в режимі \"тільки читання\"", + "Task.pane.lockFailedDialog.title": "Неможливо заблокувати завдання", + "Task.priority.high": "Високий", + "Task.priority.low": "Низький", + "Task.priority.medium": "Звичайний", + "Task.property.operationType.and": "та", + "Task.property.operationType.or": "або", + "Task.property.searchType.contains": "містить", + "Task.property.searchType.equals": "дорівнює", + "Task.property.searchType.exists": "існує", + "Task.property.searchType.missing": "не містить", + "Task.property.searchType.notEqual": "не дорівнює", + "Task.readonly.message": "Перегляд завдань в режимі читання (без змін)", + "Task.requestReview.label": "потрібна перевірка?", + "Task.review.loadByMethod.all": "Повернутись до списку", + "Task.review.loadByMethod.inbox": "Назад до Вихідних", + "Task.review.loadByMethod.nearby": "Завдання поруч", + "Task.review.loadByMethod.next": "Наступне завдання з фільтра", + "Task.reviewStatus.approved": "Ухвалено", + "Task.reviewStatus.approvedWithFixes": "Ухвалено зі змінами", + "Task.reviewStatus.disputed": "Оспорюється", + "Task.reviewStatus.needed": "Потрібна перевірка", + "Task.reviewStatus.rejected": "Потрібні зміни", + "Task.reviewStatus.unnecessary": "Непотрібно", + "Task.reviewStatus.unset": "Запит на перевірку не надсилався", + "Task.status.alreadyFixed": "Вже виправлено", + "Task.status.created": "Створено", + "Task.status.deleted": "Вилучено", + "Task.status.disabled": "Вимкнено", + "Task.status.falsePositive": "Не проблема", + "Task.status.fixed": "Виправлено", + "Task.status.skipped": "Пропущено", + "Task.status.tooHard": "Дуже важко", + "Task.taskTags.add.label": "Додайте теґи MapRoulette", + "Task.taskTags.addTags.placeholder": "Додайте теґи MapRoulette", + "Task.taskTags.cancel.label": "Скасувати", + "Task.taskTags.label": "Теґи MapRoulette:", + "Task.taskTags.modify.label": "Змінити теґи MapRoulette", + "Task.taskTags.save.label": "Зберегти", + "Task.taskTags.update.label": "Оновити теґи MapRoulette", + "Task.unsave.control.tooltip": "Припинити стеження", + "TaskClusterMap.controls.clusterTasks.label": "Гуртувати", + "TaskClusterMap.message.moveMapToRefresh.label": "Натисніть для показу завдань", + "TaskClusterMap.message.nearMe.label": "Поруч з вами", + "TaskClusterMap.message.or.label": "або", + "TaskClusterMap.message.taskCount.label": "{count, plural, =0 {Жодного завдання не} one {# завдання} few {# завдання} other {# завдань}} знайдено", + "TaskClusterMap.message.zoomInForTasks.label": "Наблизьтесь щоб побачити завдання", + "TaskCommentsModal.header": "Коментарі", + "TaskConfirmationModal.addTags.placeholder": "Додайте теґи MapRoulette", + "TaskConfirmationModal.adjustFilters.label": "Налаштувати фільтр", + "TaskConfirmationModal.cancel.label": "Скасувати", + "TaskConfirmationModal.challenge.label": "Виклик:", + "TaskConfirmationModal.comment.header": "Коментар MapRoulette (необов'язковий)", + "TaskConfirmationModal.comment.label": "Можна залишити коментар", + "TaskConfirmationModal.comment.placeholder": "Ваш коментар (необов'язковий)", + "TaskConfirmationModal.controls.osmViewChangeset.label": "Огляд набору змін", "TaskConfirmationModal.disputeRevisionHeader": "Підтвердить, будь ласка, відхилення", + "TaskConfirmationModal.done.label": "Готово", + "TaskConfirmationModal.header": "Підтвердить, будь ласка", "TaskConfirmationModal.inReviewHeader": "Підтвердить, будь ласка, перевірку", - "TaskConfirmationModal.comment.label": "Можна залишити коментар", - "TaskConfirmationModal.review.label": "Потрібна додаткова пара очей? Поставте відмітку тут, щоб хтось інший перевірив вашу роботу", + "TaskConfirmationModal.invert.label": "інвертувати", + "TaskConfirmationModal.inverted.label": "інвертовано", "TaskConfirmationModal.loadBy.label": "Наступне Завдання:", "TaskConfirmationModal.loadNextReview.label": "Продовжити з:", - "TaskConfirmationModal.cancel.label": "Скасувати", - "TaskConfirmationModal.submit.label": "Так", - "TaskConfirmationModal.osmUploadNotice": "Ці зміни буде надіслано до OpenStreetMap від вашого імені", - "TaskConfirmationModal.controls.osmViewChangeset.label": "Огляд набору змін", + "TaskConfirmationModal.mapper.label": "Мапер:", + "TaskConfirmationModal.nextNearby.label": "Оберіть наступне завдання поруч (необов'язково)", "TaskConfirmationModal.osmComment.header": "Коментар змін OSM", "TaskConfirmationModal.osmComment.placeholder": "Коментар OpenStreetMap", - "TaskConfirmationModal.comment.header": "Коментар MapRoulette (необов'язковий)", - "TaskConfirmationModal.comment.placeholder": "Ваш коментар (необов'язковий)", - "TaskConfirmationModal.nextNearby.label": "Оберіть наступне завдання поруч (необов'язково)", - "TaskConfirmationModal.addTags.placeholder": "Додайте теґи MapRoulette", - "TaskConfirmationModal.adjustFilters.label": "Налаштувати фільтр", - "TaskConfirmationModal.done.label": "Готово", - "TaskConfirmationModal.useChallenge.label": "Використовувати поточний виклик", + "TaskConfirmationModal.osmUploadNotice": "Ці зміни буде надіслано до OpenStreetMap від вашого імені", + "TaskConfirmationModal.priority.label": "Пріоритет:", + "TaskConfirmationModal.review.label": "Потрібна додаткова пара очей? Поставте відмітку тут, щоб хтось інший перевірив вашу роботу", "TaskConfirmationModal.reviewStatus.label": "Стан перевірки:", "TaskConfirmationModal.status.label": "Стан:", - "TaskConfirmationModal.priority.label": "Пріоритет:", - "TaskConfirmationModal.challenge.label": "Виклик:", - "TaskConfirmationModal.mapper.label": "Мапер:", - "TaskPropertyFilter.label": "За властивостями", - "TaskPriorityFilter.label": "За пріоритетом", - "TaskStatusFilter.label": "За станом", - "TaskReviewStatusFilter.label": "За станом перевірки", - "TaskHistory.fields.startedOn.label": "Розпочато", + "TaskConfirmationModal.submit.label": "Так", + "TaskConfirmationModal.submitRevisionHeader": "Підтвердить, будь ласка, переробку", + "TaskConfirmationModal.useChallenge.label": "Використовувати поточний виклик", "TaskHistory.controls.viewAttic.label": "Переглянути Attic", + "TaskHistory.fields.startedOn.label": "Розпочато", "TaskHistory.fields.taskUpdated.label": "Завдання оновлене керівником виклику", - "CooperativeWorkControls.prompt": "Чи запропоновані зміни теґів OSM є правильними?", - "CooperativeWorkControls.controls.confirm.label": "Так", - "CooperativeWorkControls.controls.reject.label": "Ні", - "CooperativeWorkControls.controls.moreOptions.label": "Інше", - "Task.markedAs.label": "Завдання позначене як", - "Task.requestReview.label": "потрібна перевірка?", - "Task.awaitingReview.label": "Завдання очікує на перевірку.", - "Task.readonly.message": "Перегляд завдань в режимі читання (без змін)", - "Task.controls.viewChangeset.label": "Показати набір змін", - "Task.controls.moreOptions.label": "Більше…", - "Task.controls.alreadyFixed.label": "Вже виправлено", - "Task.controls.alreadyFixed.tooltip": "Вже виправлено", - "Task.controls.cancelEditing.label": "Скасувати редагування", - "Task.controls.step1.revisionNeeded": "Це завдання вимагає перевірки. Ознайомтесь з коментарями до нього, щоб дізнатись подробиці.", - "ActiveTask.controls.fixed.label": "Я виправив!", - "ActiveTask.controls.notFixed.label": "Дуже важко/Не бачу", - "ActiveTask.controls.aleadyFixed.label": "Вже виправлено", - "ActiveTask.controls.cancelEditing.label": "Повернутись", - "Task.controls.edit.label": "Виправити", - "Task.controls.edit.tooltip": "Виправити", - "Task.controls.falsePositive.label": "Не проблема", - "Task.controls.falsePositive.tooltip": "Не проблема", - "Task.controls.fixed.label": "Я виправив!", - "Task.controls.fixed.tooltip": "Я виправив!", - "Task.controls.next.label": "Наступне Завдання", - "Task.controls.next.tooltip": "Наступне Завдання", - "Task.controls.next.loadBy.label": "Завантажити наступне:", - "Task.controls.nextNearby.label": "Оберіть наступне завдання поруч", - "Task.controls.revised.label": "Перевірку завершено", - "Task.controls.revised.tooltip": "Перевірку завершено", - "Task.controls.revised.resubmit": "Надіслати на повторну перевірку", - "Task.controls.revised.dispute": "Незгода з перевіркою", - "Task.controls.skip.label": "Пропустити", - "Task.controls.skip.tooltip": "Пропустити Завдання", - "Task.controls.tooHard.label": "Дуже важко/Не бачу", - "Task.controls.tooHard.tooltip": "Дуже важко/Не бачу", - "KeyboardShortcuts.control.label": "Гарячі клавіші", - "ActiveTask.keyboardShortcuts.label": "Показати гарячі клавіші", - "ActiveTask.controls.info.tooltip": "Деталі завдання", - "ActiveTask.controls.comments.tooltip": "Показати коментарі", - "ActiveTask.subheading.comments": "Коментарі", - "ActiveTask.heading": "Інформація про виклик", - "ActiveTask.subheading.instructions": "Інструкції", - "ActiveTask.subheading.location": "Місце", - "ActiveTask.subheading.progress": "Перебіг виклику", - "ActiveTask.subheading.social": "Поширити", - "Task.pane.controls.inspect.label": "Огляд", - "Task.pane.indicators.locked.label": "Завдання заблоковане", - "Task.pane.indicators.readOnly.label": "Перегляд в режимі \"тільки читання\"", - "Task.pane.controls.unlock.label": "Розблокувати", - "Task.pane.controls.tryLock.label": "Спробуйте заблокувати", - "Task.pane.controls.preview.label": "Переглянути завдання", - "Task.pane.controls.browseChallenge.label": "Переглянути Виклик", - "Task.pane.controls.retryLock.label": "Спробувати заблокувати знов", - "Task.pane.lockFailedDialog.title": "Неможливо заблокувати завдання", - "Task.pane.lockFailedDialog.prompt": "Блокування завдань не передбачане. Тільки перегляд в режимі \"тільки читання\"", - "Task.pane.controls.saveChanges.label": "Зберегти зміни", - "MobileTask.subheading.instructions": "Інструкції", - "Task.management.heading": "Параметри керування", - "Task.management.controls.inspect.label": "Огляд", - "Task.management.controls.modify.label": "Змінити", - "Widgets.TaskNearbyMap.currentTaskTooltip": "Поточне завдання", - "Widgets.TaskNearbyMap.noTasksAvailable.label": "Завдання поруч не доступні.", - "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Пріоритет:", - "Widgets.TaskNearbyMap.tooltip.statusLabel": "Стан:", - "Challenge.controls.taskLoadBy.label": "Завантажити завдання в:", - "Task.controls.track.label": "Відстежувати це завдання", - "Task.controls.untrack.label": "Припинити відстежування завдання", - "TaskPropertyQueryBuilder.controls.search": "Пошук", - "TaskPropertyQueryBuilder.controls.clear": "Очистити", + "TaskPriorityFilter.label": "За пріоритетом", + "TaskPropertyFilter.label": "За властивостями", + "TaskPropertyQueryBuilder.commaSeparateValues.label": "Значення розділені комами", "TaskPropertyQueryBuilder.controls.addValue": "Додати значення", - "TaskPropertyQueryBuilder.options.none.label": "Нічого", - "TaskPropertyQueryBuilder.error.missingRightRule": "При використанні складеного правила мають бути зазначені обидві частини.", - "TaskPropertyQueryBuilder.error.missingLeftRule": "При використанні складеного правила мають бути зазначені обидві частини.", + "TaskPropertyQueryBuilder.controls.clear": "Очистити", + "TaskPropertyQueryBuilder.controls.search": "Пошук", "TaskPropertyQueryBuilder.error.missingKey": "Оберіть параметр.", - "TaskPropertyQueryBuilder.error.missingValue": "Потрібно задати значення.", + "TaskPropertyQueryBuilder.error.missingLeftRule": "При використанні складеного правила мають бути зазначені обидві частини.", "TaskPropertyQueryBuilder.error.missingPropertyType": "Оберіть тип параметру.", + "TaskPropertyQueryBuilder.error.missingRightRule": "При використанні складеного правила мають бути зазначені обидві частини.", + "TaskPropertyQueryBuilder.error.missingStyleName": "Потрібна зазначити назву стилю.", + "TaskPropertyQueryBuilder.error.missingStyleValue": "Потрібно зазначити значення стилю.", + "TaskPropertyQueryBuilder.error.missingValue": "Потрібно задати значення.", "TaskPropertyQueryBuilder.error.notNumericValue": "Значення параметру не є числом.", - "TaskPropertyQueryBuilder.propertyType.stringType": "текст", - "TaskPropertyQueryBuilder.propertyType.numberType": "число", + "TaskPropertyQueryBuilder.options.none.label": "Нічого", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "складене правило", - "TaskPropertyQueryBuilder.error.missingStyleValue": "Потрібно зазначити значення стилю.", - "TaskPropertyQueryBuilder.error.missingStyleName": "Потрібна зазначити назву стилю.", - "TaskPropertyQueryBuilder.commaSeparateValues.label": "Значення розділені комами", - "ActiveTask.subheading.status": "Наявний стан", - "ActiveTask.controls.status.tooltip": "Наявний стан", - "ActiveTask.controls.viewChangset.label": "Показати набір змін", - "Task.taskTags.label": "Теґи MapRoulette:", - "Task.taskTags.add.label": "Додайте теґи MapRoulette", - "Task.taskTags.update.label": "Оновити теґи MapRoulette", - "Task.taskTags.save.label": "Зберегти", - "Task.taskTags.cancel.label": "Скасувати", - "Task.taskTags.modify.label": "Змінити теґи MapRoulette", - "Task.taskTags.addTags.placeholder": "Додайте теґи MapRoulette", + "TaskPropertyQueryBuilder.propertyType.numberType": "число", + "TaskPropertyQueryBuilder.propertyType.stringType": "текст", + "TaskReviewStatusFilter.label": "За станом перевірки", + "TaskStatusFilter.label": "За станом", + "TasksTable.invert.abel": "інвертувати", + "TasksTable.inverted.label": "інвертовано", + "Taxonomy.indicators.cooperative.label": "Кооперативний", + "Taxonomy.indicators.favorite.label": "Закладки", + "Taxonomy.indicators.featured.label": "Рекомендований", "Taxonomy.indicators.newest.label": "Найновішій", "Taxonomy.indicators.popular.label": "Популярний", - "Taxonomy.indicators.featured.label": "Рекомендований", - "Taxonomy.indicators.favorite.label": "Закладки", "Taxonomy.indicators.tagFix.label": "Виправлення теґів", - "Taxonomy.indicators.cooperative.label": "Кооперативний", - "AddTeamMember.controls.chooseRole.label": "Обрати роль", - "AddTeamMember.controls.chooseOSMUser.placeholder": "Логін OpenStreetMap", - "Team.name.label": "Назва", - "Team.name.description": "Унікальна назва команди", - "Team.description.label": "Опис", - "Team.description.description": "Скорочений опис команди", - "Team.controls.save.label": "Зберегти", + "Team.Status.invited": "Запрошено", + "Team.Status.member": "Член", + "Team.activeMembers.header": "Поточні члени", + "Team.addMembers.header": "Запросити нових членів", + "Team.controls.acceptInvite.label": "Долучитись до команди", "Team.controls.cancel.label": "Скасувати", + "Team.controls.declineInvite.label": "Відхилити запрошення", + "Team.controls.delete.label": "Вилучити команду", + "Team.controls.edit.label": "Змінити команду", + "Team.controls.leave.label": "Залишити команду", + "Team.controls.save.label": "Зберегти", + "Team.controls.view.label": "Показати команду", + "Team.description.description": "Скорочений опис команди", + "Team.description.label": "Опис", + "Team.invitedMembers.header": "Запрошення, що очікують на розгляд", "Team.member.controls.acceptInvite.label": "Долучитись до команди", "Team.member.controls.declineInvite.label": "Відхилити запрошення", "Team.member.controls.delete.label": "Вилучити користувача", "Team.member.controls.leave.label": "Залишити команду", "Team.members.indicator.you.label": "(ви)", + "Team.name.description": "Унікальна назва команди", + "Team.name.label": "Назва", "Team.noTeams": "Ви не є членом жодної команди", - "Team.controls.view.label": "Показати команду", - "Team.controls.edit.label": "Змінити команду", - "Team.controls.delete.label": "Вилучити команду", - "Team.controls.acceptInvite.label": "Долучитись до команди", - "Team.controls.declineInvite.label": "Відхилити запрошення", - "Team.controls.leave.label": "Залишити команду", - "Team.activeMembers.header": "Поточні члени", - "Team.invitedMembers.header": "Запрошення, що очікують на розгляд", - "Team.addMembers.header": "Запросити нових членів", - "UserProfile.topChallenges.header": "Ваші основні виклики", "TopUserChallenges.widget.label": "Ваші основні виклики", "TopUserChallenges.widget.noChallenges": "Викликів немає", "UserEditorSelector.currentEditor.label": "Поточний редактор:", - "ActiveTask.indicators.virtualChallenge.tooltip": "Віртуальний Виклик", - "WidgetPicker.menuLabel": "Додати Віджет", - "Widgets.ChallengeShareWidget.label": "Соціальні мережі", - "Widgets.ChallengeShareWidget.title": "Поширити", - "Widgets.CompletionProgressWidget.label": "Перебіг виконання", - "Widgets.CompletionProgressWidget.title": "Перебіг виконання", - "Widgets.CompletionProgressWidget.noTasks": "Виклик не містить завдань", + "UserProfile.favoriteChallenges.header": "Ваші закріплені виклики", + "UserProfile.savedTasks.header": "Відстежувані Завдання", + "UserProfile.topChallenges.header": "Ваші основні виклики", + "VirtualChallenge.controls.create.label": "Працювати з {taskCount, number} {taskCount, plural, one {обраним завданням} few {обраними завданнями} other {обраними завданнями}}", + "VirtualChallenge.controls.tooMany.label": "Треба наблизитись, щоб працювати з обраними завданнями", + "VirtualChallenge.controls.tooMany.tooltip": "Не більше {maxTasks, number} {maxTasks, plural, one {завдання} few {завдання} other {завдань}} може бути додано до \"віртуального\" виклику", + "VirtualChallenge.fields.name.label": "Назва вашого \"віртуального\" виклику", + "WidgetPicker.menuLabel": "Додати Віджет", + "WidgetWorkspace.controls.addConfiguration.label": "Додати нове оформлення", + "WidgetWorkspace.controls.deleteConfiguration.label": "Вилучити оформлення", + "WidgetWorkspace.controls.editConfiguration.label": "Змінити оформлення", + "WidgetWorkspace.controls.exportConfiguration.label": "Експорт оформлення", + "WidgetWorkspace.controls.importConfiguration.label": "Імпорт оформлення", + "WidgetWorkspace.controls.resetConfiguration.label": "Скинути оформлення на Типове", + "WidgetWorkspace.controls.saveConfiguration.label": "Готово", + "WidgetWorkspace.exportModal.controls.cancel.label": "Скасувати", + "WidgetWorkspace.exportModal.controls.download.label": "Завантажити", + "WidgetWorkspace.exportModal.fields.name.label": "Назва оформлення", + "WidgetWorkspace.exportModal.header": "Експорт вашого оформлення", + "WidgetWorkspace.fields.configurationName.label": "Назва оформлення:", + "WidgetWorkspace.importModal.controls.upload.label": "Натисніть для надсилання файлу", + "WidgetWorkspace.importModal.header": "Імпорт оформлення", + "WidgetWorkspace.labels.currentlyUsing": "Поточне оформлення:", + "WidgetWorkspace.labels.switchTo": "Змінити на:", + "Widgets.ActivityListingWidget.controls.toggleExactDates.label": "Показати точні дати", + "Widgets.ActivityListingWidget.title": "Перелік дій", + "Widgets.ActivityMapWidget.title": "Мапа дій", + "Widgets.BurndownChartWidget.label": "Графік виконання", + "Widgets.BurndownChartWidget.title": "Залишилось завдань: {taskCount, number}", + "Widgets.CalendarHeatmapWidget.label": "Щоденний перебіг", + "Widgets.CalendarHeatmapWidget.title": "Щоденний перебіг: Виконання завдань", + "Widgets.ChallengeListWidget.label": "Виклики", + "Widgets.ChallengeListWidget.search.placeholder": "Пошук", + "Widgets.ChallengeListWidget.title": "Виклики", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Створено:", + "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Завдання створені {refreshDate}, з отриманих {sourceDate} даних.", + "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Видимий:", + "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Ключові слова:", + "Widgets.ChallengeOverviewWidget.fields.lastModifiedDate.label": "Змінено:", + "Widgets.ChallengeOverviewWidget.fields.status.label": "Стан:", + "Widgets.ChallengeOverviewWidget.fields.tasksFromDate.label": "Завдання створені:", + "Widgets.ChallengeOverviewWidget.fields.tasksRefreshDate.label": "Завдань оновлено:", + "Widgets.ChallengeOverviewWidget.label": "Огляд Виклику", + "Widgets.ChallengeOverviewWidget.projectDisabledWarning": "проєкт невидимий", + "Widgets.ChallengeOverviewWidget.title": "Огляд", + "Widgets.ChallengeShareWidget.label": "Соціальні мережі", + "Widgets.ChallengeShareWidget.title": "Поширити", + "Widgets.ChallengeTasksWidget.label": "Завдання", + "Widgets.ChallengeTasksWidget.title": "Завдання", + "Widgets.CommentsWidget.controls.export.label": "Експорт", + "Widgets.CommentsWidget.label": "Коментарі", + "Widgets.CommentsWidget.title": "Коментарі", + "Widgets.CompletionProgressWidget.label": "Перебіг виконання", + "Widgets.CompletionProgressWidget.noTasks": "Виклик не містить завдань", + "Widgets.CompletionProgressWidget.title": "Перебіг виконання", "Widgets.FeatureStyleLegendWidget.label": "Опис стилів", "Widgets.FeatureStyleLegendWidget.title": "Опис стилів", + "Widgets.FollowersWidget.controls.activity.label": "Дії", + "Widgets.FollowersWidget.controls.followers.label": "Прихильники", + "Widgets.FollowersWidget.controls.toggleExactDates.label": "Показати точні дати", + "Widgets.FollowingWidget.controls.following.label": "Стежать", + "Widgets.FollowingWidget.header.activity": "Дії за якими ви стежите", + "Widgets.FollowingWidget.header.followers": "Ваші прихильники", + "Widgets.FollowingWidget.header.following": "Ви стежите за", + "Widgets.FollowingWidget.label": "Стежити", "Widgets.KeyboardShortcutsWidget.label": "Гарячі клавіші", "Widgets.KeyboardShortcutsWidget.title": "Гарячі клавіші", + "Widgets.LeaderboardWidget.label": "Дошка досягнень", + "Widgets.LeaderboardWidget.title": "Дошка досягнень", + "Widgets.ProjectAboutWidget.content": "Проєкти служать засобом гуртування пов’язаних між собою викликів. Усі виклики повинні бути частиною проєкту.\n\nВи можете створити стільки проєктів, скільки вам потрібно для того щоб організувати ваші Виклики та запросити інших користувачів MapRoulette допомогти розв’язати їх.\n\nВидимість проєктів має бути увімкнено перед тим як будь-які виклики з їх складу з’являться в результатах пошуку доступних для широкого загалу.", + "Widgets.ProjectAboutWidget.label": "Про Проєкти", + "Widgets.ProjectAboutWidget.title": "Про Проєкти", + "Widgets.ProjectListWidget.label": "Перелік проєктів", + "Widgets.ProjectListWidget.search.placeholder": "Пошук", + "Widgets.ProjectListWidget.title": "Проєкти", + "Widgets.ProjectManagersWidget.label": "Керівники проєкту", + "Widgets.ProjectOverviewWidget.label": "Огляд", + "Widgets.ProjectOverviewWidget.title": "Огляд", + "Widgets.RecentActivityWidget.label": "Нещодавні дії", + "Widgets.RecentActivityWidget.title": "Нещодавні дії", "Widgets.ReviewMap.label": "Мапа Перевірки", "Widgets.ReviewStatusMetricsWidget.label": "Метрики стану Перевірки", "Widgets.ReviewStatusMetricsWidget.title": "Стан Перевірки", "Widgets.ReviewTableWidget.label": "Таблиця Перевірки", "Widgets.ReviewTaskMetricsWidget.label": "Метрики перевірки завдань", "Widgets.ReviewTaskMetricsWidget.title": "Стан завдання", - "Widgets.SnapshotProgressWidget.label": "Нещодавній прогрес", - "Widgets.SnapshotProgressWidget.title": "Нещодавній прогрес", "Widgets.SnapshotProgressWidget.current.label": "Зараз", "Widgets.SnapshotProgressWidget.done.label": "Готово", "Widgets.SnapshotProgressWidget.exportCSV.label": "Експорт в CSV", - "Widgets.SnapshotProgressWidget.record.label": "Записати новий Snapshot", + "Widgets.SnapshotProgressWidget.label": "Нещодавній прогрес", "Widgets.SnapshotProgressWidget.manageSnapshots.label": "Керування Snapshot", + "Widgets.SnapshotProgressWidget.record.label": "Записати новий Snapshot", + "Widgets.SnapshotProgressWidget.title": "Нещодавній прогрес", + "Widgets.StatusRadarWidget.label": "Радар Станів", + "Widgets.StatusRadarWidget.title": "Розподіл станів завершених завдань", + "Widgets.TagDiffWidget.controls.viewAllTags.label": "Показати всі Теґи", "Widgets.TagDiffWidget.label": "Кооперація", "Widgets.TagDiffWidget.title": "Пропоновані зміни теґів OSM", - "Widgets.TagDiffWidget.controls.viewAllTags.label": "Показати всі Теґи", - "Widgets.TaskBundleWidget.label": "Робота з багатьма завданнями", - "Widgets.TaskBundleWidget.reviewTaskTitle": "Працювати над кількома завданнями одночасно", - "Widgets.TaskBundleWidget.controls.clearFilters.label": "Скинути фільтри", - "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Внутрішній Id:", - "Widgets.TaskBundleWidget.popup.fields.name.label": "Id елемента:", - "Widgets.TaskBundleWidget.popup.fields.status.label": "Стан:", - "Widgets.TaskBundleWidget.popup.fields.priority.label": "Пріоритет:", - "Widgets.TaskBundleWidget.popup.controls.selected.label": "Виділено", "Widgets.TaskBundleWidget.controls.bundleTasks.label": "Виконати разом", + "Widgets.TaskBundleWidget.controls.clearFilters.label": "Скинути фільтри", "Widgets.TaskBundleWidget.controls.unbundleTasks.label": "Розгрупувати", "Widgets.TaskBundleWidget.currentTask": "(поточне завдання)", - "Widgets.TaskBundleWidget.simultaneousTasks": "Опрацювання {taskCount, number} {taskCount, plural, one {обраного завдання} few {обраних завдань} other {обраних завдань}} разом", "Widgets.TaskBundleWidget.disallowBundling": "Ви працюєте в режими одиничного завдання. На цьому етапі неможливо створити групове завдання.", + "Widgets.TaskBundleWidget.label": "Робота з багатьма завданнями", "Widgets.TaskBundleWidget.noCooperativeWork": "Кооперативні завдання не можуть бути об’єднані разом", "Widgets.TaskBundleWidget.noVirtualChallenges": "Завдання з \"віртуальних\" викликів не можуть бути об’єднанні разом", + "Widgets.TaskBundleWidget.popup.controls.selected.label": "Виділено", + "Widgets.TaskBundleWidget.popup.fields.name.label": "Id елемента:", + "Widgets.TaskBundleWidget.popup.fields.priority.label": "Пріоритет:", + "Widgets.TaskBundleWidget.popup.fields.status.label": "Стан:", + "Widgets.TaskBundleWidget.popup.fields.taskId.label": "Внутрішній Id:", "Widgets.TaskBundleWidget.readOnly": "Перегляд завдань в режимі читання (без змін)", - "Widgets.TaskCompletionWidget.label": "Виконання", - "Widgets.TaskCompletionWidget.title": "Виконання", - "Widgets.TaskCompletionWidget.inspectTitle": "Огляд", + "Widgets.TaskBundleWidget.reviewTaskTitle": "Працювати над кількома завданнями одночасно", + "Widgets.TaskBundleWidget.simultaneousTasks": "Опрацювання {taskCount, number} {taskCount, plural, one {обраного завдання} few {обраних завдань} other {обраних завдань}} разом", + "Widgets.TaskCompletionWidget.cancelSelection": "Скасувати виділення", + "Widgets.TaskCompletionWidget.completeTogether": "Виконати разом", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Запропоновані зміни", + "Widgets.TaskCompletionWidget.inspectTitle": "Огляд", + "Widgets.TaskCompletionWidget.label": "Виконання", "Widgets.TaskCompletionWidget.simultaneousTasks": "Опрацювання {taskCount, number} {taskCount, plural, one {обраного завдання} few {обраних завдань} other {обраних завдань}} разом", - "Widgets.TaskCompletionWidget.completeTogether": "Виконати разом", - "Widgets.TaskCompletionWidget.cancelSelection": "Скасувати виділення", - "Widgets.TaskHistoryWidget.label": "Історія завдання", - "Widgets.TaskHistoryWidget.title": "Історія", - "Widgets.TaskHistoryWidget.control.startDiff": "Різниця", + "Widgets.TaskCompletionWidget.title": "Виконання", "Widgets.TaskHistoryWidget.control.cancelDiff": "Скасувати", + "Widgets.TaskHistoryWidget.control.startDiff": "Різниця", "Widgets.TaskHistoryWidget.control.viewOSMCha": "Відкрити в OSMCha", + "Widgets.TaskHistoryWidget.label": "Історія завдання", + "Widgets.TaskHistoryWidget.title": "Історія", "Widgets.TaskInstructionsWidget.label": "Інструкції", "Widgets.TaskInstructionsWidget.title": "Інструкції", "Widgets.TaskLocationWidget.label": "Місце", @@ -951,403 +1383,23 @@ "Widgets.TaskMapWidget.title": "Завдання", "Widgets.TaskMoreOptionsWidget.label": "Більше…", "Widgets.TaskMoreOptionsWidget.title": "Більше…", + "Widgets.TaskNearbyMap.currentTaskTooltip": "Поточне завдання", + "Widgets.TaskNearbyMap.noTasksAvailable.label": "Завдання поруч не доступні.", + "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Пріоритет:", + "Widgets.TaskNearbyMap.tooltip.statusLabel": "Стан:", "Widgets.TaskPropertiesWidget.label": "Властивості завдання", - "Widgets.TaskPropertiesWidget.title": "Властивості завдання", "Widgets.TaskPropertiesWidget.task.label": "Завдання {taskId}", + "Widgets.TaskPropertiesWidget.title": "Властивості завдання", "Widgets.TaskReviewWidget.label": "Перевірка завдань", "Widgets.TaskReviewWidget.reviewTaskTitle": "Перевірка", - "Widgets.review.simultaneousTasks": "Перевірка {taskCount, number} {taskCount, plural, one {обраного завдання} few {обраних завдань} other {обраних завдань}} разом", "Widgets.TaskStatusWidget.label": "Стан завдання", "Widgets.TaskStatusWidget.title": "Стан завдання", + "Widgets.TeamsWidget.controls.createTeam.label": "Започаткувати команду", + "Widgets.TeamsWidget.controls.myTeams.label": "Мої команди", + "Widgets.TeamsWidget.createTeamTitle": "Створити нову команду", + "Widgets.TeamsWidget.editTeamTitle": "Змінити команду", "Widgets.TeamsWidget.label": "Команди", "Widgets.TeamsWidget.myTeamsTitle": "Мої команди", - "Widgets.TeamsWidget.editTeamTitle": "Змінити команду", - "Widgets.TeamsWidget.createTeamTitle": "Створити нову команду", "Widgets.TeamsWidget.viewTeamTitle": "Про команду", - "Widgets.TeamsWidget.controls.myTeams.label": "Мої команди", - "Widgets.TeamsWidget.controls.createTeam.label": "Започаткувати команду", - "WidgetWorkspace.controls.editConfiguration.label": "Змінити оформлення", - "WidgetWorkspace.controls.saveConfiguration.label": "Готово", - "WidgetWorkspace.fields.configurationName.label": "Назва оформлення:", - "WidgetWorkspace.controls.addConfiguration.label": "Додати нове оформлення", - "WidgetWorkspace.controls.deleteConfiguration.label": "Вилучити оформлення", - "WidgetWorkspace.controls.resetConfiguration.label": "Скинути оформлення на Типове", - "WidgetWorkspace.controls.exportConfiguration.label": "Експорт оформлення", - "WidgetWorkspace.controls.importConfiguration.label": "Імпорт оформлення", - "WidgetWorkspace.labels.currentlyUsing": "Поточне оформлення:", - "WidgetWorkspace.labels.switchTo": "Змінити на:", - "WidgetWorkspace.exportModal.header": "Експорт вашого оформлення", - "WidgetWorkspace.exportModal.fields.name.label": "Назва оформлення", - "WidgetWorkspace.exportModal.controls.cancel.label": "Скасувати", - "WidgetWorkspace.exportModal.controls.download.label": "Завантажити", - "WidgetWorkspace.importModal.header": "Імпорт оформлення", - "WidgetWorkspace.importModal.controls.upload.label": "Натисніть для надсилання файлу", - "Admin.EditChallenge.overpass.errors.noTurboShortcuts": "Скорочення Overpass Turbo не підтримуються. Якщо ви бажаєте використовувати їх, відвідайте Overpass Turbo та протестуйте ваш запит, потім натисніть Експорт -> Запит -> Самостійний –> Копіювати та вставте його тут. ", - "Dashboard.header": "Інформаційна панель", - "Dashboard.header.welcomeBack": "З поверненням, {username}!", - "Dashboard.header.completionPrompt": "Ви виконали", - "Dashboard.header.completedTasks": "{completedTasks, number} {completedTasks, plural, =0 {жодного завдання} one {завдання} few {завдання} other {завдань}}", - "Dashboard.header.pointsPrompt": ", за що отримали", - "Dashboard.header.userScore": "{points, number} {points, plural, =0 {балів} one {бал} few {бали} other {балів}}", - "Dashboard.header.rankPrompt": ", та посіли", - "Dashboard.header.globalRank": " #{rank, number} місце", - "Dashboard.header.globally": "в загальному рейтингу.", - "Dashboard.header.encouragement": "Так тримати!", - "Dashboard.header.getStarted": "Здобувайте бали виконуючи завдання!", - "Dashboard.header.jumpBackIn": "Застрибуйте знов!", - "Dashboard.header.resume": "Продовжуйте ваш останній виклик", - "Dashboard.header.controls.latestChallenge.label": "Перейти до Виклику", - "Dashboard.header.find": "Або знайдіть", - "Dashboard.header.somethingNew": "щось нове", - "Dashboard.header.controls.findChallenge.label": "Відкрийте для себе нові Виклики", - "Home.Featured.browse": "Переглянути", - "Home.Featured.header": "Рекомендовані", - "Inbox.header": "Сповіщення", - "Inbox.controls.refreshNotifications.label": "Оновити", - "Inbox.controls.groupByTask.label": "Гуртувати за завданнями", - "Inbox.controls.manageSubscriptions.label": "Керувати підписками", - "Inbox.controls.markSelectedRead.label": "Позначити прочитаним", - "Inbox.controls.deleteSelected.label": "Вилучити", - "Inbox.tableHeaders.notificationType": "Тип", - "Inbox.tableHeaders.created": "Відправлено", - "Inbox.tableHeaders.fromUsername": "Від", - "Inbox.tableHeaders.challengeName": "Виклик", - "Inbox.tableHeaders.isRead": "Читати", - "Inbox.tableHeaders.taskId": "Завдання", - "Inbox.tableHeaders.controls": "Дії", - "Inbox.actions.openNotification.label": "Відкрити", - "Inbox.noNotifications": "Немає сповіщень", - "Inbox.mentionNotification.lead": "Вас згадували в коментарях:", - "Inbox.reviewApprovedNotification.lead": "Гарні новини! Ваше завдання було перевірене та ухвалене.", - "Inbox.reviewApprovedWithFixesNotification.lead": "Ваше завдання було ухвалене (із деякими виправленням, зробленими контролером).", - "Inbox.reviewRejectedNotification.lead": "Під час перевірки вашого завдання, контролер визначив, що його треба доопрацювати.", - "Inbox.reviewAgainNotification.lead": "Мапер переглянув свою роботу та запросив додаткової перевірки.", - "Inbox.challengeCompleteNotification.lead": "Виклик, яким ви керуєте було завершено.", - "Inbox.notification.controls.deleteNotification.label": "Вилучити", - "Inbox.notification.controls.viewTask.label": "Переглянути Завдання", - "Inbox.notification.controls.reviewTask.label": "Перевірити Завдання", - "Inbox.notification.controls.manageChallenge.label": "Керувати Викликом", - "Leaderboard.title": "Дошка досягнень", - "Leaderboard.global": "Загальна", - "Leaderboard.scoringMethod.label": "Рахування балів", - "Leaderboard.scoringMethod.explanation": "##### Бали нараховуються за виконані завдання наступним чином:\n\n| Стан | Бали |\n| :------------ | -----: |\n| Виправлено | 5 |\n| Не проблема | 3 |\n| Вже виправлено | 3 |\n| Дуже важко | 1 |\n| Пропущено | 0 |", - "Leaderboard.user.points": "Бали", - "Leaderboard.user.topChallenges": "Основні виклики", - "Leaderboard.users.none": "Немає учасників за обраний період", - "Leaderboard.controls.loadMore.label": "Показати більше", - "Leaderboard.updatedFrequently": "Оновлюється кожні 15 хвилин", - "Leaderboard.updatedDaily": "Оновлюється кожні 24 години", - "Metrics.userOptedOut": "Цей користувач вирішив не ділитись своїми досягненнями.", - "Metrics.userSince": "Приєднався:", - "Metrics.totalCompletedTasksTitle": "Всього виконано завдань", - "Metrics.completedTasksTitle": "Виконані Завдання", - "Metrics.reviewedTasksTitle": "Стан перевірки", - "Metrics.leaderboardTitle": "Дошка досягнень", - "Metrics.leaderboard.globalRank.label": "Загальний рейтинг", - "Metrics.leaderboard.totalPoints.label": "Всього балів", - "Metrics.leaderboard.topChallenges.label": "Основні виклики", - "Metrics.reviewStats.approved.label": "Ухвалені під час перевірки завдання", - "Metrics.reviewStats.rejected.label": "Відхилені завдання", - "Metrics.reviewStats.assisted.label": "Ухвалені зі змінами під час перевірки завдання", - "Metrics.reviewStats.disputed.label": "Перевірені завдання із суперечками", - "Metrics.reviewStats.awaiting.label": "Завдання, що очікують на перевірку", - "Metrics.reviewStats.averageReviewTime.label": "Середній час перевірки:", - "Metrics.reviewedTasksTitle.asReviewer": "Завдання перевірені {username}", - "Metrics.reviewedTasksTitle.asReviewer.you": "Завдання перевірені вами", - "Metrics.reviewStats.asReviewer.approved.label": "Ухвалені перевірені завдання", - "Metrics.reviewStats.asReviewer.rejected.label": "Відхилені перевірені завдання", - "Metrics.reviewStats.asReviewer.assisted.label": "Перевірені завдання ухвалені зі змінами", - "Metrics.reviewStats.asReviewer.disputed.label": "Завдання із суперечками", - "Metrics.reviewStats.asReviewer.awaiting.label": "Завдання, які потребують завершення", - "Profile.page.title": "Налаштування Користувача", - "Profile.settings.header": "Загальні", - "Profile.noUser": "Користувача не знайдено або у вас немає повноважень для перегляду.", - "Profile.userSince": "Приєднався:", - "Profile.form.defaultEditor.label": "Типовий редактор", - "Profile.form.defaultEditor.description": "Оберіть типовий редактор, який ви бажаєте використовувати для роботи над завданнями. Встановивши цей параметр ви зможете оминути вікно його вибору після натискання на кнопку Редагувати в завданні.", - "Profile.form.defaultBasemap.label": "Типова фонова мапа", - "Profile.form.defaultBasemap.description": "Оберіть типову фонову мапу для показу. Це значення може не братись до уваги, якщо у виклику встановлене інший типовий фон.", - "Profile.form.customBasemap.label": "Власний фон", - "Profile.form.customBasemap.description": "Додайте посилання на власний фоновий шар тут, напр. `https://'{s}'.tile.openstreetmap.org/'{z}'/'{x}'/'{y}'.png`", - "Profile.form.locale.label": "Мова", - "Profile.form.locale.description": "Мова інтерфейсу MapRoulette.", - "Profile.form.leaderboardOptOut.label": "Не показувати на Дошці досягнень", - "Profile.form.leaderboardOptOut.description": "Якщо Так, ваші досягнення не будуть показуватись на загальній Дошці досягнень.", - "Profile.apiKey.header": "Ключ API", - "Profile.apiKey.controls.copy.label": "Копіювати", - "Profile.apiKey.controls.reset.label": "Оновити", - "Profile.form.needsReview.label": "Запитувати перевірку для всієї роботи", - "Profile.form.needsReview.description": "Автоматично запитувати перевірку для кожного виконаного завдання", - "Profile.form.isReviewer.label": "Контролер", - "Profile.form.isReviewer.description": "Брати участь у перевірці завдань, що до яких учасники запитали перевірки", - "Profile.form.email.label": "Адреса електронної пошти", - "Profile.form.email.description": "У разі вибору надсилань Сповіщень на електрону пошту, вони надходитимуть на цю адресу.\n\nОберіть які сповіщення від MapRoulette ви бажаєте отримувати, разом із тим, чи хочете ви отримувати листи зі сповіщеннями (негайно або у вигляді щоденного дайджесту)", - "Profile.form.notification.label": "Сповіщення", - "Profile.form.notificationSubscriptions.label": "Підписка на сповіщення", - "Profile.form.notificationSubscriptions.description": "Оберіть які сповіщення від MapRoulette ви бажаєте отримувати, разом із тим, чи хочете ви отримувати листи зі сповіщеннями (негайно або у вигляді щоденного дайджесту)", - "Profile.form.yes.label": "Так", - "Profile.form.no.label": "Ні", - "Profile.form.mandatory.label": "Обов’язково", - "Review.Dashboard.tasksToBeReviewed": "Завдання для перевірки", - "Review.Dashboard.tasksReviewedByMe": "Завдання перевірені мною", - "Review.Dashboard.myReviewTasks": "Мої перевірені завдання", - "Review.Dashboard.allReviewedTasks": "Всі завдання для перевірки", - "Review.Dashboard.volunteerAsReviewer.label": "Контролер", - "Review.Dashboard.goBack.label": "Переналаштувати Перевірку", - "ReviewStatus.metrics.title": "Стан перевірки", - "ReviewStatus.metrics.awaitingReview": "Завдання, що очікують на перевірку", - "ReviewStatus.metrics.approvedReview": "Ухвалені перевірені завдання", - "ReviewStatus.metrics.rejectedReview": "Відхилені перевірені завдання", - "ReviewStatus.metrics.assistedReview": "Ухвалені зі змінами перевірені завдання", - "ReviewStatus.metrics.disputedReview": "Перевірені оскаржені завдання", - "ReviewStatus.metrics.fixed": "ВИПРАВЛЕНО", - "ReviewStatus.metrics.falsePositive": "НЕ ПРОБЛЕМА", - "ReviewStatus.metrics.alreadyFixed": "ВЖЕ ВИПРАВЛЕНО", - "ReviewStatus.metrics.tooHard": "ДУЖЕ ВАЖКО", - "ReviewStatus.metrics.priority.toggle": "Дивитись за пріоритетом завдань", - "ReviewStatus.metrics.priority.label": "{priority} пріоритет завдання", - "ReviewStatus.metrics.byTaskStatus.toggle": "Дивитись за станом завдань", - "ReviewStatus.metrics.taskStatus.label": "{status} завдання", - "ReviewStatus.metrics.averageTime.label": "Ср. час перевірки:", - "Review.TaskAnalysisTable.noTasks": "Не знайдено жодного завдання", - "Review.TaskAnalysisTable.refresh": "Оновити", - "Review.TaskAnalysisTable.startReviewing": "Перевірити ці Завдання", - "Review.TaskAnalysisTable.onlySavedChallenges": "Обмежити закріпленими викликами", - "Review.TaskAnalysisTable.excludeOtherReviewers": "Не включати перевірки призначені для інших", - "Review.TaskAnalysisTable.noTasksReviewedByMe": "Ви не перевірили поки що жодного завдання.", - "Review.TaskAnalysisTable.noTasksReviewed": "Жодне з ваших виконанних завдань не було перевірене.", - "Review.TaskAnalysisTable.tasksToBeReviewed": "Завдання для перевірки", - "Review.TaskAnalysisTable.tasksReviewedByMe": "Завдання перевірені мною", - "Review.TaskAnalysisTable.myReviewTasks": "Мої виконані завдання після перевірки", - "Review.TaskAnalysisTable.allReviewedTasks": "Всі завдання для перевірки", - "Review.TaskAnalysisTable.totalTasks": "Всього: {countShown}", - "Review.TaskAnalysisTable.configureColumns": "Налаштування стовпців", - "Review.TaskAnalysisTable.exportMapperCSVLabel": "Експорт маперів в CSV", - "Review.TaskAnalysisTable.columnHeaders.actions": "Дії", - "Review.TaskAnalysisTable.columnHeaders.comments": "Коментарі", - "Review.TaskAnalysisTable.mapperControls.label": "Дії", - "Review.TaskAnalysisTable.reviewerControls.label": "Дії", - "Review.TaskAnalysisTable.reviewCompleteControls.label": "Дії", - "Review.Task.fields.id.label": "Внутрішній Id", - "Review.fields.status.label": "Стан", - "Review.fields.priority.label": "Пріоритет", - "Review.fields.reviewStatus.label": "Стан перевірки", - "Review.fields.requestedBy.label": "Мапер", - "Review.fields.reviewedBy.label": "Контролер", - "Review.fields.mappedOn.label": "Замаплено", - "Review.fields.reviewedAt.label": "Перевірено", - "Review.TaskAnalysisTable.controls.reviewTask.label": "Перевірка", - "Review.TaskAnalysisTable.controls.reviewAgainTask.label": "Перевірити зміни", - "Review.TaskAnalysisTable.controls.resolveTask.label": "Розв’язати", - "Review.TaskAnalysisTable.controls.viewTask.label": "Переглянути", - "Review.TaskAnalysisTable.controls.fixTask.label": "Виправити", - "Review.fields.challenge.label": "Виклик", - "Review.fields.project.label": "Проєкт", - "Review.fields.tags.label": "Теґи", - "Review.multipleTasks.tooltip": "Кілька комплексних завдань", - "Review.tableFilter.viewAllTasks": "Переглянути всі Завдання", - "Review.tablefilter.chooseFilter": "Оберіть проєкт чи виклик", - "Review.tableFilter.reviewByProject": "Перевірка за проєктами", - "Review.tableFilter.reviewByChallenge": "Перевірка за викликами", - "Review.tableFilter.reviewByAllChallenges": "Всі виклики", - "Review.tableFilter.reviewByAllProjects": "Всі проєкти", - "Pages.SignIn.modal.title": "З поверненням!", - "Pages.SignIn.modal.prompt": "Будь ласка, увійдіть щоб продовжити", - "Activity.action.updated": "Оновлено", - "Activity.action.created": "Створено", - "Activity.action.deleted": "Вилучено", - "Activity.action.taskViewed": "Переглянуто", - "Activity.action.taskStatusSet": "Встановити стан у", - "Activity.action.tagAdded": "Теґ додано до", - "Activity.action.tagRemoved": "Теґ вилучено з", - "Activity.action.questionAnswered": "Відповідь на запит", - "Activity.item.project": "Проєкт", - "Activity.item.challenge": "Виклик", - "Activity.item.task": "Завдання", - "Activity.item.tag": "Теґ", - "Activity.item.survey": "Дослідження", - "Activity.item.user": "Користувач", - "Activity.item.group": "Група", - "Activity.item.virtualChallenge": "Віртуальний Виклик", - "Activity.item.bundle": "Пакунок", - "Activity.item.grant": "Надати", - "Challenge.basemap.none": "Нічого", - "Admin.Challenge.basemap.none": "З налаштувань користувача", - "Challenge.basemap.openStreetMap": "OpenStreetMap", - "Challenge.basemap.openCycleMap": "OpenCycleMap", - "Challenge.basemap.bing": "Bing", - "Challenge.basemap.custom": "Власний фон", - "Challenge.difficulty.easy": "Легко", - "Challenge.difficulty.normal": "Звичайно", - "Challenge.difficulty.expert": "Експерт", - "Challenge.difficulty.any": "Будь-яка", - "Challenge.keywords.navigation": "Дороги / Тротуари / Велодоріжки", - "Challenge.keywords.water": "Вода", - "Challenge.keywords.pointsOfInterest": "Точки / Території Інтересу", - "Challenge.keywords.buildings": "Будинки", - "Challenge.keywords.landUse": "Землекористування / Адміністративні межі", - "Challenge.keywords.transit": "Маршрути / Перевезення", - "Challenge.keywords.other": "Інше", - "Challenge.keywords.any": "Будь-що", - "Challenge.location.nearMe": "Поруч з вами", - "Challenge.location.withinMapBounds": "В межах мапи", - "Challenge.location.intersectingMapBounds": "Показані на мапі", - "Challenge.location.any": "Будь-де", - "Challenge.status.none": "Не застосовується", - "Challenge.status.building": "Створюється", - "Challenge.status.failed": "Збій", - "Challenge.status.ready": "Готово", - "Challenge.status.partiallyLoaded": "Частково завантажений", - "Challenge.status.finished": "Завершений", - "Challenge.status.deletingTasks": "Вилучення Завдань", - "Challenge.type.challenge": "Виклик", - "Challenge.type.survey": "Дослідження", - "Challenge.cooperativeType.none": "Нічого", - "Challenge.cooperativeType.tags": "Виправлення теґів", - "Challenge.cooperativeType.changeFile": "Кооперативний", - "Editor.none.label": "Нічого", - "Editor.id.label": "Редагувати в iD (веб-редактор)", - "Editor.josm.label": "Редагувати в JOSM", - "Editor.josmLayer.label": "Редагувати в JOSM (новий шар)", - "Editor.josmFeatures.label": "Редагувати в JOSM тільки ці елементи", - "Editor.level0.label": "Редагувати в Level0", - "Editor.rapid.label": "Редагувати в RapiD", - "Errors.user.missingHomeLocation": "Ваше положення не визначене. Або дозвольте веб оглядачу визначати ваше положення, або встановіть його в налаштуваннях openstreetmap.org (можливо вам доведеться вийти та увійти знов у MapRoulette, щоб підхопити ці зміни в налаштуваннях OpenStreetMap).", - "Errors.user.unauthenticated": "Будь ласка, увійдіть щоб продовжити.", - "Errors.user.unauthorized": "На жаль, ви не маєте прав на виконання цієї дії.", - "Errors.user.updateFailure": "Неможливо оновити вашу інформацію користувача на сервері.", - "Errors.user.fetchFailure": "Неможливо отримати дані користувача з сервера.", - "Errors.user.notFound": "Користувач з таким іменем не знайдений.", - "Errors.leaderboard.fetchFailure": "Неможливо отримати досягнення.", - "Errors.task.none": "В цьому виклику більше не залишилось завдань.", - "Errors.task.saveFailure": "Неможливо зберегти ваші зміни {details}", - "Errors.task.updateFailure": "Неможливо зберегти ваші зміни.", - "Errors.task.deleteFailure": "Неможливо вилучити завдання.", - "Errors.task.fetchFailure": "Неможливо отримати завдання для роботи з ними.", - "Errors.task.doesNotExist": "Такого завдання не існує.", - "Errors.task.alreadyLocked": "Це завдання вже заблоковане кимось іншим.", - "Errors.task.lockRefreshFailure": "Неможливо продовжити блокування завдання. Ваше блокування закінчилось. Ми рекомендуємо оновити сторінку та спробувати заблокувати завдання наново.", - "Errors.task.bundleFailure": "Неможливо згуртувати завдання", - "Errors.osm.requestTooLarge": "Запит даних OpenStreetMap завеликий", - "Errors.osm.bandwidthExceeded": "Перевищено пропускну здатність OpenStreetMap", - "Errors.osm.elementMissing": "Елемент не знайдений на сервері OpenStreetMap", - "Errors.osm.fetchFailure": "Неможливо отримати дані з OpenStreetMap", - "Errors.mapillary.fetchFailure": "Неможливо отримати дані з Mapillary", - "Errors.openStreetCam.fetchFailure": "Неможливо отримати дані з OpenStreetCam", - "Errors.nominatim.fetchFailure": "Неможливо отримати дані від Nominatim", - "Errors.clusteredTask.fetchFailure": "Неможливо отримати кластери завдань", - "Errors.boundedTask.fetchFailure": "Неможливо отримати завдання, обмежені мапою", - "Errors.reviewTask.fetchFailure": "Неможливо отримати завдання, що вимагають перевірки", - "Errors.reviewTask.alreadyClaimed": "Це завдання вже перевіряє хтось інший.", - "Errors.reviewTask.notClaimedByYou": "Неможливо скасувати перевірку.", - "Errors.challenge.fetchFailure": "Неможливо отримати найновіші дані виклику з сервера.", - "Errors.challenge.searchFailure": "Неможливо знайти виклики на сервері.", - "Errors.challenge.deleteFailure": "Неможливо вилучити виклик.", - "Errors.challenge.saveFailure": "Неможливо зберегти ваші зміни {details}", - "Errors.challenge.rebuildFailure": "Неможливо перестворити завдання виклику", - "Errors.challenge.doesNotExist": "Цей виклик не існує.", - "Errors.virtualChallenge.fetchFailure": "Неможливо отримати найновіші дані віртуального виклику з сервера.", - "Errors.virtualChallenge.createFailure": "Неможливо створити віртуальний виклик {details}", - "Errors.virtualChallenge.expired": "Термін дії віртуального виклику минув.", - "Errors.project.saveFailure": "Неможливо зберегти ваші зміни {details}", - "Errors.project.fetchFailure": "Неможливо отримати найновіші дані проєкту з сервера.", - "Errors.project.searchFailure": "Неможливо знайти проєкти на сервері.", - "Errors.project.deleteFailure": "Неможливо вилучити проєкт.", - "Errors.project.notManager": "Ви маєте бути керівником проєкту.", - "Errors.map.renderFailure": "Неможливо показати {details}. Спроба перейти до типового фонового зображення.", - "Errors.map.placeNotFound": "Nominatim нічого не знайшов.", - "Errors.widgetWorkspace.renderFailure": "Неможливо відтворити робоче середовище. Перемикаємось на робоче оформлення.", - "Errors.widgetWorkspace.importFailure": "Неможливо імпортувати оформлення {details}", - "Errors.josm.noResponse": "Дистанційне керування OSM не відповідає. Переконайтесь, що ви увімкнули його в JOSM?", - "Errors.josm.missingFeatureIds": "Елементи завдання не містять ідентифікатора OSM, який потрібен для самостійного його завантаження в JOSM. Оберіть інший варіант редагування.", - "Errors.team.genericFailure": "Збій {details}", - "Grant.Role.admin": "Адмін", - "Grant.Role.write": "Запис", - "Grant.Role.read": "Читання", - "KeyMapping.openEditor.editId": "Редагувати в iD", - "KeyMapping.openEditor.editJosm": "Редагувати в JOSM", - "KeyMapping.openEditor.editJosmLayer": "Редагувати в JOSM (новий шар)", - "KeyMapping.openEditor.editJosmFeatures": "Редагувати в JOSM тільки ці елементи", - "KeyMapping.openEditor.editLevel0": "Редагувати в Level0", - "KeyMapping.openEditor.editRapid": "Редагувати в RapiD", - "KeyMapping.layers.layerOSMData": "Увімкнути шар даних OSM", - "KeyMapping.layers.layerTaskFeatures": "Увімкнути шар елементів", - "KeyMapping.layers.layerMapillary": "Увімкнути шар Mapillary", - "KeyMapping.taskEditing.cancel": "Скасувати редагування", - "KeyMapping.taskEditing.fitBounds": "Підігнати масштаб під елементи завдання", - "KeyMapping.taskEditing.escapeLabel": "ESC", - "KeyMapping.taskCompletion.skip": "Пропустити", - "KeyMapping.taskCompletion.falsePositive": "Не проблема", - "KeyMapping.taskCompletion.fixed": "Я виправив!", - "KeyMapping.taskCompletion.tooHard": "Дуже важко/Не бачу", - "KeyMapping.taskCompletion.alreadyFixed": "Вже виправлено", - "KeyMapping.taskInspect.nextTask": "Наступне Завдання", - "KeyMapping.taskInspect.prevTask": "Попереднє завдання", - "KeyMapping.taskCompletion.confirmSubmit": "Так", - "Subscription.type.ignore": "Ігнорувати", - "Subscription.type.noEmail": "Отримувати, не надсилати поштою", - "Subscription.type.immediateEmail": "Отримувати та негайно надсилати на пошту", - "Subscription.type.dailyEmail": "Отримувати та щоденно надсилати на пошту", - "Notification.type.system": "Системні", - "Notification.type.mention": "Загадування", - "Notification.type.review.approved": "Ухвалено", - "Notification.type.review.rejected": "Відхилення", - "Notification.type.review.again": "Перевірка", - "Notification.type.challengeCompleted": "Завершення", - "Notification.type.challengeCompletedLong": "Завершення Виклику", - "Challenge.sort.name": "Назва", - "Challenge.sort.created": "Найновіші", - "Challenge.sort.oldest": "Найстаріші", - "Challenge.sort.popularity": "Популярні", - "Challenge.sort.cooperativeWork": "Кооперативні", - "Challenge.sort.default": "Типово", - "Task.loadByMethod.random": "Випадково", - "Task.loadByMethod.proximity": "Поруч", - "Task.priority.high": "Високий", - "Task.priority.medium": "Звичайний", - "Task.priority.low": "Низький", - "Task.property.searchType.equals": "дорівнює", - "Task.property.searchType.notEqual": "не дорівнює", - "Task.property.searchType.contains": "містить", - "Task.property.searchType.exists": "існує", - "Task.property.searchType.missing": "не містить", - "Task.property.operationType.and": "та", - "Task.property.operationType.or": "або", - "Task.reviewStatus.needed": "Потрібна перевірка", - "Task.reviewStatus.approved": "Ухвалено", - "Task.reviewStatus.rejected": "Потрібні зміни", - "Task.reviewStatus.approvedWithFixes": "Ухвалено зі змінами", - "Task.reviewStatus.disputed": "Оспорюється", - "Task.reviewStatus.unnecessary": "Непотрібно", - "Task.reviewStatus.unset": "Запит на перевірку не надсилався", - "Task.review.loadByMethod.next": "Наступне завдання з фільтра", - "Task.review.loadByMethod.all": "Повернутись до списку", - "Task.review.loadByMethod.inbox": "Назад до Вихідних", - "Task.status.created": "Створено", - "Task.status.fixed": "Виправлено", - "Task.status.falsePositive": "Не проблема", - "Task.status.skipped": "Пропущено", - "Task.status.deleted": "Вилучено", - "Task.status.disabled": "Вимкнено", - "Task.status.alreadyFixed": "Вже виправлено", - "Task.status.tooHard": "Дуже важко", - "Team.Status.member": "Член", - "Team.Status.invited": "Запрошено", - "Locale.en-US.label": "en-US (U.S. English)", - "Locale.es.label": "es (Español)", - "Locale.de.label": "de (Deutsch)", - "Locale.fr.label": "fr (Français)", - "Locale.af.label": "af (Afrikaans)", - "Locale.ja.label": "ja (日本語)", - "Locale.ko.label": "ko (한국어)", - "Locale.nl.label": "nl (Dutch)", - "Locale.pt-BR.label": "pt-BR (Português Brasileiro)", - "Locale.fa-IR.label": "fa-IR (فارسی - ایران)", - "Locale.cs-CZ.label": "cs-CZ (Česko - Česká republika)", - "Locale.ru-RU.label": "ru-RU (Русский - Россия)", - "Dashboard.ChallengeFilter.visible.label": "Видимий", - "Dashboard.ChallengeFilter.pinned.label": "Пришпилений", - "Dashboard.ProjectFilter.visible.label": "Видимий", - "Dashboard.ProjectFilter.owner.label": "Власний", - "Dashboard.ProjectFilter.pinned.label": "Пришпилений" + "Widgets.review.simultaneousTasks": "Перевірка {taskCount, number} {taskCount, plural, one {обраного завдання} few {обраних завдань} other {обраних завдань}} разом" } From 02efb9c868e14b6cd861513c982f09eedc56d791 Mon Sep 17 00:00:00 2001 From: Neil Rotstan Date: Wed, 1 Jul 2020 09:57:35 -0700 Subject: [PATCH 29/29] Bump to v3.6.5 --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7f00cd04..def8f851d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,32 @@ The format is based on This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [v3.6.5] - 2020-07-01 +### Added +- Updated community translations (huge thanks to all the translators!) +- Map of nearby tasks on Task Review confirmation step +- Overlay of prioritized bounds on Challenge tasks map for challenge managers +- Support for RFC 7464 compliant formatting of line-by-line GeoJSON +- Include project and task link in Following activity +- Tri-State select-all control on Inbox page +- MR-tag metrics widget for challenge managers +- Basic global activity page +- Task attachments with initial support for JOSM reference layers +- [internal] Upgrade to node v12 LTS +- [internal] Numerous upgrades to package dependencies +- [internal] Various updates required for upgraded package compatibility + +### Fixed +- Inform user if logged out when trying to lock a task (#1233) +- Positioning of confirmation modal +- Unclickable controls on Teams page for some browser window sizes +- Error when using multiple location rules +- Display of Featured Challenges widget on Safari +- Various display issues on Project Details page +- Task Review table page-size reset after every task review +- Clean up any negative timestamps left by bug maproulette/maproulette2#728 + + ## [v3.6.4] - 2020-06-09 ### Added - Updated community translations diff --git a/package.json b/package.json index 7db91ef96..551a8682a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "maproulette3", - "version": "3.6.4", + "version": "3.6.5", "private": true, "dependencies": { "@apollo/client": "3.0.0-rc.7",