From 92384ed9565d6f6558417ea43958612cbf9a87d7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 10 Jun 2015 11:53:10 -0400 Subject: [PATCH] Update to iD v1.7.3 --- vendor/assets/iD/iD.css.erb | 40 +- vendor/assets/iD/iD.js | 8999 +++++++++++------- vendor/assets/iD/iD/locales/af.json | 73 +- vendor/assets/iD/iD/locales/ar.json | 75 +- vendor/assets/iD/iD/locales/ast.json | 71 +- vendor/assets/iD/iD/locales/bg-BG.json | 77 +- vendor/assets/iD/iD/locales/bn.json | 93 +- vendor/assets/iD/iD/locales/bs.json | 69 +- vendor/assets/iD/iD/locales/ca.json | 332 +- vendor/assets/iD/iD/locales/cs.json | 414 +- vendor/assets/iD/iD/locales/da.json | 344 +- vendor/assets/iD/iD/locales/de.json | 308 +- vendor/assets/iD/iD/locales/el.json | 121 +- vendor/assets/iD/iD/locales/en.json | 60 +- vendor/assets/iD/iD/locales/eo.json | 34 +- vendor/assets/iD/iD/locales/es.json | 472 +- vendor/assets/iD/iD/locales/et.json | 65 +- vendor/assets/iD/iD/locales/fa.json | 69 +- vendor/assets/iD/iD/locales/fi.json | 373 +- vendor/assets/iD/iD/locales/fr.json | 344 +- vendor/assets/iD/iD/locales/gl.json | 107 +- vendor/assets/iD/iD/locales/hr.json | 244 +- vendor/assets/iD/iD/locales/hu.json | 269 +- vendor/assets/iD/iD/locales/hy.json | 4 +- vendor/assets/iD/iD/locales/id.json | 125 +- vendor/assets/iD/iD/locales/is.json | 117 +- vendor/assets/iD/iD/locales/it.json | 380 +- vendor/assets/iD/iD/locales/ja.json | 339 +- vendor/assets/iD/iD/locales/kn.json | 169 +- vendor/assets/iD/iD/locales/ko-KR.json | 8 +- vendor/assets/iD/iD/locales/ko.json | 235 +- vendor/assets/iD/iD/locales/lt.json | 245 +- vendor/assets/iD/iD/locales/lv.json | 53 +- vendor/assets/iD/iD/locales/nl.json | 372 +- vendor/assets/iD/iD/locales/no.json | 61 +- vendor/assets/iD/iD/locales/pl.json | 241 +- vendor/assets/iD/iD/locales/pt-BR.json | 366 +- vendor/assets/iD/iD/locales/pt.json | 336 +- vendor/assets/iD/iD/locales/ro-RO.json | 9 +- vendor/assets/iD/iD/locales/ru.json | 356 +- vendor/assets/iD/iD/locales/si.json | 1 - vendor/assets/iD/iD/locales/sk.json | 342 +- vendor/assets/iD/iD/locales/sl.json | 229 +- vendor/assets/iD/iD/locales/sr.json | 121 +- vendor/assets/iD/iD/locales/sv.json | 315 +- vendor/assets/iD/iD/locales/ta.json | 18 +- vendor/assets/iD/iD/locales/te.json | 15 +- vendor/assets/iD/iD/locales/tl.json | 5 +- vendor/assets/iD/iD/locales/tr.json | 77 +- vendor/assets/iD/iD/locales/uk.json | 470 +- vendor/assets/iD/iD/locales/vi.json | 346 +- vendor/assets/iD/iD/locales/yue.json | 69 +- vendor/assets/iD/iD/locales/zh-CN.json | 283 +- vendor/assets/iD/iD/locales/zh-HK.json | 69 +- vendor/assets/iD/iD/locales/zh-TW.json | 428 +- vendor/assets/iD/iD/locales/zh.json | 69 +- vendor/assets/iD/imagery.js | 11487 +++++++++++++++++------ vendor/assets/iD/presets.js | 568 +- 58 files changed, 20383 insertions(+), 10998 deletions(-) diff --git a/vendor/assets/iD/iD.css.erb b/vendor/assets/iD/iD.css.erb index dc5dc3f41..3f733c3b4 100644 --- a/vendor/assets/iD/iD.css.erb +++ b/vendor/assets/iD/iD.css.erb @@ -1710,6 +1710,11 @@ ul li { list-style: none;} color: white; } +.fillD2 { + background:rgba(0,0,0,.75); + color: white; +} + .fl { float: left;} .fr { float: right;} @@ -3572,6 +3577,39 @@ img.wiki-image { stroke-width: 5; } +/* Info Box +------------------------------------------------------- */ +.infobox { + position: absolute; + z-index: 1; + right: 0; + bottom: 30px; + width: 240px; + border-radius: 4px 0 0 0; + border-bottom: 1px solid black; +} + +.infobox .selection-heading { + display: block; + border-radius: 4px 0 0 0; + padding: 5px 10px; + height: 30px; +} + +.infobox ul { + padding: 5px 10px; +} + +.infobox .button { + position: absolute; + background: #7092ff; + border-radius: 2px; + padding: 0 4px; + color: white; + top: 40px; + right: 10px; +} + /* About Section ------------------------------------------------------- */ @@ -4576,7 +4614,7 @@ img.wiki-image { .preset-icon-line.feature-pipeline{background-position:-2300px -25px;} .preset-icon-relation.feature-relation{background-position:-20px -25px;} .preset-icon-relation.feature-restriction{background-position:-80px -25px;} -.preset-icon-relation.feature-multipolygon{background-position:-140px -25px;} +.preset-icon-relation.feature-multipolygon{background-position:-141px -25px;} .preset-icon-relation.feature-boundary{background-position:-200px -25px;} .preset-icon-relation.feature-route{background-position:-260px -25px;} .preset-icon-relation.feature-route-road{background-position:-320px -25px;} diff --git a/vendor/assets/iD/iD.js b/vendor/assets/iD/iD.js index 47393cad2..30b72e692 100644 --- a/vendor/assets/iD/iD.js +++ b/vendor/assets/iD/iD.js @@ -2251,6 +2251,115 @@ function d3_timer_sweep() { return time; } d3.geo = {}; + +d3.geo.stream = function(object, listener) { + if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { + d3_geo_streamObjectType[object.type](object, listener); + } else { + d3_geo_streamGeometry(object, listener); + } +}; + +function d3_geo_streamGeometry(geometry, listener) { + if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { + d3_geo_streamGeometryType[geometry.type](geometry, listener); + } +} + +var d3_geo_streamObjectType = { + Feature: function(feature, listener) { + d3_geo_streamGeometry(feature.geometry, listener); + }, + FeatureCollection: function(object, listener) { + var features = object.features, i = -1, n = features.length; + while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); + } +}; + +var d3_geo_streamGeometryType = { + Sphere: function(object, listener) { + listener.sphere(); + }, + Point: function(object, listener) { + object = object.coordinates; + listener.point(object[0], object[1], object[2]); + }, + MultiPoint: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); + }, + LineString: function(object, listener) { + d3_geo_streamLine(object.coordinates, listener, 0); + }, + MultiLineString: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); + }, + Polygon: function(object, listener) { + d3_geo_streamPolygon(object.coordinates, listener); + }, + MultiPolygon: function(object, listener) { + var coordinates = object.coordinates, i = -1, n = coordinates.length; + while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); + }, + GeometryCollection: function(object, listener) { + var geometries = object.geometries, i = -1, n = geometries.length; + while (++i < n) d3_geo_streamGeometry(geometries[i], listener); + } +}; + +function d3_geo_streamLine(coordinates, listener, closed) { + var i = -1, n = coordinates.length - closed, coordinate; + listener.lineStart(); + while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); + listener.lineEnd(); +} + +function d3_geo_streamPolygon(coordinates, listener) { + var i = -1, n = coordinates.length; + listener.polygonStart(); + while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); + listener.polygonEnd(); +} + +d3.geo.length = function(object) { + d3_geo_lengthSum = 0; + d3.geo.stream(object, d3_geo_length); + return d3_geo_lengthSum; +}; + +var d3_geo_lengthSum; + +var d3_geo_length = { + sphere: d3_noop, + point: d3_noop, + lineStart: d3_geo_lengthLineStart, + lineEnd: d3_noop, + polygonStart: d3_noop, + polygonEnd: d3_noop +}; + +function d3_geo_lengthLineStart() { + var λ0, sinφ0, cosφ0; + + d3_geo_length.point = function(λ, φ) { + λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ); + d3_geo_length.point = nextPoint; + }; + + d3_geo_length.lineEnd = function() { + d3_geo_length.point = d3_geo_length.lineEnd = d3_noop; + }; + + function nextPoint(λ, φ) { + var sinφ = Math.sin(φ *= d3_radians), + cosφ = Math.cos(φ), + t = abs((λ *= d3_radians) - λ0), + cosΔλ = Math.cos(t); + d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ); + λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ; + } +} function d3_identity(d) { return d; } @@ -2859,76 +2968,6 @@ function d3_adderSum(a, b, o) { o.t = (a - av) + (b - bv); // a_roundoff + b_roundoff } -d3.geo.stream = function(object, listener) { - if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) { - d3_geo_streamObjectType[object.type](object, listener); - } else { - d3_geo_streamGeometry(object, listener); - } -}; - -function d3_geo_streamGeometry(geometry, listener) { - if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) { - d3_geo_streamGeometryType[geometry.type](geometry, listener); - } -} - -var d3_geo_streamObjectType = { - Feature: function(feature, listener) { - d3_geo_streamGeometry(feature.geometry, listener); - }, - FeatureCollection: function(object, listener) { - var features = object.features, i = -1, n = features.length; - while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener); - } -}; - -var d3_geo_streamGeometryType = { - Sphere: function(object, listener) { - listener.sphere(); - }, - Point: function(object, listener) { - object = object.coordinates; - listener.point(object[0], object[1], object[2]); - }, - MultiPoint: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]); - }, - LineString: function(object, listener) { - d3_geo_streamLine(object.coordinates, listener, 0); - }, - MultiLineString: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0); - }, - Polygon: function(object, listener) { - d3_geo_streamPolygon(object.coordinates, listener); - }, - MultiPolygon: function(object, listener) { - var coordinates = object.coordinates, i = -1, n = coordinates.length; - while (++i < n) d3_geo_streamPolygon(coordinates[i], listener); - }, - GeometryCollection: function(object, listener) { - var geometries = object.geometries, i = -1, n = geometries.length; - while (++i < n) d3_geo_streamGeometry(geometries[i], listener); - } -}; - -function d3_geo_streamLine(coordinates, listener, closed) { - var i = -1, n = coordinates.length - closed, coordinate; - listener.lineStart(); - while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]); - listener.lineEnd(); -} - -function d3_geo_streamPolygon(coordinates, listener) { - var i = -1, n = coordinates.length; - listener.polygonStart(); - while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1); - listener.polygonEnd(); -} - d3.geo.area = function(object) { d3_geo_areaSum = 0; d3.geo.stream(object, d3_geo_area); @@ -7615,145 +7654,191 @@ var JXON = new (function () { // we got our Document instance! try: alert((new XMLSerializer()).serializeToString(newDoc)); /** * @license - * Lo-Dash 2.3.0 (Custom Build) - * Build: `lodash --debug --output js/lib/lodash.js include="any,assign,bind,clone,compact,contains,debounce,difference,each,every,extend,filter,find,first,forEach,groupBy,indexOf,intersection,isEmpty,isEqual,isFunction,keys,last,map,omit,pairs,pluck,reject,some,throttle,union,uniq,unique,values,without,flatten,value,chain,cloneDeep,merge,pick,reduce" exports="global,node"` - * Copyright 2012-2013 The Dojo Foundation - * Based on Underscore.js 1.5.2 - * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license + * lodash 3.9.3 (Custom Build) + * Build: `lodash --development --output js/lib/lodash.js include="any,assign,bind,chunk,clone,compact,contains,debounce,difference,each,every,extend,filter,find,first,forEach,forOwn,groupBy,indexOf,intersection,isEmpty,isEqual,isFunction,keys,last,map,omit,pairs,pluck,reject,some,throttle,union,uniq,unique,values,without,flatten,value,chain,cloneDeep,merge,pick,reduce" exports="global,node"` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license */ ;(function() { - /** Used as a safe reference for `undefined` in pre ES5 environments */ + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined; - /** Used to pool arrays and objects used internally */ - var arrayPool = [], - objectPool = []; - - /** Used internally to indicate various things */ - var indicatorObject = {}; - - /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */ - var keyPrefix = +new Date + ''; + /** Used as the semantic version number. */ + var VERSION = '3.9.3'; + + /** Used to compose bitmasks for wrapper metadata. */ + var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + CURRY_BOUND_FLAG = 4, + CURRY_FLAG = 8, + CURRY_RIGHT_FLAG = 16, + PARTIAL_FLAG = 32, + PARTIAL_RIGHT_FLAG = 64, + ARY_FLAG = 128, + REARG_FLAG = 256; + + /** Used to detect when a function becomes hot. */ + var HOT_COUNT = 150, + HOT_SPAN = 16; + + /** Used to indicate the type of lazy iteratees. */ + var LAZY_DROP_WHILE_FLAG = 0, + LAZY_FILTER_FLAG = 1, + LAZY_MAP_FLAG = 2; + + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used as the internal argument placeholder. */ + var PLACEHOLDER = '__lodash_placeholder__'; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + + var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; - /** Used as the size when optimizations are enabled for large arrays */ - var largeArraySize = 75; + /** + * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). + * In addition to special characters the forward slash is escaped to allow for + * easier `eval` use and `Function` compilation. + */ + var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, + reHasRegExpChars = RegExp(reRegExpChars.source); - /** Used as the max size of the `arrayPool` and `objectPool` */ - var maxPoolSize = 40; + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; - /** Used to match regexp flags from their coerced string values */ + /** Used to match `RegExp` flags from their coerced string values. */ var reFlags = /\w*$/; - /** Used to detected named functions */ - var reFuncName = /^\s*function[ \n\r\t]+\w/; + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; - /** Used to detect functions containing a `this` reference */ - var reThis = /\bthis\b/; + /** Used to detect unsigned integer values. */ + var reIsUint = /^\d+$/; - /** Used to fix the JScript [[DontEnum]] bug */ - var shadowedProps = [ + /** Used to fix the JScript `[[DontEnum]]` bug. */ + var shadowProps = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; - /** `Object#toString` result shortcuts */ - var argsClass = '[object Arguments]', - arrayClass = '[object Array]', - boolClass = '[object Boolean]', - dateClass = '[object Date]', - errorClass = '[object Error]', - funcClass = '[object Function]', - numberClass = '[object Number]', - objectClass = '[object Object]', - regexpClass = '[object RegExp]', - stringClass = '[object String]'; - - /** Used to identify object classifications that `_.clone` supports */ - var cloneableClasses = {}; - cloneableClasses[funcClass] = false; - cloneableClasses[argsClass] = cloneableClasses[arrayClass] = - cloneableClasses[boolClass] = cloneableClasses[dateClass] = - cloneableClasses[numberClass] = cloneableClasses[objectClass] = - cloneableClasses[regexpClass] = cloneableClasses[stringClass] = true; - - /** Used as an internal `_.debounce` options object */ + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dateTag] = typedArrayTags[errorTag] = + typedArrayTags[funcTag] = typedArrayTags[mapTag] = + typedArrayTags[numberTag] = typedArrayTags[objectTag] = + typedArrayTags[regexpTag] = typedArrayTags[setTag] = + typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = + cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = + cloneableTags[dateTag] = cloneableTags[float32Tag] = + cloneableTags[float64Tag] = cloneableTags[int8Tag] = + cloneableTags[int16Tag] = cloneableTags[int32Tag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[stringTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = + cloneableTags[mapTag] = cloneableTags[setTag] = + cloneableTags[weakMapTag] = false; + + /** Used as an internal `_.debounce` options object by `_.throttle`. */ var debounceOptions = { 'leading': false, 'maxWait': 0, 'trailing': false }; - /** Used as the property descriptor for `__bindData__` */ - var descriptor = { - 'configurable': false, - 'enumerable': false, - 'value': null, - 'writable': false - }; - - /** Used as the data object for `iteratorTemplate` */ - var iteratorData = { - 'args': '', - 'array': null, - 'bottom': '', - 'firstArg': '', - 'init': '', - 'keys': null, - 'loop': '', - 'shadowedProps': null, - 'support': null, - 'top': '', - 'useHas': false - }; - - /** Used to determine if values are of the language type Object */ + /** Used to determine if values are of the language type `Object`. */ var objectTypes = { - 'boolean': false, 'function': true, - 'object': true, - 'number': false, - 'string': false, - 'undefined': false + 'object': true }; - /** Used as a reference to the global object */ - var root = (objectTypes[typeof window] && window) || this; - - /** Detect free variable `exports` */ + /** Detect free variable `exports`. */ var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - /** Detect free variable `module` */ + /** Detect free variable `module`. */ var freeModule = objectTypes[typeof module] && module && !module.nodeType && module; - /** Detect the popular CommonJS extension `module.exports` */ + /** Detect free variable `global` from Node.js. */ + var freeGlobal = freeExports && freeModule && typeof global == 'object' && global && global.Object && global; + + /** Detect free variable `self`. */ + var freeSelf = objectTypes[typeof self] && self && self.Object && self; + + /** Detect free variable `window`. */ + var freeWindow = objectTypes[typeof window] && window && window.Object && window; + + /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports && freeExports; - /** Detect free variable `global` from Node.js or Browserified code and use it as `root` */ - var freeGlobal = objectTypes[typeof global] && global; - if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) { - root = freeGlobal; - } + /** + * Used as a reference to the global object. + * + * The `this` value is used if it's the global object to avoid Greasemonkey's + * restricted `window` object, otherwise the `window` object is used. + */ + var root = freeGlobal || ((freeWindow !== (this && this.window)) && freeWindow) || freeSelf || this; /*--------------------------------------------------------------------------*/ /** - * The base implementation of `_.indexOf` without support for binary searches - * or `fromIndex` constraints. + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for callback shorthands and `this` binding. * * @private * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value or `-1`. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. */ - function baseIndexOf(array, value, fromIndex) { - var index = (fromIndex || 0) - 1, - length = array ? array.length : 0; + function baseFindIndex(array, predicate, fromRight) { + var length = array.length, + index = fromRight ? length : -1; - while (++index < length) { - if (array[index] === value) { + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { return index; } } @@ -7761,333 +7846,361 @@ var JXON = new (function () { } /** - * An implementation of `_.contains` for cache objects that mimics the return - * signature of `_.indexOf` by returning `0` if the value is found, else `-1`. + * The base implementation of `_.indexOf` without support for binary searches. * * @private - * @param {Object} cache The cache object to inspect. + * @param {Array} array The array to search. * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. */ - function cacheIndexOf(cache, value) { - var type = typeof value; - cache = cache.cache; - - if (type == 'boolean' || value == null) { - return cache[value] ? 0 : -1; - } - if (type != 'number' && type != 'string') { - type = 'object'; + function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); } - var key = type == 'number' ? value : keyPrefix + value; - cache = (cache = cache[type]) && cache[key]; + var index = fromIndex - 1, + length = array.length; - return type == 'object' - ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1) - : (cache ? 0 : -1); + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; } /** - * Adds a given value to the corresponding cache object. + * The base implementation of `_.isFunction` without support for environments + * with incorrect `typeof` results. * * @private - * @param {*} value The value to add to the cache. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. */ - function cachePush(value) { - var cache = this.cache, - type = typeof value; - - if (type == 'boolean' || value == null) { - cache[value] = true; - } else { - if (type != 'number' && type != 'string') { - type = 'object'; - } - var key = type == 'number' ? value : keyPrefix + value, - typeCache = cache[type] || (cache[type] = {}); - - if (type == 'object') { - (typeCache[key] || (typeCache[key] = [])).push(value); - } else { - typeCache[key] = true; - } - } + function baseIsFunction(value) { + // Avoid a Chakra JIT bug in compatibility modes of IE 11. + // See https://github.com/jashkenas/underscore/issues/1621 for more details. + return typeof value == 'function' || false; } /** - * Creates a cache object to optimize linear searches of large arrays. + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. * * @private - * @param {Array} [array=[]] The array to search. - * @returns {null|Object} Returns the cache object or `null` if caching should not be used. + * @param {*} value The value to process. + * @returns {string} Returns the string. */ - function createCache(array) { - var index = -1, - length = array.length, - first = array[0], - mid = array[(length / 2) | 0], - last = array[length - 1]; - - if (first && typeof first == 'object' && - mid && typeof mid == 'object' && last && typeof last == 'object') { - return false; - } - var cache = getObject(); - cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false; - - var result = getObject(); - result.array = array; - result.cache = cache; - result.push = cachePush; - - while (++index < length) { - result.push(array[index]); + function baseToString(value) { + if (typeof value == 'string') { + return value; } - return result; + return value == null ? '' : (value + ''); } /** - * Gets an array from the array pool or creates a new one if the pool is empty. + * Gets the index at which the first occurrence of `NaN` is found in `array`. * * @private - * @returns {Array} The array from the pool. + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. */ - function getArray() { - return arrayPool.pop() || []; + function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 0 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; } /** - * Gets an object from the object pool or creates a new one if the pool is empty. + * Checks if `value` is a host object in IE < 9. * * @private - * @returns {Object} The object from the pool. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. */ - function getObject() { - return objectPool.pop() || { - 'array': null, - 'cache': null, - 'false': false, - 'null': false, - 'number': null, - 'object': null, - 'push': null, - 'string': null, - 'true': false, - 'undefined': false + var isHostObject = (function() { + try { + Object({ 'toString': 0 } + ''); + } catch(e) { + return function() { return false; }; + } + return function(value) { + // IE < 9 presents many host objects as `Object` objects that can coerce + // to strings despite having improperly defined `toString` methods. + return typeof value.toString != 'function' && typeof (value + '') == 'string'; }; - } + }()); /** - * Checks if `value` is a DOM node in IE < 9. + * Checks if `value` is object-like. * * @private * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is a DOM node, else `false`. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. */ - function isNode(value) { - // IE < 9 presents DOM nodes as `Object` objects except they have `toString` - // methods that are `typeof` "string" and still can coerce nodes to strings - return typeof value.toString != 'function' && typeof (value + '') == 'string'; + function isObjectLike(value) { + return !!value && typeof value == 'object'; } /** - * Releases the given array back to the array pool. + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. * * @private - * @param {Array} [array] The array to release. + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. */ - function releaseArray(array) { - array.length = 0; - if (arrayPool.length < maxPoolSize) { - arrayPool.push(array); - } - } + function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = -1, + result = []; - /** - * Releases the given object back to the object pool. - * - * @private - * @param {Object} [object] The object to release. - */ - function releaseObject(object) { - var cache = object.cache; - if (cache) { - releaseObject(cache); - } - object.array = object.cache =object.object = object.number = object.string =null; - if (objectPool.length < maxPoolSize) { - objectPool.push(object); + while (++index < length) { + if (array[index] === placeholder) { + array[index] = PLACEHOLDER; + result[++resIndex] = index; + } } + return result; } /** - * Slices the `collection` from the `start` index up to, but not including, - * the `end` index. - * - * Note: This function is used instead of `Array#slice` to support node lists - * in IE < 9 and to ensure dense arrays are returned. + * An implementation of `_.uniq` optimized for sorted arrays without support + * for callback shorthands and `this` binding. * * @private - * @param {Array|Object|string} collection The collection to slice. - * @param {number} start The start index. - * @param {number} end The end index. - * @returns {Array} Returns the new array. + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The function invoked per iteration. + * @returns {Array} Returns the new duplicate-value-free array. */ - function slice(array, start, end) { - start || (start = 0); - if (typeof end == 'undefined') { - end = array ? array.length : 0; - } - var index = -1, - length = end - start || 0, - result = Array(length < 0 ? 0 : length); + function sortedUniq(array, iteratee) { + var seen, + index = -1, + length = array.length, + resIndex = -1, + result = []; while (++index < length) { - result[index] = array[start + index]; + var value = array[index], + computed = iteratee ? iteratee(value, index, array) : value; + + if (!index || seen !== computed) { + seen = computed; + result[++resIndex] = value; + } } return result; } /*--------------------------------------------------------------------------*/ - /** - * Used for `Array` method references. - * - * Normally `Array.prototype` would suffice, however, using an array literal - * avoids issues in Narwhal. - */ - var arrayRef = []; - - /** Used for native method references */ - var errorProto = Error.prototype, + /** Used for native method references. */ + var arrayProto = Array.prototype, + errorProto = Error.prototype, objectProto = Object.prototype, stringProto = String.prototype; - /** Used to resolve the internal [[Class]] of values */ - var toString = objectProto.toString; + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; - /** Used to detect if a method is native */ - var reNative = RegExp('^' + - String(toString) - .replace(/[.*+?^${}()|[\]\\]/g, '\\$&') - .replace(/toString| for [^\]]+/g, '.*?') + '$' + /** + * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + escapeRegExp(fnToString.call(hasOwnProperty)) + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' ); - /** Native method shortcuts */ - var fnToString = Function.prototype.toString, - getPrototypeOf = reNative.test(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf, - hasOwnProperty = objectProto.hasOwnProperty, - now = reNative.test(now = Date.now) && now || function() { return +new Date; }, - push = arrayRef.push, - propertyIsEnumerable = objectProto.propertyIsEnumerable; - - /** Used to set meta data on functions */ - var defineProperty = (function() { - // IE 8 only accepts DOM elements + /** Native method references. */ + var ArrayBuffer = getNative(root, 'ArrayBuffer'), + bufferSlice = getNative(ArrayBuffer && new ArrayBuffer(0), 'slice'), + ceil = Math.ceil, + floor = Math.floor, + getPrototypeOf = getNative(Object, 'getPrototypeOf'), + push = arrayProto.push, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + Set = getNative(root, 'Set'), + splice = arrayProto.splice, + Uint8Array = getNative(root, 'Uint8Array'), + WeakMap = getNative(root, 'WeakMap'); + + /** Used to clone array buffers. */ + var Float64Array = (function() { + // Safari 5 errors when using an array buffer to initialize a typed array + // where the array buffer's `byteLength` is not a multiple of the typed + // array's `BYTES_PER_ELEMENT`. try { - var o = {}, - func = reNative.test(func = Object.defineProperty) && func, - result = func(o, o, o) && func; - } catch(e) { } - return result; + var func = getNative(root, 'Float64Array'), + result = new func(new ArrayBuffer(10), 0, 1) && func; + } catch(e) {} + return result || null; }()); - /* Native method shortcuts for methods with the same name as other `lodash` methods */ - var nativeCreate = reNative.test(nativeCreate = Object.create) && nativeCreate, - nativeIsArray = reNative.test(nativeIsArray = Array.isArray) && nativeIsArray, - nativeKeys = reNative.test(nativeKeys = Object.keys) && nativeKeys, + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeCreate = getNative(Object, 'create'), + nativeIsArray = getNative(Array, 'isArray'), + nativeKeys = getNative(Object, 'keys'), nativeMax = Math.max, - nativeMin = Math.min; - - /** Used to lookup a built-in constructor by [[Class]] */ - var ctorByClass = {}; - ctorByClass[arrayClass] = Array; - ctorByClass[boolClass] = Boolean; - ctorByClass[dateClass] = Date; - ctorByClass[funcClass] = Function; - ctorByClass[objectClass] = Object; - ctorByClass[numberClass] = Number; - ctorByClass[regexpClass] = RegExp; - ctorByClass[stringClass] = String; - - /** Used to avoid iterating non-enumerable properties in IE < 9 */ - var nonEnumProps = {}; - nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; - nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true }; - nonEnumProps[errorClass] = nonEnumProps[funcClass] = nonEnumProps[regexpClass] = { 'constructor': true, 'toString': true }; - nonEnumProps[objectClass] = { 'constructor': true }; + nativeMin = Math.min, + nativeNow = getNative(Date, 'now'); - (function() { - var length = shadowedProps.length; - while (length--) { - var key = shadowedProps[length]; - for (var className in nonEnumProps) { - if (hasOwnProperty.call(nonEnumProps, className) && !hasOwnProperty.call(nonEnumProps[className], key)) { - nonEnumProps[className][key] = false; - } + /** Used as references for `-Infinity` and `Infinity`. */ + var POSITIVE_INFINITY = Number.POSITIVE_INFINITY; + + /** Used as references for the maximum length and index of an array. */ + var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + + /** Used as the size, in bytes, of each `Float64Array` element. */ + var FLOAT64_BYTES_PER_ELEMENT = Float64Array ? Float64Array.BYTES_PER_ELEMENT : 0; + + /** + * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** Used to store function metadata. */ + var metaMap = WeakMap && new WeakMap; + + /** Used to lookup unminified function names. */ + var realNames = {}; + + /** Used to lookup a type array constructors by `toStringTag`. */ + var ctorByTag = {}; + ctorByTag[float32Tag] = root.Float32Array; + ctorByTag[float64Tag] = root.Float64Array; + ctorByTag[int8Tag] = root.Int8Array; + ctorByTag[int16Tag] = root.Int16Array; + ctorByTag[int32Tag] = root.Int32Array; + ctorByTag[uint8Tag] = root.Uint8Array; + ctorByTag[uint8ClampedTag] = root.Uint8ClampedArray; + ctorByTag[uint16Tag] = root.Uint16Array; + ctorByTag[uint32Tag] = root.Uint32Array; + + /** Used to avoid iterating over non-enumerable properties in IE < 9. */ + var nonEnumProps = {}; + nonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; + nonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true }; + nonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true }; + nonEnumProps[objectTag] = { 'constructor': true }; + + arrayEach(shadowProps, function(key) { + for (var tag in nonEnumProps) { + if (hasOwnProperty.call(nonEnumProps, tag)) { + var props = nonEnumProps[tag]; + props[key] = hasOwnProperty.call(props, key); } } - }()); + }); - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ /** - * Creates a `lodash` object which wraps the given value to enable intuitive - * method chaining. - * - * In addition to Lo-Dash methods, wrappers also have the following `Array` methods: - * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`, - * and `unshift` - * - * Chaining is supported in custom builds as long as the `value` method is - * implicitly or explicitly included in the build. - * - * The chainable wrapper functions are: - * `after`, `assign`, `bind`, `bindAll`, `bindKey`, `chain`, `compact`, - * `compose`, `concat`, `countBy`, `create`, `createCallback`, `curry`, - * `debounce`, `defaults`, `defer`, `delay`, `difference`, `filter`, `flatten`, - * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, - * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, - * `invoke`, `keys`, `map`, `max`, `memoize`, `merge`, `min`, `object`, `omit`, - * `once`, `pairs`, `partial`, `partialRight`, `pick`, `pluck`, `pull`, `push`, - * `range`, `reject`, `remove`, `rest`, `reverse`, `shuffle`, `slice`, `sort`, - * `sortBy`, `splice`, `tap`, `throttle`, `times`, `toArray`, `transform`, - * `union`, `uniq`, `unshift`, `unzip`, `values`, `where`, `without`, `wrap`, - * and `zip` - * - * The non-chainable wrapper functions are: - * `clone`, `cloneDeep`, `contains`, `escape`, `every`, `find`, `findIndex`, - * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `has`, `identity`, - * `indexOf`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`, - * `isEmpty`, `isEqual`, `isFinite`, `isFunction`, `isNaN`, `isNull`, `isNumber`, - * `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, `join`, - * `lastIndexOf`, `mixin`, `noConflict`, `parseInt`, `pop`, `random`, `reduce`, - * `reduceRight`, `result`, `shift`, `size`, `some`, `sortedIndex`, `runInContext`, - * `template`, `unescape`, `uniqueId`, and `value` - * - * The wrapper functions `first` and `last` return wrapped values when `n` is - * provided, otherwise they return unwrapped values. - * - * Explicit chaining can be enabled by using the `_.chain` method. + * Creates a `lodash` object which wraps `value` to enable implicit chaining. + * Methods that operate on and return arrays, collections, and functions can + * be chained together. Methods that return a boolean or single value will + * automatically end the chain returning the unwrapped value. Explicit chaining + * may be enabled using `_.chain`. The execution of chained methods is lazy, + * that is, execution is deferred until `_#value` is implicitly or explicitly + * called. + * + * Lazy evaluation allows several methods to support shortcut fusion. Shortcut + * fusion is an optimization that merges iteratees to avoid creating intermediate + * arrays and reduce the number of iteratee executions. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, + * `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `compact`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, + * `first`, `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, + * `slice`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `toArray`, + * and `where` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, + * `callback`, `chain`, `chunk`, `commit`, `compact`, `concat`, `constant`, + * `countBy`, `create`, `curry`, `debounce`, `defaults`, `defer`, `delay`, + * `difference`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `fill`, + * `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, `forEach`, + * `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `functions`, + * `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, `invoke`, `keys`, + * `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `method`, `methodOf`, `mixin`, `negate`, `omit`, `once`, + * `pairs`, `partial`, `partialRight`, `partition`, `pick`, `plant`, `pluck`, + * `property`, `propertyOf`, `pull`, `pullAt`, `push`, `range`, `rearg`, + * `reject`, `remove`, `rest`, `restParam`, `reverse`, `set`, `shuffle`, + * `slice`, `sort`, `sortBy`, `sortByAll`, `sortByOrder`, `splice`, `spread`, + * `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`, + * `thru`, `times`, `toArray`, `toPlainObject`, `transform`, `union`, `uniq`, + * `unshift`, `unzip`, `unzipWith`, `values`, `valuesIn`, `where`, `without`, + * `wrap`, `xor`, `zip`, `zipObject`, `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `clone`, `cloneDeep`, `deburr`, + * `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, + * `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, `get`, + * `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, `inRange`, `isArguments`, + * `isArray`, `isBoolean`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isError`, + * `isFinite` `isFunction`, `isMatch`, `isNative`, `isNaN`, `isNull`, `isNumber`, + * `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, + * `isTypedArray`, `join`, `kebabCase`, `last`, `lastIndexOf`, `lt`, `lte`, + * `max`, `min`, `noConflict`, `noop`, `now`, `pad`, `padLeft`, `padRight`, + * `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, `repeat`, `result`, + * `runInContext`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, + * `sortedLastIndex`, `startCase`, `startsWith`, `sum`, `template`, `trim`, + * `trimLeft`, `trimRight`, `trunc`, `unescape`, `uniqueId`, `value`, and `words` + * + * The wrapper method `sample` will return a wrapped value when `n` is provided, + * otherwise an unwrapped value is returned. * * @name _ * @constructor - * @category Chaining + * @category Chain * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * var wrapped = _([1, 2, 3]); * * // returns an unwrapped value - * wrapped.reduce(function(sum, num) { - * return sum + num; + * wrapped.reduce(function(total, n) { + * return total + n; * }); * // => 6 * * // returns a wrapped value - * var squares = wrapped.map(function(num) { - * return num * num; + * var squares = wrapped.map(function(n) { + * return n * n; * }); * * _.isArray(squares); @@ -8097,29 +8210,42 @@ var JXON = new (function () { * // => true */ function lodash(value) { - // don't wrap if already wrapped, even if wrapped by a different `lodash` constructor - return (value && typeof value == 'object' && !isArray(value) && hasOwnProperty.call(value, '__wrapped__')) - ? value - : new lodashWrapper(value); + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__chain__') && hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); } /** - * A fast path for creating `lodash` wrapper objects. + * The function whose prototype all chaining wrappers inherit from. * * @private - * @param {*} value The value to wrap in a `lodash` instance. - * @param {boolean} chainAll A flag to enable chaining for all methods - * @returns {Object} Returns a `lodash` instance. */ - function lodashWrapper(value, chainAll) { - this.__chain__ = !!chainAll; + function baseLodash() { + // No operation performed. + } + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable chaining for all wrapper methods. + * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + */ + function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; + this.__actions__ = actions || []; + this.__chain__ = !!chainAll; } - // ensure `new lodashWrapper` is an instance of `lodash` - lodashWrapper.prototype = lodash.prototype; /** - * An object used to flag environments features. + * An object environment feature flags. * * @static * @memberOf _ @@ -8127,84 +8253,51 @@ var JXON = new (function () { */ var support = lodash.support = {}; - (function() { - var ctor = function() { this.x = 1; }, - object = { '0': 1, 'length': 1 }, + (function(x) { + var Ctor = function() { this.x = x; }, + object = { '0': x, 'length': x }, props = []; - ctor.prototype = { 'valueOf': 1, 'y': 1 }; - for (var key in new ctor) { props.push(key); } - for (key in arguments) { } - - /** - * Detect if an `arguments` object's [[Class]] is resolvable (all but Firefox < 4, IE < 9). - * - * @memberOf _.support - * @type boolean - */ - support.argsClass = toString.call(arguments) == argsClass; + Ctor.prototype = { 'valueOf': x, 'y': x }; + for (var key in new Ctor) { props.push(key); } /** - * Detect if `arguments` objects are `Object` objects (all but Narwhal and Opera < 10.5). + * Detect if the `toStringTag` of `arguments` objects is resolvable + * (all but Firefox < 4, IE < 9). * * @memberOf _.support * @type boolean */ - support.argsObject = arguments.constructor == Object && !(arguments instanceof Array); + support.argsTag = objToString.call(arguments) == argsTag; /** * Detect if `name` or `message` properties of `Error.prototype` are - * enumerable by default. (IE < 9, Safari < 5.1) + * enumerable by default (IE < 9, Safari < 5.1). * * @memberOf _.support * @type boolean */ - support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || propertyIsEnumerable.call(errorProto, 'name'); + support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || + propertyIsEnumerable.call(errorProto, 'name'); /** * Detect if `prototype` properties are enumerable by default. * * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 * (if the prototype or a property on the prototype has been set) - * incorrectly sets a function's `prototype` property [[Enumerable]] - * value to `true`. - * - * @memberOf _.support - * @type boolean - */ - support.enumPrototypes = propertyIsEnumerable.call(ctor, 'prototype'); - - /** - * Detect if functions can be decompiled by `Function#toString` - * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps). - * - * @memberOf _.support - * @type boolean - */ - support.funcDecomp = !reNative.test(root.WinRTError) && reThis.test(function() { return this; }); - - /** - * Detect if `Function#name` is supported (all but IE). + * incorrectly set the `[[Enumerable]]` value of a function's `prototype` + * property to `true`. * * @memberOf _.support * @type boolean */ - support.funcNames = typeof Function.name == 'string'; - - /** - * Detect if `arguments` object indexes are non-enumerable - * (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1). - * - * @memberOf _.support - * @type boolean - */ - support.nonEnumArgs = key != 0; + support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype'); /** * Detect if properties shadowing those on `Object.prototype` are non-enumerable. * - * In IE < 9 an objects own properties, shadowing non-enumerable ones, are - * made non-enumerable as well (a.k.a the JScript [[DontEnum]] bug). + * In IE < 9 an object's own properties, shadowing non-enumerable ones, + * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug). * * @memberOf _.support * @type boolean @@ -8212,7 +8305,7 @@ var JXON = new (function () { support.nonEnumShadows = !/valueOf/.test(props); /** - * Detect if own properties are iterated after inherited properties (all but IE < 9). + * Detect if own properties are iterated after inherited properties (IE < 9). * * @memberOf _.support * @type boolean @@ -8220,3429 +8313,5453 @@ var JXON = new (function () { support.ownLast = props[0] != 'x'; /** - * Detect if `Array#shift` and `Array#splice` augment array-like objects correctly. + * Detect if `Array#shift` and `Array#splice` augment array-like objects + * correctly. * - * Firefox < 10, IE compatibility mode, and IE < 9 have buggy Array `shift()` - * and `splice()` functions that fail to remove the last element, `value[0]`, - * of array-like objects even though the `length` property is set to `0`. - * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()` - * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9. + * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array + * `shift()` and `splice()` functions that fail to remove the last element, + * `value[0]`, of array-like objects even though the "length" property is + * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8, + * while `splice()` is buggy regardless of mode in IE < 9. * * @memberOf _.support * @type boolean */ - support.spliceObjects = (arrayRef.splice.call(object, 0, 1), !object[0]); + support.spliceObjects = (splice.call(object, 0, 1), !object[0]); /** * Detect lack of support for accessing string characters by index. * - * IE < 8 can't access characters by index and IE 8 can only access - * characters by index on string literals. + * IE < 8 can't access characters by index. IE 8 can only access characters + * by index on string literals, not string objects. * * @memberOf _.support * @type boolean */ support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; + }(1, 0)); - /** - * Detect if a DOM node's [[Class]] is resolvable (all but IE < 9) - * and that the JS engine errors when attempting to coerce an object to - * a string without a `toString` function. - * - * @memberOf _.support - * @type boolean - */ - try { - support.nodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + '')); - } catch(e) { - support.nodeClass = true; - } - }(1)); - - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ /** - * The template used to create iterator functions. + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. * * @private - * @param {Object} data The data object used to populate the text. - * @returns {string} Returns the interpolated text. + * @param {*} value The value to wrap. */ - var iteratorTemplate = function(obj) { - - var __p = 'var index, iterable = ' + - (obj.firstArg) + - ', result = ' + - (obj.init) + - ';\nif (!iterable) return result;\n' + - (obj.top) + - ';'; - if (obj.array) { - __p += '\nvar length = iterable.length; index = -1;\nif (' + - (obj.array) + - ') { '; - if (support.unindexedChars) { - __p += '\n if (isString(iterable)) {\n iterable = iterable.split(\'\')\n } '; - } - __p += '\n while (++index < length) {\n ' + - (obj.loop) + - ';\n }\n}\nelse { '; - } else if (support.nonEnumArgs) { - __p += '\n var length = iterable.length; index = -1;\n if (length && isArguments(iterable)) {\n while (++index < length) {\n index += \'\';\n ' + - (obj.loop) + - ';\n }\n } else { '; - } + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = null; + this.__dir__ = 1; + this.__dropCount__ = 0; + this.__filtered__ = false; + this.__iteratees__ = null; + this.__takeCount__ = POSITIVE_INFINITY; + this.__views__ = null; + } - if (support.enumPrototypes) { - __p += '\n var skipProto = typeof iterable == \'function\';\n '; - } + /** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */ + function lazyClone() { + var actions = this.__actions__, + iteratees = this.__iteratees__, + views = this.__views__, + result = new LazyWrapper(this.__wrapped__); + + result.__actions__ = actions ? arrayCopy(actions) : null; + result.__dir__ = this.__dir__; + result.__filtered__ = this.__filtered__; + result.__iteratees__ = iteratees ? arrayCopy(iteratees) : null; + result.__takeCount__ = this.__takeCount__; + result.__views__ = views ? arrayCopy(views) : null; + return result; + } - if (support.enumErrorProps) { - __p += '\n var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n '; - } + /** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */ + function lazyReverse() { + if (this.__filtered__) { + var result = new LazyWrapper(this); + result.__dir__ = -1; + result.__filtered__ = true; + } else { + result = this.clone(); + result.__dir__ *= -1; + } + return result; + } - var conditions = []; if (support.enumPrototypes) { conditions.push('!(skipProto && index == "prototype")'); } if (support.enumErrorProps) { conditions.push('!(skipErrorProps && (index == "message" || index == "name"))'); } + /** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */ + function lazyValue() { + var array = this.__wrapped__.value(); + if (!isArray(array)) { + return baseWrapperValue(array, this.__actions__); + } + var dir = this.__dir__, + isRight = dir < 0, + view = getView(0, array.length, this.__views__), + start = view.start, + end = view.end, + length = end - start, + index = isRight ? end : (start - 1), + takeCount = nativeMin(length, this.__takeCount__), + iteratees = this.__iteratees__, + iterLength = iteratees ? iteratees.length : 0, + resIndex = 0, + result = []; - if (obj.useHas && obj.keys) { - __p += '\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n'; - if (conditions.length) { - __p += ' if (' + - (conditions.join(' && ')) + - ') {\n '; - } - __p += - (obj.loop) + - '; '; - if (conditions.length) { - __p += '\n }'; - } - __p += '\n } '; - } else { - __p += '\n for (index in iterable) {\n'; - if (obj.useHas) { conditions.push("hasOwnProperty.call(iterable, index)"); } if (conditions.length) { - __p += ' if (' + - (conditions.join(' && ')) + - ') {\n '; - } - __p += - (obj.loop) + - '; '; - if (conditions.length) { - __p += '\n }'; - } - __p += '\n } '; - if (support.nonEnumShadows) { - __p += '\n\n if (iterable !== objectProto) {\n var ctor = iterable.constructor,\n isProto = iterable === (ctor && ctor.prototype),\n className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n nonEnum = nonEnumProps[className];\n '; - for (k = 0; k < 7; k++) { - __p += '\n index = \'' + - (obj.shadowedProps[k]) + - '\';\n if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))'; - if (!obj.useHas) { - __p += ' || (!nonEnum[index] && iterable[index] !== objectProto[index])'; - } - __p += ') {\n ' + - (obj.loop) + - ';\n } '; - } - __p += '\n } '; - } + outer: + while (length-- && resIndex < takeCount) { + index += dir; - } + var iterIndex = -1, + value = array[index]; - if (obj.array || support.nonEnumArgs) { - __p += '\n}'; - } - __p += - (obj.bottom) + - ';\nreturn result'; + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], + iteratee = data.iteratee, + type = data.type; - return __p - }; + if (type == LAZY_DROP_WHILE_FLAG) { + if (data.done && (isRight ? (index > data.index) : (index < data.index))) { + data.count = 0; + data.done = false; + } + data.index = index; + if (!data.done) { + var limit = data.limit; + if (!(data.done = limit > -1 ? (data.count++ >= limit) : !iteratee(value))) { + continue outer; + } + } + } else { + var computed = iteratee(value); + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + } + result[resIndex++] = value; + } + return result; + } - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ /** - * The base implementation of `_.bind` that creates the bound function and - * sets its meta data. + * + * Creates a cache object to store unique values. * * @private - * @param {Array} bindData The bind data array. - * @returns {Function} Returns the new bound function. + * @param {Array} [values] The values to cache. */ - function baseBind(bindData) { - var func = bindData[0], - partialArgs = bindData[2], - thisArg = bindData[4]; - - function bound() { - // `Function#bind` spec - // http://es5.github.io/#x15.3.4.5 - if (partialArgs) { - var args = partialArgs.slice(); - push.apply(args, arguments); - } - // mimic the constructor's `return` behavior - // http://es5.github.io/#x13.2.2 - if (this instanceof bound) { - // ensure `new bound` is an instance of `func` - var thisBinding = baseCreate(func.prototype), - result = func.apply(thisBinding, args || arguments); - return isObject(result) ? result : thisBinding; - } - return func.apply(thisArg, args || arguments); + function SetCache(values) { + var length = values ? values.length : 0; + + this.data = { 'hash': nativeCreate(null), 'set': new Set }; + while (length--) { + this.push(values[length]); } - setBindData(bound, bindData); - return bound; } /** - * The base implementation of `_.clone` without argument juggling or support - * for `thisArg` binding. + * Checks if `value` is in `cache` mimicking the return signature of + * `_.indexOf` by returning `0` if the value is found, else `-1`. * * @private - * @param {*} value The value to clone. - * @param {boolean} [isDeep=false] Specify a deep clone. - * @param {Function} [callback] The function to customize cloning values. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates clones with source counterparts. - * @returns {*} Returns the cloned value. + * @param {Object} cache The cache to search. + * @param {*} value The value to search for. + * @returns {number} Returns `0` if `value` is found, else `-1`. */ - function baseClone(value, isDeep, callback, stackA, stackB) { - if (callback) { - var result = callback(value); - if (typeof result != 'undefined') { - return result; - } - } - // inspect [[Class]] - var isObj = isObject(value); - if (isObj) { - var className = toString.call(value); - if (!cloneableClasses[className] || (!support.nodeClass && isNode(value))) { - return value; - } - var ctor = ctorByClass[className]; - switch (className) { - case boolClass: - case dateClass: - return new ctor(+value); - - case numberClass: - case stringClass: - return new ctor(value); - - case regexpClass: - result = ctor(value.source, reFlags.exec(value)); - result.lastIndex = value.lastIndex; - return result; - } - } else { - return value; - } - var isArr = isArray(value); - if (isDeep) { - // check for circular references and return corresponding clone - var initedStack = !stackA; - stackA || (stackA = getArray()); - stackB || (stackB = getArray()); - - var length = stackA.length; - while (length--) { - if (stackA[length] == value) { - return stackB[length]; - } - } - result = isArr ? ctor(value.length) : {}; - } - else { - result = isArr ? slice(value) : assign({}, value); - } - // add array properties assigned by `RegExp#exec` - if (isArr) { - if (hasOwnProperty.call(value, 'index')) { - result.index = value.index; - } - if (hasOwnProperty.call(value, 'input')) { - result.input = value.input; - } - } - // exit for shallow clone - if (!isDeep) { - return result; - } - // add the source value to the stack of traversed objects - // and associate it with its clone - stackA.push(value); - stackB.push(result); + function cacheIndexOf(cache, value) { + var data = cache.data, + result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - // recursively populate clone (susceptible to call stack limits) - (isArr ? baseEach : forOwn)(value, function(objValue, key) { - result[key] = baseClone(objValue, isDeep, callback, stackA, stackB); - }); + return result ? 0 : -1; + } - if (initedStack) { - releaseArray(stackA); - releaseArray(stackB); + /** + * Adds `value` to the cache. + * + * @private + * @name push + * @memberOf SetCache + * @param {*} value The value to cache. + */ + function cachePush(value) { + var data = this.data; + if (typeof value == 'string' || isObject(value)) { + data.set.add(value); + } else { + data.hash[value] = true; } - return result; } + /*------------------------------------------------------------------------*/ + /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. + * Copies the values of `source` to `array`. * * @private - * @param {Object} prototype The object to inherit from. - * @returns {Object} Returns the new object. + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. */ - function baseCreate(prototype, properties) { - return isObject(prototype) ? nativeCreate(prototype) : {}; - } - // fallback for browsers without `Object.create` - if (!nativeCreate) { - baseCreate = (function() { - function Object() {} - return function(prototype) { - if (isObject(prototype)) { - Object.prototype = prototype; - var result = new Object; - Object.prototype = null; - } - return result || root.Object(); - }; - }()); + function arrayCopy(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; } /** - * The base implementation of `_.createCallback` without support for creating - * "_.pluck" or "_.where" style callbacks. + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands and `this` binding. * * @private - * @param {*} [func=identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of the created callback. - * @param {number} [argCount] The number of arguments the callback accepts. - * @returns {Function} Returns a callback function. + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. */ - function baseCreateCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - // exit early for no `thisArg` or already bound by `Function#bind` - if (typeof thisArg == 'undefined' || !('prototype' in func)) { - return func; - } - var bindData = func.__bindData__; - if (typeof bindData == 'undefined') { - if (support.funcNames) { - bindData = !func.name; - } - bindData = bindData || !support.funcDecomp; - if (!bindData) { - var source = fnToString.call(func); - if (!support.funcNames) { - bindData = !reFuncName.test(source); - } - if (!bindData) { - // checks if `func` references the `this` keyword and stores the result - bindData = reThis.test(source); - setBindData(func, bindData); - } + function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; } } - // exit early if there are no `this` references or `func` is bound - if (bindData === false || (bindData !== true && bindData[1] & 1)) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 2: return function(a, b) { - return func.call(thisArg, a, b); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - } - return bind(func, thisArg); + return array; } /** - * The base implementation of `createWrapper` that creates the wrapper and - * sets its meta data. + * A specialized version of `_.every` for arrays without support for callback + * shorthands and `this` binding. * * @private - * @param {Array} bindData The bind data array. - * @returns {Function} Returns the new function. + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. */ - function baseCreateWrapper(bindData) { - var func = bindData[0], - bitmask = bindData[1], - partialArgs = bindData[2], - partialRightArgs = bindData[3], - thisArg = bindData[4], - arity = bindData[5]; - - var isBind = bitmask & 1, - isBindKey = bitmask & 2, - isCurry = bitmask & 4, - isCurryBound = bitmask & 8, - key = func; - - function bound() { - var thisBinding = isBind ? thisArg : this; - if (partialArgs) { - var args = partialArgs.slice(); - push.apply(args, arguments); - } - if (partialRightArgs || isCurry) { - args || (args = slice(arguments)); - if (partialRightArgs) { - push.apply(args, partialRightArgs); - } - if (isCurry && args.length < arity) { - bitmask |= 16 & ~32; - return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]); - } - } - args || (args = arguments); - if (isBindKey) { - func = thisBinding[key]; - } - if (this instanceof bound) { - thisBinding = baseCreate(func.prototype); - var result = func.apply(thisBinding, args); - return isObject(result) ? result : thisBinding; + function arrayEvery(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; } - return func.apply(thisBinding, args); } - setBindData(bound, bindData); - return bound; + return true; } /** - * The base implementation of `_.difference` that accepts a single array - * of values to exclude. + * A specialized version of `_.filter` for arrays without support for callback + * shorthands and `this` binding. * * @private - * @param {Array} array The array to process. - * @param {Array} [values] The array of values to exclude. - * @returns {Array} Returns a new array of filtered values. + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. */ - function baseDifference(array, values) { + function arrayFilter(array, predicate) { var index = -1, - indexOf = getIndexOf(), - length = array ? array.length : 0, - isLarge = length >= largeArraySize && indexOf === baseIndexOf, + length = array.length, + resIndex = -1, result = []; - if (isLarge) { - var cache = createCache(values); - if (cache) { - indexOf = cacheIndexOf; - values = cache; - } else { - isLarge = false; - } - } while (++index < length) { var value = array[index]; - if (indexOf(values, value) < 0) { - result.push(value); + if (predicate(value, index, array)) { + result[++resIndex] = value; } } - if (isLarge) { - releaseObject(values); + return result; + } + + /** + * A specialized version of `_.map` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); } return result; } /** - * The base implementation of `_.flatten` without support for callback - * shorthands or `thisArg` binding. + * A specialized version of `_.reduce` for arrays without support for callback + * shorthands and `this` binding. * * @private - * @param {Array} array The array to flatten. - * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level. - * @param {boolean} [isStrict=false] A flag to restrict flattening to arrays and `arguments` objects. - * @param {number} [fromIndex=0] The index to start from. - * @returns {Array} Returns a new flattened array. + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initFromArray] Specify using the first element of `array` + * as the initial value. + * @returns {*} Returns the accumulated value. */ - function baseFlatten(array, isShallow, isStrict, fromIndex) { - var index = (fromIndex || 0) - 1, - length = array ? array.length : 0, - result = []; + function arrayReduce(array, iteratee, accumulator, initFromArray) { + var index = -1, + length = array.length; + if (initFromArray && length) { + accumulator = array[++index]; + } while (++index < length) { - var value = array[index]; + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } - if (value && typeof value == 'object' && typeof value.length == 'number' - && (isArray(value) || isArguments(value))) { - // recursively flatten arrays (susceptible to call stack limits) - if (!isShallow) { - value = baseFlatten(value, isShallow, isStrict); - } - var valIndex = -1, - valLength = value.length, - resIndex = result.length; + /** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array.length; - result.length += valLength; - while (++valIndex < valLength) { - result[resIndex++] = value[valIndex]; - } - } else if (!isStrict) { - result.push(value); + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; } } - return result; + return false; } /** - * The base implementation of `_.isEqual`, without support for `thisArg` binding, - * that allows partial "_.where" style comparisons. + * A specialized version of `_.assign` for customizing assigned values without + * support for argument juggling, multiple sources, and `this` binding `customizer` + * functions. * * @private - * @param {*} a The value to compare. - * @param {*} b The other value to compare. - * @param {Function} [callback] The function to customize comparing values. - * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons. - * @param {Array} [stackA=[]] Tracks traversed `a` objects. - * @param {Array} [stackB=[]] Tracks traversed `b` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. */ - function baseIsEqual(a, b, callback, isWhere, stackA, stackB) { - // used to indicate that when comparing objects, `a` has at least the properties of `b` - if (callback) { - var result = callback(a, b); - if (typeof result != 'undefined') { - return !!result; + function assignWith(object, source, customizer) { + var index = -1, + props = keys(source), + length = props.length; + + while (++index < length) { + var key = props[index], + value = object[key], + result = customizer(value, source[key], key, object, source); + + if ((result === result ? (result !== value) : (value === value)) || + (value === undefined && !(key in object))) { + object[key] = result; } } - // exit early for identical values - if (a === b) { - // treat `+0` vs. `-0` as not equal - return a !== 0 || (1 / a == 1 / b); + return object; + } + + /** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ + function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; } - var type = typeof a, - otherType = typeof b; + return object; + } - // exit early for unlike primitive values - if (a === a && - !(a && objectTypes[type]) && - !(b && objectTypes[otherType])) { - return false; + /** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); } - // exit early for `null` and `undefined` avoiding ES3's Function#call behavior - // http://es5.github.io/#x15.3.4.4 - if (a == null || b == null) { - return a === b; + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); } - // compare [[Class]] names - var className = toString.call(a), - otherClass = toString.call(b); + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); + } - if (className == argsClass) { - className = objectClass; + /** + * The base implementation of `_.clone` without support for argument juggling + * and `this` binding `customizer` functions. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The object `value` belongs to. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates clones with source counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { + var result; + if (customizer) { + result = object ? customizer(value, key, object) : customizer(value); } - if (otherClass == argsClass) { - otherClass = objectClass; + if (result !== undefined) { + return result; } - if (className != otherClass) { - return false; + if (!isObject(value)) { + return value; } - switch (className) { - case boolClass: - case dateClass: - // coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal - return +a == +b; - - case numberClass: - // treat `NaN` vs. `NaN` as equal - return (a != +a) - ? b != +b - // but treat `+0` vs. `-0` as not equal - : (a == 0 ? (1 / a == 1 / b) : a == +b); - - case regexpClass: - case stringClass: - // coerce regexes to strings (http://es5.github.io/#x15.10.6.4) - // treat string primitives and their corresponding object instances as equal - return a == String(b); - } - var isArr = className == arrayClass; - if (!isArr) { - // unwrap any `lodash` wrapped values - var aWrapped = hasOwnProperty.call(a, '__wrapped__'), - bWrapped = hasOwnProperty.call(b, '__wrapped__'); - - if (aWrapped || bWrapped) { - return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB); - } - // exit for functions and DOM nodes - if (className != objectClass || (!support.nodeClass && (isNode(a) || isNode(b)))) { - return false; + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return arrayCopy(value, result); } - // in older versions of Opera, `arguments` objects have `Array` constructors - var ctorA = !support.argsObject && isArguments(a) ? Object : a.constructor, - ctorB = !support.argsObject && isArguments(b) ? Object : b.constructor; - - // non `Object` object instances with different constructors are not equal - if (ctorA != ctorB && - !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) && - ('constructor' in a && 'constructor' in b) - ) { - return false; + } else { + var tag = objToString.call(value), + isFunc = tag == funcTag; + + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + if (isHostObject(value)) { + return object ? value : {}; + } + result = initCloneObject(isFunc ? {} : value); + if (!isDeep) { + return baseAssign(result, value); + } + } else { + return cloneableTags[tag] + ? initCloneByTag(value, tag, isDeep) + : (object ? value : {}); } } - // assume cyclic structures are equal - // the algorithm for detecting cyclic structures is adapted from ES 5.1 - // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3) - var initedStack = !stackA; - stackA || (stackA = getArray()); - stackB || (stackB = getArray()); + // Check for circular references and return corresponding clone. + stackA || (stackA = []); + stackB || (stackB = []); var length = stackA.length; while (length--) { - if (stackA[length] == a) { - return stackB[length] == b; + if (stackA[length] == value) { + return stackB[length]; } } - var size = 0; - result = true; - - // add `a` and `b` to the stack of traversed objects - stackA.push(a); - stackB.push(b); - - // recursively compare objects and arrays (susceptible to call stack limits) - if (isArr) { - length = a.length; - size = b.length; - - // compare lengths to determine if a deep comparison is necessary - result = size == a.length; - if (!result && !isWhere) { - return result; - } - // deep compare the contents, ignoring non-numeric properties - while (size--) { - var index = length, - value = b[size]; + // Add the source value to the stack of traversed objects and associate it with its clone. + stackA.push(value); + stackB.push(result); - if (isWhere) { - while (index--) { - if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) { - break; - } - } - } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) { - break; - } - } - return result; - } - // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys` - // which, in this case, is more costly - forIn(b, function(value, key, b) { - if (hasOwnProperty.call(b, key)) { - // count the number of properties. - size++; - // deep compare each property value. - return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB)); - } + // Recursively populate clone (susceptible to call stack limits). + (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { + result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); }); - - if (result && !isWhere) { - // ensure both objects have the same number of properties - forIn(a, function(value, key, a) { - if (hasOwnProperty.call(a, key)) { - // `size` will be `-1` if `a` has more properties than `b` - return (result = --size > -1); - } - }); - } - if (initedStack) { - releaseArray(stackA); - releaseArray(stackB); - } return result; } /** - * The base implementation of `_.merge` without argument juggling or support - * for `thisArg` binding. + * The base implementation of `_.create` without support for assigning + * properties to the created object. * * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {Function} [callback] The function to customize merging properties. - * @param {Array} [stackA=[]] Tracks traversed source objects. - * @param {Array} [stackB=[]] Associates values with source counterparts. + * @param {Object} prototype The object to inherit from. + * @returns {Object} Returns the new object. */ - function baseMerge(object, source, callback, stackA, stackB) { - (isArray(source) ? forEach : forOwn)(source, function(source, key) { - var found, - isArr, - result = source, - value = object[key]; - - if (source && ((isArr = isArray(source)) || isPlainObject(source))) { - // avoid merging previously merged cyclic sources - var stackLength = stackA.length; - while (stackLength--) { - if ((found = stackA[stackLength] == source)) { - value = stackB[stackLength]; - break; - } - } - if (!found) { - var isShallow; - if (callback) { - result = callback(value, source); - if ((isShallow = typeof result != 'undefined')) { - value = result; - } - } - if (!isShallow) { - value = isArr - ? (isArray(value) ? value : []) - : (isPlainObject(value) ? value : {}); - } - // add `source` and associated `value` to the stack of traversed objects - stackA.push(source); - stackB.push(value); - - // recursively merge objects and arrays (susceptible to call stack limits) - if (!isShallow) { - baseMerge(value, source, callback, stackA, stackB); - } - } - } - else { - if (callback) { - result = callback(value, source); - if (typeof result == 'undefined') { - result = source; - } - } - if (typeof result != 'undefined') { - value = result; - } + var baseCreate = (function() { + function object() {} + return function(prototype) { + if (isObject(prototype)) { + object.prototype = prototype; + var result = new object; + object.prototype = null; } - object[key] = value; - }); - } + return result || {}; + }; + }()); /** - * The base implementation of `_.uniq` without support for callback shorthands - * or `thisArg` binding. + * The base implementation of `_.difference` which accepts a single array + * of values to exclude. * * @private - * @param {Array} array The array to process. - * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted. - * @param {Function} [callback] The function called per iteration. - * @returns {Array} Returns a duplicate-value-free array. + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @returns {Array} Returns the new array of filtered values. */ - function baseUniq(array, isSorted, callback) { - var index = -1, - indexOf = getIndexOf(), - length = array ? array.length : 0, + function baseDifference(array, values) { + var length = array ? array.length : 0, result = []; - var isLarge = !isSorted && length >= largeArraySize && indexOf === baseIndexOf, - seen = (callback || isLarge) ? getArray() : result; + if (!length) { + return result; + } + var index = -1, + indexOf = getIndexOf(), + isCommon = indexOf == baseIndexOf, + cache = (isCommon && values.length >= 200) ? createCache(values) : null, + valuesLength = values.length; - if (isLarge) { - var cache = createCache(seen); - if (cache) { - indexOf = cacheIndexOf; - seen = cache; - } else { - isLarge = false; - seen = callback ? seen : (releaseArray(seen), result); - } + if (cache) { + indexOf = cacheIndexOf; + isCommon = false; + values = cache; } + outer: while (++index < length) { - var value = array[index], - computed = callback ? callback(value, index, array) : value; + var value = array[index]; - if (isSorted - ? !index || seen[seen.length - 1] !== computed - : indexOf(seen, computed) < 0 - ) { - if (callback || isLarge) { - seen.push(computed); + if (isCommon && value === value) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === value) { + continue outer; + } } result.push(value); } - } - if (isLarge) { - releaseArray(seen.array); - releaseObject(seen); - } else if (callback) { - releaseArray(seen); + else if (indexOf(values, value, 0) < 0) { + result.push(value); + } } return result; } /** - * Creates a function that aggregates a collection, creating an object composed - * of keys generated from the results of running each element of the collection - * through a callback. The given `setter` function sets the keys and values - * of the composed object. + * The base implementation of `_.forEach` without support for callback + * shorthands and `this` binding. * * @private - * @param {Function} setter The setter function. - * @returns {Function} Returns the new aggregator function. + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object|string} Returns `collection`. */ - function createAggregator(setter) { - return function(collection, callback, thisArg) { - var result = {}; - callback = lodash.createCallback(callback, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; + var baseEach = createBaseEach(baseForOwn); - while (++index < length) { - var value = collection[index]; - setter(result, value, callback(value, index, collection), collection); - } - } else { - baseEach(collection, function(value, key, collection) { - setter(result, value, callback(value, key, collection), collection); - }); - } + /** + * The base implementation of `_.every` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); return result; - }; + }); + return result; } /** - * Creates a function that, when called, either curries or invokes `func` - * with an optional `this` binding and partially applied arguments. + * The base implementation of `_.filter` without support for callback + * shorthands and `this` binding. * * @private - * @param {Function|string} func The function or method name to reference. - * @param {number} bitmask The bitmask of method flags to compose. - * The bitmask may be composed of the following flags: - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` - * 8 - `_.curry` (bound) - * 16 - `_.partial` - * 32 - `_.partialRight` - * @param {Array} [partialArgs] An array of arguments to prepend to those - * provided to the new function. - * @param {Array} [partialRightArgs] An array of arguments to append to those - * provided to the new function. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new function. + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. */ - function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) { - var isBind = bitmask & 1, - isBindKey = bitmask & 2, - isCurry = bitmask & 4, - isCurryBound = bitmask & 8, - isPartial = bitmask & 16, - isPartialRight = bitmask & 32; - - if (!isBindKey && !isFunction(func)) { - throw new TypeError; - } - if (isPartial && !partialArgs.length) { - bitmask &= ~16; - isPartial = partialArgs = false; - } - if (isPartialRight && !partialRightArgs.length) { - bitmask &= ~32; - isPartialRight = partialRightArgs = false; - } - var bindData = func && func.__bindData__; - if (bindData && bindData !== true) { - bindData = bindData.slice(); - - // set `thisBinding` is not previously bound - if (isBind && !(bindData[1] & 1)) { - bindData[4] = thisArg; - } - // set if previously bound but not currently (subsequent curried functions) - if (!isBind && bindData[1] & 1) { - bitmask |= 8; - } - // set curried arity if not yet set - if (isCurry && !(bindData[1] & 4)) { - bindData[5] = arity; - } - // append partial left arguments - if (isPartial) { - push.apply(bindData[2] || (bindData[2] = []), partialArgs); - } - // append partial right arguments - if (isPartialRight) { - push.apply(bindData[3] || (bindData[3] = []), partialRightArgs); + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); } - // merge flags - bindData[1] |= bitmask; - return createWrapper.apply(null, bindData); - } - // fast path for `_.bind` - var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper; - return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]); + }); + return result; } /** - * Creates compiled iteration functions. + * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, + * without support for callback shorthands and `this` binding, which iterates + * over `collection` using the provided `eachFunc`. * * @private - * @param {...Object} [options] The compile options object(s). - * @param {string} [options.array] Code to determine if the iterable is an array or array-like. - * @param {boolean} [options.useHas] Specify using `hasOwnProperty` checks in the object loop. - * @param {Function} [options.keys] A reference to `_.keys` for use in own property iteration. - * @param {string} [options.args] A comma separated string of iteration function arguments. - * @param {string} [options.top] Code to execute before the iteration branches. - * @param {string} [options.loop] Code to execute in the object loop. - * @param {string} [options.bottom] Code to execute after the iteration branches. - * @returns {Function} Returns the compiled function. + * @param {Array|Object|string} collection The collection to search. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @param {boolean} [retKey] Specify returning the key of the found element + * instead of the element itself. + * @returns {*} Returns the found element or its key, else `undefined`. */ - function createIterator() { - // data properties - iteratorData.shadowedProps = shadowedProps; - - // iterator options - iteratorData.array = iteratorData.bottom = iteratorData.loop = iteratorData.top = ''; - iteratorData.init = 'iterable'; - iteratorData.useHas = true; - - // merge options into a template data object - for (var object, index = 0; object = arguments[index]; index++) { - for (var key in object) { - iteratorData[key] = object[key]; + function baseFind(collection, predicate, eachFunc, retKey) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = retKey ? key : value; + return false; } - } - var args = iteratorData.args; - iteratorData.firstArg = /^[^,]+/.exec(args)[0]; - - // create the function factory - var factory = Function( - 'baseCreateCallback, errorClass, errorProto, hasOwnProperty, ' + - 'indicatorObject, isArguments, isArray, isString, keys, objectProto, ' + - 'objectTypes, nonEnumProps, stringClass, stringProto, toString', - 'return function(' + args + ') {\n' + iteratorTemplate(iteratorData) + '\n}' - ); - - // return the compiled function - return factory( - baseCreateCallback, errorClass, errorProto, hasOwnProperty, - indicatorObject, isArguments, isArray, isString, iteratorData.keys, objectProto, - objectTypes, nonEnumProps, stringClass, stringProto, toString - ); + }); + return result; } /** - * Gets the appropriate "indexOf" function. If the `_.indexOf` method is - * customized, this method returns the custom method, otherwise it returns - * the `baseIndexOf` function. + * The base implementation of `_.flatten` with added support for restricting + * flattening and specifying the start index. * * @private - * @returns {Function} Returns the "indexOf" function. + * @param {Array} array The array to flatten. + * @param {boolean} [isDeep] Specify a deep flatten. + * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. + * @returns {Array} Returns the new flattened array. */ - function getIndexOf() { - var result = (result = lodash.indexOf) === indexOf ? baseIndexOf : result; + function baseFlatten(array, isDeep, isStrict) { + var index = -1, + length = array.length, + resIndex = -1, + result = []; + + while (++index < length) { + var value = array[index]; + if (isObjectLike(value) && isArrayLike(value) && + (isStrict || isArray(value) || isArguments(value))) { + if (isDeep) { + // Recursively flatten arrays (susceptible to call stack limits). + value = baseFlatten(value, isDeep, isStrict); + } + var valIndex = -1, + valLength = value.length; + + while (++valIndex < valLength) { + result[++resIndex] = value[valIndex]; + } + } else if (!isStrict) { + result[++resIndex] = value; + } + } return result; } /** - * Sets `this` binding data on a given function. + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. * * @private - * @param {Function} func The function to set data on. - * @param {Array} value The data array to set. + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. */ - var setBindData = !defineProperty ? noop : function(func, value) { - descriptor.value = value; - defineProperty(func, '__bindData__', descriptor); - }; + var baseFor = createBaseFor(); /** - * A fallback implementation of `isPlainObject` which checks if a given value - * is an object created by the `Object` constructor, assuming objects created - * by the `Object` constructor have no inherited enumerable properties and that - * there are no `Object.prototype` extensions. + * The base implementation of `_.forIn` without support for callback + * shorthands and `this` binding. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. */ - function shimIsPlainObject(value) { - var ctor, - result; - - // avoid non Object objects, `arguments` objects, and DOM elements - if (!(value && toString.call(value) == objectClass) || - (ctor = value.constructor, isFunction(ctor) && !(ctor instanceof ctor)) || - (!support.argsClass && isArguments(value)) || - (!support.nodeClass && isNode(value))) { - return false; - } - // IE < 9 iterates inherited properties before own properties. If the first - // iterated property is an object's own property then there are no inherited - // enumerable properties. - if (support.ownLast) { - forIn(value, function(value, key, object) { - result = hasOwnProperty.call(object, key); - return false; - }); - return result !== false; - } - // In most environments an object's own properties are iterated before - // its inherited properties. If the last iterated property is an object's - // own property then there are no inherited enumerable properties. - forIn(value, function(value, key) { - result = key; - }); - return typeof result == 'undefined' || hasOwnProperty.call(value, result); + function baseForIn(object, iteratee) { + return baseFor(object, iteratee, keysIn); } - /*--------------------------------------------------------------------------*/ - /** - * Checks if `value` is an `arguments` object. + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. * - * @static - * @memberOf _ - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`. - * @example - * - * (function() { return _.isArguments(arguments); })(1, 2, 3); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. */ - function isArguments(value) { - return value && typeof value == 'object' && typeof value.length == 'number' && - toString.call(value) == argsClass || false; - } - // fallback for browsers that can't detect `arguments` objects by [[Class]] - if (!support.argsClass) { - isArguments = function(value) { - return value && typeof value == 'object' && typeof value.length == 'number' && - hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee') || false; - }; + function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); } /** - * Checks if `value` is an array. + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from those provided. * - * @static - * @memberOf _ - * @type Function - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is an array, else `false`. - * @example - * - * (function() { return _.isArray(arguments); })(); - * // => false - * - * _.isArray([1, 2, 3]); - * // => true + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the new array of filtered property names. */ - var isArray = nativeIsArray || function(value) { - return value && typeof value == 'object' && typeof value.length == 'number' && - toString.call(value) == arrayClass || false; - }; + function baseFunctions(object, props) { + var index = -1, + length = props.length, + resIndex = -1, + result = []; + + while (++index < length) { + var key = props[index]; + if (isFunction(object[key])) { + result[++resIndex] = key; + } + } + return result; + } /** - * A fallback implementation of `Object.keys` which produces an array of the - * given object's own enumerable property names. + * The base implementation of `get` without support for string paths + * and default values. * * @private - * @type Function - * @param {Object} object The object to inspect. - * @returns {Array} Returns an array of property names. + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. */ - var shimKeys = createIterator({ - 'args': 'object', - 'init': '[]', - 'top': 'if (!(objectTypes[typeof object])) return result', - 'loop': 'result.push(index)' - }); + function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + object = toObject(object); + if (pathKey !== undefined && pathKey in object) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = toObject(object)[path[index++]]; + } + return (index && index == length) ? object : undefined; + } /** - * Creates an array composed of the own enumerable property names of an object. + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. * - * @static - * @memberOf _ - * @category Objects + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag && !isHostObject(object), + othIsObj = othTag == objectTag && !isHostObject(other), + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; + } + + /** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private * @param {Object} object The object to inspect. - * @returns {Array} Returns an array of property names. - * @example + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; + } + + /** + * The base implementation of `_.map` without support for callback shorthands + * and `this` binding. * - * _.keys({ 'one': 1, 'two': 2, 'three': 3 }); - * // => ['one', 'two', 'three'] (property order is not guaranteed across environments) + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. */ - var keys = !nativeKeys ? shimKeys : function(object) { + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + object = toObject(object); + return object[key] === value && (value !== undefined || (key in object)); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; + } + + /** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ + function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; + } + + /** + * The base implementation of `_.merge` without support for argument juggling, + * multiple sources, and `this` binding `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {Function} [customizer] The function to customize merging properties. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates values with source counterparts. + * @returns {Object} Returns `object`. + */ + function baseMerge(object, source, customizer, stackA, stackB) { if (!isObject(object)) { - return []; + return object; } - if ((support.enumPrototypes && typeof object == 'function') || - (support.nonEnumArgs && object.length && isArguments(object))) { - return shimKeys(object); + var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)), + props = isSrcArr ? null : keys(source); + + arrayEach(props || source, function(srcValue, key) { + if (props) { + key = srcValue; + srcValue = source[key]; + } + if (isObjectLike(srcValue)) { + stackA || (stackA = []); + stackB || (stackB = []); + baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB); + } + else { + var value = object[key], + result = customizer ? customizer(value, srcValue, key, object, source) : undefined, + isCommon = result === undefined; + + if (isCommon) { + result = srcValue; + } + if ((result !== undefined || (isSrcArr && !(key in object))) && + (isCommon || (result === result ? (result !== value) : (value === value)))) { + object[key] = result; + } + } + }); + return object; + } + + /** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize merging properties. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates values with source counterparts. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) { + var length = stackA.length, + srcValue = source[key]; + + while (length--) { + if (stackA[length] == srcValue) { + object[key] = stackB[length]; + return; + } } - return nativeKeys(object); - }; + var value = object[key], + result = customizer ? customizer(value, srcValue, key, object, source) : undefined, + isCommon = result === undefined; - /** Reusable iterator options shared by `each`, `forIn`, and `forOwn` */ - var eachIteratorOptions = { - 'args': 'collection, callback, thisArg', - 'top': "callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)", - 'array': "typeof length == 'number'", - 'keys': keys, - 'loop': 'if (callback(iterable[index], index, collection) === false) return result' - }; + if (isCommon) { + result = srcValue; + if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) { + result = isArray(value) + ? value + : (isArrayLike(value) ? arrayCopy(value) : []); + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + result = isArguments(value) + ? toPlainObject(value) + : (isPlainObject(value) ? value : {}); + } + else { + isCommon = false; + } + } + // Add the source value to the stack of traversed objects and associate + // it with its merged value. + stackA.push(srcValue); + stackB.push(result); - /** Reusable iterator options for `assign` and `defaults` */ - var defaultsIteratorOptions = { - 'args': 'object, source, guard', - 'top': - 'var args = arguments,\n' + - ' argsIndex = 0,\n' + - " argsLength = typeof guard == 'number' ? 2 : args.length;\n" + - 'while (++argsIndex < argsLength) {\n' + - ' iterable = args[argsIndex];\n' + - ' if (iterable && objectTypes[typeof iterable]) {', - 'keys': keys, - 'loop': "if (typeof result[index] == 'undefined') result[index] = iterable[index]", - 'bottom': ' }\n}' - }; + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB); + } else if (result === result ? (result !== value) : (value === value)) { + object[key] = result; + } + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : toObject(object)[key]; + }; + } + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ + function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight` without support + * for callback shorthands and `this` binding, which iterates over `collection` + * using the provided `eachFunc`. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initFromCollection Specify using the first or last element + * of `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initFromCollection, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initFromCollection + ? (initFromCollection = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } - /** Reusable iterator options for `forIn` and `forOwn` */ - var forOwnIteratorOptions = { - 'top': 'if (!objectTypes[typeof iterable]) return result;\n' + eachIteratorOptions.top, - 'array': false + /** + * The base implementation of `setData` without support for hot loop detection. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; }; /** - * A function compiled to iterate `arguments` objects, arrays, objects, and - * strings consistenly across environments, executing the callback for each - * element in the collection. The callback is bound to `thisArg` and invoked - * with three arguments; (value, index|key, collection). Callbacks may exit - * iteration early by explicitly returning `false`. + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * The base implementation of `_.some` without support for callback shorthands + * and `this` binding. * * @private - * @type Function * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array|Object|string} Returns `collection`. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. */ - var baseEach = createIterator(eachIteratorOptions); + function baseSome(collection, predicate) { + var result; - /*--------------------------------------------------------------------------*/ + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `_.uniq` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The function invoked per iteration. + * @returns {Array} Returns the new duplicate-value-free array. + */ + function baseUniq(array, iteratee) { + var index = -1, + indexOf = getIndexOf(), + length = array.length, + isCommon = indexOf == baseIndexOf, + isLarge = isCommon && length >= 200, + seen = isLarge ? createCache() : null, + result = []; + + if (seen) { + indexOf = cacheIndexOf; + isCommon = false; + } else { + isLarge = false; + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value, index, array) : value; + + if (isCommon && value === value) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (indexOf(seen, computed, 0) < 0) { + if (iteratee || isLarge) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + var index = -1, + length = props.length, + result = Array(length); + + while (++index < length) { + result[index] = object[props[index]]; + } + return result; + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to peform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + if (result instanceof LazyWrapper) { + result = result.value(); + } + var index = -1, + length = actions.length; + + while (++index < length) { + var args = [result], + action = actions[index]; + + push.apply(args, action.args); + result = action.func.apply(action.thisArg, args); + } + return result; + } + + /** + * Performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function binaryIndex(array, value, retHighest) { + var low = 0, + high = array ? array.length : low; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if ((retHighest ? (computed <= value) : (computed < value)) && computed !== null) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return binaryIndexBy(array, value, identity, retHighest); + } + + /** + * This function is like `binaryIndex` except that it invokes `iteratee` for + * `value` and each element of `array` to compute their sort ranking. The + * iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The function invoked per iteration. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function binaryIndexBy(array, value, iteratee, retHighest) { + value = iteratee(value); + + var low = 0, + high = array ? array.length : 0, + valIsNaN = value !== value, + valIsNull = value === null, + valIsUndef = value === undefined; + + while (low < high) { + var mid = floor((low + high) / 2), + computed = iteratee(array[mid]), + isDef = computed !== undefined, + isReflexive = computed === computed; + + if (valIsNaN) { + var setLow = isReflexive || retHighest; + } else if (valIsNull) { + setLow = isReflexive && isDef && (retHighest || computed != null); + } else if (valIsUndef) { + setLow = isReflexive && (retHighest || isDef); + } else if (computed == null) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + + /** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; + } + + /** + * Creates a clone of the given array buffer. + * + * @private + * @param {ArrayBuffer} buffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function bufferClone(buffer) { + return bufferSlice.call(buffer, 0); + } + if (!bufferSlice) { + // PhantomJS has `ArrayBuffer` and `Uint8Array` but not `Float64Array`. + bufferClone = !(ArrayBuffer && Uint8Array) ? constant(null) : function(buffer) { + var byteLength = buffer.byteLength, + floatLength = Float64Array ? floor(byteLength / FLOAT64_BYTES_PER_ELEMENT) : 0, + offset = floatLength * FLOAT64_BYTES_PER_ELEMENT, + result = new ArrayBuffer(byteLength); + + if (floatLength) { + var view = new Float64Array(result, 0, floatLength); + view.set(new Float64Array(buffer, 0, floatLength)); + } + if (byteLength != offset) { + view = new Uint8Array(result, offset); + view.set(new Uint8Array(buffer, offset)); + } + return result; + }; + } + + /** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgs(args, partials, holders) { + var holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + leftIndex = -1, + leftLength = partials.length, + result = Array(argsLength + leftLength); + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + while (argsLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; + } + + /** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgsRight(args, partials, holders) { + var holdersIndex = -1, + holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + rightIndex = -1, + rightLength = partials.length, + result = Array(argsLength + rightLength); + + while (++argsIndex < argsLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + return result; + } + + /** + * Creates a function that aggregates a collection, creating an accumulator + * object composed from the results of running each element in the collection + * through an iteratee. + * + * **Note:** This function is used to create `_.countBy`, `_.groupBy`, `_.indexBy`, + * and `_.partition`. + * + * @private + * @param {Function} setter The function to set keys and values of the accumulator object. + * @param {Function} [initializer] The function to initialize the accumulator object. + * @returns {Function} Returns the new aggregator function. + */ + function createAggregator(setter, initializer) { + return function(collection, iteratee, thisArg) { + var result = initializer ? initializer() : {}; + iteratee = getCallback(iteratee, thisArg, 3); + + if (isArray(collection)) { + var index = -1, + length = collection.length; + + while (++index < length) { + var value = collection[index]; + setter(result, value, iteratee(value, index, collection), collection); + } + } else { + baseEach(collection, function(value, key, collection) { + setter(result, value, iteratee(value, key, collection), collection); + }); + } + return result; + }; + } + + /** + * Creates a function that assigns properties of source object(s) to a given + * destination object. + * + * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return restParam(function(object, sources) { + var index = -1, + length = object == null ? 0 : sources.length, + customizer = length > 2 ? sources[length - 2] : undefined, + guard = length > 2 ? sources[2] : undefined, + thisArg = length > 1 ? sources[length - 1] : undefined; + + if (typeof customizer == 'function') { + customizer = bindCallback(customizer, thisArg, 5); + length -= 2; + } else { + customizer = typeof thisArg == 'function' ? thisArg : undefined; + length -= (customizer ? 1 : 0); + } + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + return eachFunc(collection, iteratee); + } + var index = fromRight ? length : -1, + iterable = toObject(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that wraps `func` and invokes it with the `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new bound function. + */ + function createBindWrapper(func, thisArg) { + var Ctor = createCtorWrapper(func); + + function wrapper() { + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(thisArg, arguments); + } + return wrapper; + } + + /** + * Creates a `Set` cache object to optimize linear searches of large arrays. + * + * @private + * @param {Array} [values] The values to cache. + * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. + */ + var createCache = !(nativeCreate && Set) ? constant(null) : function(values) { + return new SetCache(values); + }; + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtorWrapper(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. + // See https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new find function. + */ + function createFind(eachFunc, fromRight) { + return function(collection, predicate, thisArg) { + predicate = getCallback(predicate, thisArg, 3); + if (isArray(collection)) { + var index = baseFindIndex(collection, predicate, fromRight); + return index > -1 ? collection[index] : undefined; + } + return baseFind(collection, predicate, eachFunc); + }; + } + + /** + * Creates a function for `_.forEach` or `_.forEachRight`. + * + * @private + * @param {Function} arrayFunc The function to iterate over an array. + * @param {Function} eachFunc The function to iterate over a collection. + * @returns {Function} Returns the new each function. + */ + function createForEach(arrayFunc, eachFunc) { + return function(collection, iteratee, thisArg) { + return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) + ? arrayFunc(collection, iteratee) + : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); + }; + } + + /** + * Creates a function for `_.forOwn` or `_.forOwnRight`. + * + * @private + * @param {Function} objectFunc The function to iterate over an object. + * @returns {Function} Returns the new each function. + */ + function createForOwn(objectFunc) { + return function(object, iteratee, thisArg) { + if (typeof iteratee != 'function' || thisArg !== undefined) { + iteratee = bindCallback(iteratee, thisArg, 3); + } + return objectFunc(object, iteratee); + }; + } + + /** + * Creates a function for `_.reduce` or `_.reduceRight`. + * + * @private + * @param {Function} arrayFunc The function to iterate over an array. + * @param {Function} eachFunc The function to iterate over a collection. + * @returns {Function} Returns the new each function. + */ + function createReduce(arrayFunc, eachFunc) { + return function(collection, iteratee, accumulator, thisArg) { + var initFromArray = arguments.length < 3; + return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) + ? arrayFunc(collection, iteratee, accumulator, initFromArray) + : baseReduce(collection, getCallback(iteratee, thisArg, 4), accumulator, initFromArray, eachFunc); + }; + } + + /** + * Creates a function that wraps `func` and invokes it with optional `this` + * binding of, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & ARY_FLAG, + isBind = bitmask & BIND_FLAG, + isBindKey = bitmask & BIND_KEY_FLAG, + isCurry = bitmask & CURRY_FLAG, + isCurryBound = bitmask & CURRY_BOUND_FLAG, + isCurryRight = bitmask & CURRY_RIGHT_FLAG, + Ctor = isBindKey ? null : createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it to other functions. + var length = arguments.length, + index = length, + args = Array(length); + + while (index--) { + args[index] = arguments[index]; + } + if (partials) { + args = composeArgs(args, partials, holders); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight); + } + if (isCurry || isCurryRight) { + var placeholder = wrapper.placeholder, + argsHolders = replaceHolders(args, placeholder); + + length -= argsHolders.length; + if (length < arity) { + var newArgPos = argPos ? arrayCopy(argPos) : null, + newArity = nativeMax(arity - length, 0), + newsHolders = isCurry ? argsHolders : null, + newHoldersRight = isCurry ? null : argsHolders, + newPartials = isCurry ? args : null, + newPartialsRight = isCurry ? null : args; + + bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); + + if (!isCurryBound) { + bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); + } + var newData = [func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity], + result = createHybridWrapper.apply(undefined, newData); + + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return result; + } + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + if (argPos) { + args = reorder(args, argPos); + } + if (isAry && ary < args.length) { + args.length = ary; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtorWrapper(func); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + + /** + * Creates a function that wraps `func` and invokes it with the optional `this` + * binding of `thisArg` and the `partials` prepended to those provided to + * the wrapper. + * + * @private + * @param {Function} func The function to partially apply arguments to. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to the new function. + * @returns {Function} Returns the new bound function. + */ + function createPartialWrapper(func, bitmask, thisArg, partials) { + var isBind = bitmask & BIND_FLAG, + Ctor = createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it `func`. + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(argsLength + leftLength); + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. + * The bitmask may be composed of the following flags: + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); + partials = holders = null; + } + length -= (holders ? holders.length : 0); + if (bitmask & PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = null; + } + var data = isBindKey ? null : getData(func), + newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; + + if (data) { + mergeData(newData, data); + bitmask = newData[1]; + arity = newData[9]; + } + newData[9] = arity == null + ? (isBindKey ? 0 : func.length) + : (nativeMax(arity - length, 0) || 0); + + if (bitmask == BIND_FLAG) { + var result = createBindWrapper(newData[0], newData[2]); + } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !newData[4].length) { + result = createPartialWrapper.apply(undefined, newData); + } else { + result = createHybridWrapper.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setter(result, newData); + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} value The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; + } + + /** + * Gets the appropriate "callback" function. If the `_.callback` method is + * customized this function returns the custom method, otherwise it returns + * the `baseCallback` function. If arguments are provided the chosen function + * is invoked with them and its result is returned. + * + * @private + * @returns {Function} Returns the chosen function or its result. + */ + function getCallback(func, thisArg, argCount) { + var result = lodash.callback || callback; + result = result === callback ? baseCallback : result; + return argCount ? result(func, thisArg, argCount) : result; + } + + /** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + + /** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ + function getFuncName(func) { + var result = func.name, + array = realNames[result], + length = array ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; + } + + /** + * Gets the appropriate "indexOf" function. If the `_.indexOf` method is + * customized this function returns the custom method, otherwise it returns + * the `baseIndexOf` function. If arguments are provided the chosen function + * is invoked with them and its result is returned. + * + * @private + * @returns {Function|number} Returns the chosen function or its result. + */ + function getIndexOf(collection, target, fromIndex) { + var result = lodash.indexOf || indexOf; + result = result === indexOf ? baseIndexOf : result; + return collection ? result(collection, target, fromIndex) : result; + } + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + /** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + /** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} [transforms] The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + * positions of the view. + */ + function getView(start, end, transforms) { + var index = -1, + length = transforms ? transforms.length : 0; + + while (++index < length) { + var data = transforms[index], + size = data.size; + + switch (data.type) { + case 'drop': start += size; break; + case 'dropRight': end -= size; break; + case 'take': end = nativeMin(end, start + size); break; + case 'takeRight': start = nativeMax(start, end - size); break; + } + } + return { 'start': start, 'end': end }; + } + + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add array properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + var Ctor = object.constructor; + if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { + Ctor = Object; + } + return new Ctor; + } + + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return bufferClone(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + // Safari 5 mobile incorrectly has `Object` as the constructor of typed arrays. + if (Ctor instanceof Ctor) { + Ctor = ctorByTag[tag]; + } + var buffer = object.buffer; + return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + var result = new Ctor(object.source, reFlags.exec(object)); + result.lastIndex = object.lastIndex; + } + return result; + } + + /** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ + function isArrayLike(value) { + return value != null && isLength(getLength(value)); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; + } + + /** + * Checks if the provided arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; + } + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); + } + + /** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. + */ + function isLaziable(func) { + var funcName = getFuncName(func); + if (!(funcName in LazyWrapper.prototype)) { + return false; + } + var other = lodash[funcName]; + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + /** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers required to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` + * augment function arguments, making the order in which they are executed important, + * preventing the merging of metadata. However, we make an exception for a safe + * common case where curried functions have `_.ary` and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ + function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < ARY_FLAG; + + var isCombo = + (srcBitmask == ARY_FLAG && bitmask == CURRY_FLAG) || + (srcBitmask == ARY_FLAG && bitmask == REARG_FLAG && data[7].length <= source[8]) || + (srcBitmask == (ARY_FLAG | REARG_FLAG) && bitmask == CURRY_FLAG); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : arrayCopy(value); + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : arrayCopy(source[4]); + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : arrayCopy(value); + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : arrayCopy(source[6]); + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = arrayCopy(value); + } + // Use source `ary` if it's smaller. + if (srcBitmask & ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; + } + + /** + * A specialized version of `_.pick` which picks `object` properties specified + * by `props`. + * + * @private + * @param {Object} object The source object. + * @param {string[]} props The property names to pick. + * @returns {Object} Returns the new object. + */ + function pickByArray(object, props) { + object = toObject(object); + + var index = -1, + length = props.length, + result = {}; + + while (++index < length) { + var key = props[index]; + if (key in object) { + result[key] = object[key]; + } + } + return result; + } + + /** + * A specialized version of `_.pick` which picks `object` properties `predicate` + * returns truthy for. + * + * @private + * @param {Object} object The source object. + * @param {Function} predicate The function invoked per iteration. + * @returns {Object} Returns the new object. + */ + function pickByCallback(object, predicate) { + var result = {}; + baseForIn(object, function(value, key, object) { + if (predicate(value, key, object)) { + result[key] = value; + } + }); + return result; + } + + /** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ + function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = arrayCopy(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; + } + + /** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity function + * to avoid garbage collection pauses in V8. See [V8 issue 2070](https://code.google.com/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var setData = (function() { + var count = 0, + lastCalled = 0; + + return function(key, value) { + var stamp = now(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return key; + } + } else { + count = 0; + } + return baseSetData(key, value); + }; + }()); + + /** + * A fallback implementation of `_.isPlainObject` which checks if `value` + * is an object created by the `Object` constructor or has a `[[Prototype]]` + * of `null`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + */ + function shimIsPlainObject(value) { + var Ctor, + support = lodash.support; + + // Exit early for non `Object` objects. + if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) || + (!hasOwnProperty.call(value, 'constructor') && + (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) || + (!support.argsTag && isArguments(value))) { + return false; + } + // IE < 9 iterates inherited properties before own properties. If the first + // iterated property is an object's own property then there are no inherited + // enumerable properties. + var result; + if (support.ownLast) { + baseForIn(value, function(subValue, key, object) { + result = hasOwnProperty.call(object, key); + return false; + }); + return result !== false; + } + // In most environments an object's own properties are iterated before + // its inherited properties. If the last iterated property is an object's + // own property then there are no inherited enumerable properties. + baseForIn(value, function(subValue, key) { + result = key; + }); + return result === undefined || hasOwnProperty.call(value, result); + } + + /** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ + function toObject(value) { + if (lodash.support.unindexedChars && isString(value)) { + var index = -1, + length = value.length, + result = Object(value); + + while (++index < length) { + result[index] = value.charAt(index); + } + return result; + } + return isObject(value) ? value : Object(value); + } + + /** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ + function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + } + + /** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ + function wrapperClone(wrapper) { + return wrapper instanceof LazyWrapper + ? wrapper.clone() + : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, arrayCopy(wrapper.__actions__)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of elements split into groups the length of `size`. + * If `collection` can't be split evenly, the final chunk will be the remaining + * elements. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to process. + * @param {number} [size=1] The length of each chunk. + * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. + * @returns {Array} Returns the new array containing chunks. + * @example + * + * _.chunk(['a', 'b', 'c', 'd'], 2); + * // => [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */ + function chunk(array, size, guard) { + if (guard ? isIterateeCall(array, size, guard) : size == null) { + size = 1; + } else { + size = nativeMax(+size || 1, 1); + } + var index = 0, + length = array ? array.length : 0, + resIndex = -1, + result = Array(ceil(length / size)); + + while (index < length) { + result[++resIndex] = baseSlice(array, index, (index += size)); + } + return result; + } + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + var index = -1, + length = array ? array.length : 0, + resIndex = -1, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[++resIndex] = value; + } + } + return result; + } + + /** + * Creates an array of unique `array` values not included in the other + * provided arrays using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The arrays of values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.difference([1, 2, 3], [4, 2]); + * // => [1, 3] + */ + var difference = restParam(function(array, values) { + return isArrayLike(array) + ? baseDifference(array, baseFlatten(values, false, true)) + : []; + }); + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @alias head + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.first([1, 2, 3]); + * // => 1 + * + * _.first([]); + * // => undefined + */ + function first(array) { + return array ? array[0] : undefined; + } + + /** + * Flattens a nested array. If `isDeep` is `true` the array is recursively + * flattened, otherwise it is only flattened a single level. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to flatten. + * @param {boolean} [isDeep] Specify a deep flatten. + * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, 3, [4]]]); + * // => [1, 2, 3, [4]] + * + * // using `isDeep` + * _.flatten([1, [2, 3, [4]]], true); + * // => [1, 2, 3, 4] + */ + function flatten(array, isDeep, guard) { + var length = array ? array.length : 0; + if (guard && isIterateeCall(array, isDeep, guard)) { + isDeep = false; + } + return length ? baseFlatten(array, isDeep) : []; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `array`. If `array` is sorted providing `true` for `fromIndex` + * performs a faster binary search. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {boolean|number} [fromIndex=0] The index to search from or `true` + * to perform a binary search on a sorted array. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // using `fromIndex` + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + * + * // performing a binary search + * _.indexOf([1, 1, 2, 2], 2, true); + * // => 2 + */ + function indexOf(array, value, fromIndex) { + var length = array ? array.length : 0; + if (!length) { + return -1; + } + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else if (fromIndex) { + var index = binaryIndex(array, value), + other = array[index]; + + if (value === value ? (value === other) : (other !== other)) { + return index; + } + return -1; + } + return baseIndexOf(array, value, fromIndex || 0); + } + + /** + * Creates an array of unique values that are included in all of the provided + * arrays using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of shared values. + * @example + * _.intersection([1, 2], [4, 2], [2, 1]); + * // => [2] + */ + var intersection = restParam(function(arrays) { + var othLength = arrays.length, + othIndex = othLength, + caches = Array(length), + indexOf = getIndexOf(), + isCommon = indexOf == baseIndexOf, + result = []; + + while (othIndex--) { + var value = arrays[othIndex] = isArrayLike(value = arrays[othIndex]) ? value : []; + caches[othIndex] = (isCommon && value.length >= 120) ? createCache(othIndex && value) : null; + } + var array = arrays[0], + index = -1, + length = array ? array.length : 0, + seen = caches[0]; + + outer: + while (++index < length) { + value = array[index]; + if ((seen ? cacheIndexOf(seen, value) : indexOf(result, value, 0)) < 0) { + var othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if ((cache ? cacheIndexOf(cache, value) : indexOf(arrays[othIndex], value, 0)) < 0) { + continue outer; + } + } + if (seen) { + seen.push(value); + } + result.push(value); + } + } + return result; + }); + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; + } + + /** + * Creates an array of unique values, in order, from all of the provided arrays + * using [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([1, 2], [4, 2], [2, 1]); + * // => [1, 2, 4] + */ + var union = restParam(function(arrays) { + return baseUniq(baseFlatten(arrays, false, true)); + }); + + /** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons, in which only the first occurence of each element + * is kept. Providing `true` for `isSorted` performs a faster search algorithm + * for sorted arrays. If an iteratee function is provided it is invoked for + * each element in the array to generate the criterion by which uniqueness + * is computed. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index, array). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias unique + * @category Array + * @param {Array} array The array to inspect. + * @param {boolean} [isSorted] Specify the array is sorted. + * @param {Function|Object|string} [iteratee] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new duplicate-value-free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + * + * // using `isSorted` + * _.uniq([1, 1, 2], true); + * // => [1, 2] + * + * // using an iteratee function + * _.uniq([1, 2.5, 1.5, 2], function(n) { + * return this.floor(n); + * }, Math); + * // => [1, 2.5] + * + * // using the `_.property` callback shorthand + * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + function uniq(array, isSorted, iteratee, thisArg) { + var length = array ? array.length : 0; + if (!length) { + return []; + } + if (isSorted != null && typeof isSorted != 'boolean') { + thisArg = iteratee; + iteratee = isIterateeCall(array, isSorted, thisArg) ? null : isSorted; + isSorted = false; + } + var callback = getCallback(); + if (!(iteratee == null && callback === baseCallback)) { + iteratee = callback(iteratee, thisArg, 3); + } + return (isSorted && getIndexOf() == baseIndexOf) + ? sortedUniq(array, iteratee) + : baseUniq(array, iteratee); + } /** - * Assigns own enumerable properties of source object(s) to the destination - * object. Subsequent sources will overwrite property assignments of previous - * sources. If a callback is provided it will be executed to produce the - * assigned values. The callback is bound to `thisArg` and invoked with two - * arguments; (objectValue, sourceValue). + * Creates an array excluding all provided values using + * [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. * * @static * @memberOf _ - * @type Function - * @alias extend - * @category Objects - * @param {Object} object The destination object. - * @param {...Object} [source] The source objects. - * @param {Function} [callback] The function to customize assigning values. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns the destination object. + * @category Array + * @param {Array} array The array to filter. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. * @example * - * _.assign({ 'name': 'fred' }, { 'employer': 'slate' }); - * // => { 'name': 'fred', 'employer': 'slate' } - * - * var defaults = _.partialRight(_.assign, function(a, b) { - * return typeof a == 'undefined' ? b : a; - * }); - * - * var object = { 'name': 'barney' }; - * defaults(object, { 'name': 'fred', 'employer': 'slate' }); - * // => { 'name': 'barney', 'employer': 'slate' } + * _.without([1, 2, 1, 3], 1, 2); + * // => [3] */ - var assign = createIterator(defaultsIteratorOptions, { - 'top': - defaultsIteratorOptions.top.replace(';', - ';\n' + - "if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n" + - ' var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n' + - "} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n" + - ' callback = args[--argsLength];\n' + - '}' - ), - 'loop': 'result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]' + var without = restParam(function(array, values) { + return isArrayLike(array) + ? baseDifference(array, values) + : []; }); + /*------------------------------------------------------------------------*/ + /** - * Creates a clone of `value`. If `isDeep` is `true` nested objects will also - * be cloned, otherwise they will be assigned by reference. If a callback - * is provided it will be executed to produce the cloned values. If the - * callback returns `undefined` cloning will be handled by the method instead. - * The callback is bound to `thisArg` and invoked with one argument; (value). + * Creates a `lodash` object that wraps `value` with explicit method + * chaining enabled. * * @static * @memberOf _ - * @category Objects - * @param {*} value The value to clone. - * @param {boolean} [isDeep=false] Specify a deep clone. - * @param {Function} [callback] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the cloned value. + * @category Chain + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } * ]; * - * var shallow = _.clone(characters); - * shallow[0] === characters[0]; - * // => true - * - * var deep = _.clone(characters, true); - * deep[0] === characters[0]; - * // => false - * - * _.mixin({ - * 'clone': _.partialRight(_.clone, function(value) { - * return _.isElement(value) ? value.cloneNode(false) : undefined; + * var youngest = _.chain(users) + * .sortBy('age') + * .map(function(chr) { + * return chr.user + ' is ' + chr.age; * }) - * }); - * - * var clone = _.clone(document.body); - * clone.childNodes.length; - * // => 0 + * .first() + * .value(); + * // => 'pebbles is 1' */ - function clone(value, isDeep, callback, thisArg) { - // allows working with "Collections" methods without using their `index` - // and `collection` arguments for `isDeep` and `callback` - if (typeof isDeep != 'boolean' && isDeep != null) { - thisArg = callback; - callback = isDeep; - isDeep = false; - } - return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1)); + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; } /** - * Creates a deep clone of `value`. If a callback is provided it will be - * executed to produce the cloned values. If the callback returns `undefined` - * cloning will be handled by the method instead. The callback is bound to - * `thisArg` and invoked with one argument; (value). - * - * Note: This method is loosely based on the structured clone algorithm. Functions - * and DOM nodes are **not** cloned. The enumerable properties of `arguments` objects and - * objects created by constructors other than `Object` are cloned to plain `Object` objects. - * See http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm. + * This method invokes `interceptor` and returns `value`. The interceptor is + * bound to `thisArg` and invoked with one argument; (value). The purpose of + * this method is to "tap into" a method chain in order to perform operations + * on intermediate results within the chain. * * @static * @memberOf _ - * @category Objects - * @param {*} value The value to deep clone. - * @param {Function} [callback] The function to customize cloning values. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the deep cloned value. + * @category Chain + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @param {*} [thisArg] The `this` binding of `interceptor`. + * @returns {*} Returns `value`. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } - * ]; - * - * var deep = _.cloneDeep(characters); - * deep[0] === characters[0]; - * // => false - * - * var view = { - * 'label': 'docs', - * 'node': element - * }; - * - * var clone = _.cloneDeep(view, function(value) { - * return _.isElement(value) ? value.cloneNode(true) : undefined; - * }); - * - * clone.node == view.node; - * // => false + * _([1, 2, 3]) + * .tap(function(array) { + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] */ - function cloneDeep(value, callback, thisArg) { - return baseClone(value, true, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1)); + function tap(value, interceptor, thisArg) { + interceptor.call(thisArg, value); + return value; } /** - * Iterates over own and inherited enumerable properties of an object, - * executing the callback for each property. The callback is bound to `thisArg` - * and invoked with three arguments; (value, key, object). Callbacks may exit - * iteration early by explicitly returning `false`. + * This method is like `_.tap` except that it returns the result of `interceptor`. * * @static * @memberOf _ - * @type Function - * @category Objects - * @param {Object} object The object to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns `object`. + * @category Chain + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @param {*} [thisArg] The `this` binding of `interceptor`. + * @returns {*} Returns the result of `interceptor`. * @example * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * Shape.prototype.move = function(x, y) { - * this.x += x; - * this.y += y; - * }; - * - * _.forIn(new Shape, function(value, key) { - * console.log(key); - * }); - * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments) + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] */ - var forIn = createIterator(eachIteratorOptions, forOwnIteratorOptions, { - 'useHas': false - }); + function thru(value, interceptor, thisArg) { + return interceptor.call(thisArg, value); + } /** - * Iterates over own enumerable properties of an object, executing the callback - * for each property. The callback is bound to `thisArg` and invoked with three - * arguments; (value, key, object). Callbacks may exit iteration early by - * explicitly returning `false`. + * Enables explicit method chaining on the wrapper object. * - * @static + * @name chain * @memberOf _ - * @type Function - * @category Objects - * @param {Object} object The object to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns `object`. + * @category Chain + * @returns {Object} Returns the new `lodash` wrapper instance. * @example * - * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) { - * console.log(key); - * }); - * // => logs '0', '1', and 'length' (property order is not guaranteed across environments) + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // without explicit chaining + * _(users).first(); + * // => { 'user': 'barney', 'age': 36 } + * + * // with explicit chaining + * _(users).chain() + * .first() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } */ - var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions); + function wrapperChain() { + return chain(this); + } /** - * Creates a sorted array of property names of all enumerable properties, - * own and inherited, of `object` that have function values. + * Executes the chained sequence and returns the wrapped result. * - * @static + * @name commit * @memberOf _ - * @alias methods - * @category Objects - * @param {Object} object The object to inspect. - * @returns {Array} Returns an array of property names that have function values. + * @category Chain + * @returns {Object} Returns the new `lodash` wrapper instance. * @example * - * _.functions(_); - * // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...] + * var array = [1, 2]; + * var wrapper = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapper = wrapper.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapper.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] */ - function functions(object) { - var result = []; - forIn(object, function(value, key) { - if (isFunction(value)) { - result.push(key); - } - }); - return result.sort(); + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); } /** - * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a - * length of `0` and objects with no own enumerable properties are considered - * "empty". + * Creates a clone of the chained sequence planting `value` as the wrapped value. * - * @static + * @name plant * @memberOf _ - * @category Objects - * @param {Array|Object|string} value The value to inspect. - * @returns {boolean} Returns `true` if the `value` is empty, else `false`. + * @category Chain + * @returns {Object} Returns the new `lodash` wrapper instance. * @example * - * _.isEmpty([1, 2, 3]); - * // => false + * var array = [1, 2]; + * var wrapper = _(array).map(function(value) { + * return Math.pow(value, 2); + * }); * - * _.isEmpty({}); - * // => true + * var other = [3, 4]; + * var otherWrapper = wrapper.plant(other); * - * _.isEmpty(''); - * // => true + * otherWrapper.value(); + * // => [9, 16] + * + * wrapper.value(); + * // => [1, 4] */ - function isEmpty(value) { - var result = true; - if (!value) { - return result; - } - var className = toString.call(value), - length = value.length; - - if ((className == arrayClass || className == stringClass || - (support.argsClass ? className == argsClass : isArguments(value))) || - (className == objectClass && typeof length == 'number' && isFunction(value.splice))) { - return !length; + function wrapperPlant(value) { + var result, + parent = this; + + while (parent instanceof baseLodash) { + var clone = wrapperClone(parent); + if (result) { + previous.__wrapped__ = clone; + } else { + result = clone; + } + var previous = clone; + parent = parent.__wrapped__; } - forOwn(value, function() { - return (result = false); - }); + previous.__wrapped__ = value; return result; } /** - * Performs a deep comparison between two values to determine if they are - * equivalent to each other. If a callback is provided it will be executed - * to compare values. If the callback returns `undefined` comparisons will - * be handled by the method instead. The callback is bound to `thisArg` and - * invoked with two arguments; (a, b). + * Reverses the wrapped array so the first element becomes the last, the + * second element becomes the second to last, and so on. * - * @static + * **Note:** This method mutates the wrapped array. + * + * @name reverse * @memberOf _ - * @category Objects - * @param {*} a The value to compare. - * @param {*} b The other value to compare. - * @param {Function} [callback] The function to customize comparing values. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @category Chain + * @returns {Object} Returns the new reversed `lodash` wrapper instance. * @example * - * var object = { 'name': 'fred' }; - * var copy = { 'name': 'fred' }; + * var array = [1, 2, 3]; * - * object == copy; - * // => false - * - * _.isEqual(object, copy); - * // => true + * _(array).reverse().value() + * // => [3, 2, 1] * - * var words = ['hello', 'goodbye']; - * var otherWords = ['hi', 'goodbye']; + * console.log(array); + * // => [3, 2, 1] + */ + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + if (this.__actions__.length) { + value = new LazyWrapper(this); + } + return new LodashWrapper(value.reverse(), this.__chain__); + } + return this.thru(function(value) { + return value.reverse(); + }); + } + + /** + * Produces the result of coercing the unwrapped value to a string. * - * _.isEqual(words, otherWords, function(a, b) { - * var reGreet = /^(?:hello|hi)$/i, - * aGreet = _.isString(a) && reGreet.test(a), - * bGreet = _.isString(b) && reGreet.test(b); + * @name toString + * @memberOf _ + * @category Chain + * @returns {string} Returns the coerced string value. + * @example * - * return (aGreet || bGreet) ? (aGreet == bGreet) : undefined; - * }); - * // => true + * _([1, 2, 3]).toString(); + * // => '1,2,3' */ - function isEqual(a, b, callback, thisArg) { - return baseIsEqual(a, b, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 2)); + function wrapperToString() { + return (this.value() + ''); } /** - * Checks if `value` is a function. + * Executes the chained sequence to extract the unwrapped value. * - * @static + * @name value * @memberOf _ - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is a function, else `false`. + * @alias run, toJSON, valueOf + * @category Chain + * @returns {*} Returns the resolved unwrapped value. * @example * - * _.isFunction(_); - * // => true + * _([1, 2, 3]).value(); + * // => [1, 2, 3] */ - function isFunction(value) { - return typeof value == 'function'; - } - // fallback for older versions of Chrome and Safari - if (isFunction(/x/)) { - isFunction = function(value) { - return typeof value == 'function' && toString.call(value) == funcClass; - }; + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); } + /*------------------------------------------------------------------------*/ + /** - * Checks if `value` is the language type of Object. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * The predicate is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. * * @static * @memberOf _ - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is an object, else `false`. + * @alias all + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. * @example * - * _.isObject({}); - * // => true + * _.every([true, 1, null, 'yes'], Boolean); + * // => false * - * _.isObject([1, 2, 3]); + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // using the `_.matches` callback shorthand + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // using the `_.matchesProperty` callback shorthand + * _.every(users, 'active', false); * // => true * - * _.isObject(1); + * // using the `_.property` callback shorthand + * _.every(users, 'active'); * // => false */ - function isObject(value) { - // check if the value is the ECMAScript language type of Object - // http://es5.github.io/#x8 - // and avoid a V8 bug - // http://code.google.com/p/v8/issues/detail?id=2291 - return !!(value && objectTypes[typeof value]); + function every(collection, predicate, thisArg) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (thisArg && isIterateeCall(collection, predicate, thisArg)) { + predicate = null; + } + if (typeof predicate != 'function' || thisArg !== undefined) { + predicate = getCallback(predicate, thisArg, 3); + } + return func(collection, predicate); } /** - * Checks if `value` is an object created by the `Object` constructor. + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. * * @static * @memberOf _ - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @alias select + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Array} Returns the new filtered array. * @example * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } + * _.filter([4, 5, 6], function(n) { + * return n % 2 == 0; + * }); + * // => [4, 6] * - * _.isPlainObject(new Shape); - * // => false + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; * - * _.isPlainObject([1, 2, 3]); - * // => false + * // using the `_.matches` callback shorthand + * _.pluck(_.filter(users, { 'age': 36, 'active': true }), 'user'); + * // => ['barney'] * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true + * // using the `_.matchesProperty` callback shorthand + * _.pluck(_.filter(users, 'active', false), 'user'); + * // => ['fred'] + * + * // using the `_.property` callback shorthand + * _.pluck(_.filter(users, 'active'), 'user'); + * // => ['barney'] */ - var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { - if (!(value && toString.call(value) == objectClass) || (!support.argsClass && isArguments(value))) { - return false; - } - var valueOf = value.valueOf, - objProto = typeof valueOf == 'function' && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto); - - return objProto - ? (value == objProto || getPrototypeOf(value) == objProto) - : shimIsPlainObject(value); - }; + function filter(collection, predicate, thisArg) { + var func = isArray(collection) ? arrayFilter : baseFilter; + predicate = getCallback(predicate, thisArg, 3); + return func(collection, predicate); + } /** - * Checks if `value` is a string. + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. * * @static * @memberOf _ - * @category Objects - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if the `value` is a string, else `false`. + * @alias detect + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {*} Returns the matched element, else `undefined`. * @example * - * _.isString('fred'); - * // => true + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.result(_.find(users, function(chr) { + * return chr.age < 40; + * }), 'user'); + * // => 'barney' + * + * // using the `_.matches` callback shorthand + * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); + * // => 'pebbles' + * + * // using the `_.matchesProperty` callback shorthand + * _.result(_.find(users, 'active', false), 'user'); + * // => 'fred' + * + * // using the `_.property` callback shorthand + * _.result(_.find(users, 'active'), 'user'); + * // => 'barney' */ - function isString(value) { - return typeof value == 'string' || - value && typeof value == 'object' && toString.call(value) == stringClass || false; - } + var find = createFind(baseEach); /** - * Recursively merges own enumerable properties of the source object(s), that - * don't resolve to `undefined` into the destination object. Subsequent sources - * will overwrite property assignments of previous sources. If a callback is - * provided it will be executed to produce the merged values of the destination - * and source properties. If the callback returns `undefined` merging will - * be handled by the method instead. The callback is bound to `thisArg` and - * invoked with two arguments; (objectValue, sourceValue). + * Iterates over elements of `collection` invoking `iteratee` for each element. + * The `iteratee` is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). Iteratee functions may exit iteration early + * by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" property + * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` + * may be used for object iteration. * * @static * @memberOf _ - * @category Objects - * @param {Object} object The destination object. - * @param {...Object} [source] The source objects. - * @param {Function} [callback] The function to customize merging properties. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns the destination object. + * @alias each + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array|Object|string} Returns `collection`. * @example * - * var names = { - * 'characters': [ - * { 'name': 'barney' }, - * { 'name': 'fred' } - * ] - * }; + * _([1, 2]).forEach(function(n) { + * console.log(n); + * }).value(); + * // => logs each value from left to right and returns the array * - * var ages = { - * 'characters': [ - * { 'age': 36 }, - * { 'age': 40 } - * ] - * }; + * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) { + * console.log(n, key); + * }); + * // => logs each value-key pair and returns the object (iteration order is not guaranteed) + */ + var forEach = createForEach(arrayEach, baseEach); + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` through `iteratee`. The corresponding value + * of each key is an array of the elements responsible for generating the key. + * The `iteratee` is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). * - * _.merge(names, ages); - * // => { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] } + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. * - * var food = { - * 'fruits': ['apple'], - * 'vegetables': ['beet'] - * }; + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. * - * var otherFood = { - * 'fruits': ['banana'], - * 'vegetables': ['carrot'] - * }; + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Object} Returns the composed aggregate object. + * @example * - * _.merge(food, otherFood, function(a, b) { - * return _.isArray(a) ? a.concat(b) : undefined; + * _.groupBy([4.2, 6.1, 6.4], function(n) { + * return Math.floor(n); * }); - * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] } + * // => { '4': [4.2], '6': [6.1, 6.4] } + * + * _.groupBy([4.2, 6.1, 6.4], function(n) { + * return this.floor(n); + * }, Math); + * // => { '4': [4.2], '6': [6.1, 6.4] } + * + * // using the `_.property` callback shorthand + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } */ - function merge(object) { - var args = arguments, - length = 2; - - if (!isObject(object)) { - return object; - } - - // allows working with `_.reduce` and `_.reduceRight` without using - // their `index` and `collection` arguments - if (typeof args[2] != 'number') { - length = args.length; - } - if (length > 3 && typeof args[length - 2] == 'function') { - var callback = baseCreateCallback(args[--length - 1], args[length--], 2); - } else if (length > 2 && typeof args[length - 1] == 'function') { - callback = args[--length]; - } - var sources = slice(arguments, 1, length), - index = -1, - stackA = getArray(), - stackB = getArray(); - - while (++index < length) { - baseMerge(object, sources[index], callback, stackA, stackB); + var groupBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + result[key] = [value]; } - releaseArray(stackA); - releaseArray(stackB); - return object; - } + }); /** - * Creates a shallow clone of `object` excluding the specified properties. - * Property names may be specified as individual arguments or as arrays of - * property names. If a callback is provided it will be executed for each - * property of `object` omitting the properties the callback returns truey - * for. The callback is bound to `thisArg` and invoked with three arguments; - * (value, key, object). + * Checks if `value` is in `collection` using + * [`SameValueZero`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `collection`. * * @static * @memberOf _ - * @category Objects - * @param {Object} object The source object. - * @param {Function|...string|string[]} [callback] The properties to omit or the - * function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns an object without the omitted properties. + * @alias contains, include + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {*} target The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. * @example * - * _.omit({ 'name': 'fred', 'age': 40 }, 'age'); - * // => { 'name': 'fred' } + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false * - * _.omit({ 'name': 'fred', 'age': 40 }, function(value) { - * return typeof value == 'number'; - * }); - * // => { 'name': 'fred' } + * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); + * // => true + * + * _.includes('pebbles', 'eb'); + * // => true */ - function omit(object, callback, thisArg) { - var result = {}; - if (typeof callback != 'function') { - var props = []; - forIn(object, function(value, key) { - props.push(key); - }); - props = baseDifference(props, baseFlatten(arguments, true, false, 1)); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - result[key] = object[key]; - } + function includes(collection, target, fromIndex, guard) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + collection = values(collection); + length = collection.length; + } + if (!length) { + return false; + } + if (typeof fromIndex != 'number' || (guard && isIterateeCall(target, fromIndex, guard))) { + fromIndex = 0; } else { - callback = lodash.createCallback(callback, thisArg, 3); - forIn(object, function(value, key, object) { - if (!callback(value, key, object)) { - result[key] = value; - } - }); + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); } - return result; + return (typeof collection == 'string' || !isArray(collection) && isString(collection)) + ? (fromIndex < length && collection.indexOf(target, fromIndex) > -1) + : (getIndexOf(collection, target, fromIndex) > -1); } /** - * Creates a two dimensional array of an object's key-value pairs, - * i.e. `[[key1, value1], [key2, value2]]`. + * Creates an array of values by running each element in `collection` through + * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index|key, collection). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, + * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, + * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, + * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, + * `sum`, `uniq`, and `words` * * @static * @memberOf _ - * @category Objects - * @param {Object} object The object to inspect. - * @returns {Array} Returns new array of key-value pairs. + * @alias collect + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new mapped array. * @example * - * _.pairs({ 'barney': 36, 'fred': 40 }); - * // => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments) + * function timesThree(n) { + * return n * 3; + * } + * + * _.map([1, 2], timesThree); + * // => [3, 6] + * + * _.map({ 'a': 1, 'b': 2 }, timesThree); + * // => [3, 6] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // using the `_.property` callback shorthand + * _.map(users, 'user'); + * // => ['barney', 'fred'] */ - function pairs(object) { - var index = -1, - props = keys(object), - length = props.length, - result = Array(length); - - while (++index < length) { - var key = props[index]; - result[index] = [key, object[key]]; - } - return result; + function map(collection, iteratee, thisArg) { + var func = isArray(collection) ? arrayMap : baseMap; + iteratee = getCallback(iteratee, thisArg, 3); + return func(collection, iteratee); } /** - * Creates a shallow clone of `object` composed of the specified properties. - * Property names may be specified as individual arguments or as arrays of - * property names. If a callback is provided it will be executed for each - * property of `object` picking the properties the callback returns truey - * for. The callback is bound to `thisArg` and invoked with three arguments; - * (value, key, object). + * Gets the property value of `path` from all elements in `collection`. * * @static * @memberOf _ - * @category Objects - * @param {Object} object The source object. - * @param {Function|...string|string[]} [callback] The function called per - * iteration or property names to pick, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns an object composed of the picked properties. + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Array|string} path The path of the property to pluck. + * @returns {Array} Returns the property values. * @example * - * _.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name'); - * // => { 'name': 'fred' } + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; * - * _.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) { - * return key.charAt(0) != '_'; - * }); - * // => { 'name': 'fred' } + * _.pluck(users, 'user'); + * // => ['barney', 'fred'] + * + * var userIndex = _.indexBy(users, 'user'); + * _.pluck(userIndex, 'age'); + * // => [36, 40] (iteration order is not guaranteed) */ - function pick(object, callback, thisArg) { - var result = {}; - if (typeof callback != 'function') { - var index = -1, - props = baseFlatten(arguments, true, false, 1), - length = isObject(object) ? props.length : 0; - - while (++index < length) { - var key = props[index]; - if (key in object) { - result[key] = object[key]; - } - } - } else { - callback = lodash.createCallback(callback, thisArg, 3); - forIn(object, function(value, key, object) { - if (callback(value, key, object)) { - result[key] = value; - } - }); - } - return result; + function pluck(collection, path) { + return map(collection, property(path)); } /** - * Creates an array composed of the own enumerable property values of `object`. + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` through `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not provided the first element of `collection` is used as the initial + * value. The `iteratee` is bound to `thisArg` and invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `includes`, `merge`, `sortByAll`, and `sortByOrder` * * @static * @memberOf _ - * @category Objects - * @param {Object} object The object to inspect. - * @returns {Array} Returns an array of property values. + * @alias foldl, inject + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {*} Returns the accumulated value. * @example * - * _.values({ 'one': 1, 'two': 2, 'three': 3 }); - * // => [1, 2, 3] (property order is not guaranteed across environments) + * _.reduce([1, 2], function(total, n) { + * return total + n; + * }); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2 }, function(result, n, key) { + * result[key] = n * 3; + * return result; + * }, {}); + * // => { 'a': 3, 'b': 6 } (iteration order is not guaranteed) */ - function values(object) { - var index = -1, - props = keys(object), - length = props.length, - result = Array(length); - - while (++index < length) { - result[index] = object[props[index]]; - } - return result; - } - - /*--------------------------------------------------------------------------*/ + var reduce = createReduce(arrayReduce, baseEach); /** - * Checks if a given value is present in a collection using strict equality - * for comparisons, i.e. `===`. If `fromIndex` is negative, it is used as the - * offset from the end of the collection. + * The opposite of `_.filter`; this method returns the elements of `collection` + * that `predicate` does **not** return truthy for. * * @static * @memberOf _ - * @alias include - * @category Collections + * @category Collection * @param {Array|Object|string} collection The collection to iterate over. - * @param {*} target The value to check for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {boolean} Returns `true` if the `target` element is found, else `false`. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Array} Returns the new filtered array. * @example * - * _.contains([1, 2, 3], 1); - * // => true + * _.reject([1, 2, 3, 4], function(n) { + * return n % 2 == 0; + * }); + * // => [1, 3] * - * _.contains([1, 2, 3], 1, 2); - * // => false + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true } + * ]; * - * _.contains({ 'name': 'fred', 'age': 40 }, 'fred'); - * // => true + * // using the `_.matches` callback shorthand + * _.pluck(_.reject(users, { 'age': 40, 'active': true }), 'user'); + * // => ['barney'] * - * _.contains('pebbles', 'eb'); - * // => true + * // using the `_.matchesProperty` callback shorthand + * _.pluck(_.reject(users, 'active', false), 'user'); + * // => ['fred'] + * + * // using the `_.property` callback shorthand + * _.pluck(_.reject(users, 'active'), 'user'); + * // => ['barney'] */ - function contains(collection, target, fromIndex) { - var index = -1, - indexOf = getIndexOf(), - length = collection ? collection.length : 0, - result = false; - - fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0; - if (isArray(collection)) { - result = indexOf(collection, target, fromIndex) > -1; - } else if (typeof length == 'number') { - result = (isString(collection) ? collection.indexOf(target, fromIndex) : indexOf(collection, target, fromIndex)) > -1; - } else { - baseEach(collection, function(value) { - if (++index >= fromIndex) { - return !(result = value === target); - } - }); - } - return result; + function reject(collection, predicate, thisArg) { + var func = isArray(collection) ? arrayFilter : baseFilter; + predicate = getCallback(predicate, thisArg, 3); + return func(collection, function(value, index, collection) { + return !predicate(value, index, collection); + }); } /** - * Checks if the given callback returns truey value for **all** elements of - * a collection. The callback is bound to `thisArg` and invoked with three - * arguments; (value, index|key, collection). + * Checks if `predicate` returns truthy for **any** element of `collection`. + * The function returns as soon as it finds a passing value and does not iterate + * over the entire collection. The predicate is bound to `thisArg` and invoked + * with three arguments: (value, index|key, collection). * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. * * @static * @memberOf _ - * @alias all - * @category Collections + * @alias any + * @category Collection * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {boolean} Returns `true` if all elements passed the callback check, + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. * @example * - * _.every([true, 1, null, 'yes']); - * // => false + * _.some([null, 0, 'yes', false], Boolean); + * // => true * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } * ]; * - * // using "_.pluck" callback shorthand - * _.every(characters, 'age'); + * // using the `_.matches` callback shorthand + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // using the `_.matchesProperty` callback shorthand + * _.some(users, 'active', false); * // => true * - * // using "_.where" callback shorthand - * _.every(characters, { 'age': 36 }); - * // => false + * // using the `_.property` callback shorthand + * _.some(users, 'active'); + * // => true */ - function every(collection, callback, thisArg) { - var result = true; - callback = lodash.createCallback(callback, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - while (++index < length) { - if (!(result = !!callback(collection[index], index, collection))) { - break; - } - } - } else { - baseEach(collection, function(value, index, collection) { - return (result = !!callback(value, index, collection)); - }); + function some(collection, predicate, thisArg) { + var func = isArray(collection) ? arraySome : baseSome; + if (thisArg && isIterateeCall(collection, predicate, thisArg)) { + predicate = null; } - return result; + if (typeof predicate != 'function' || thisArg !== undefined) { + predicate = getCallback(predicate, thisArg, 3); + } + return func(collection, predicate); } + /*------------------------------------------------------------------------*/ + + /** + * Gets the number of milliseconds that have elapsed since the Unix epoch + * (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @category Date + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => logs the number of milliseconds it took for the deferred function to be invoked + */ + var now = nativeNow || function() { + return new Date().getTime(); + }; + + /*------------------------------------------------------------------------*/ + /** - * Iterates over elements of a collection, returning an array of all elements - * the callback returns truey for. The callback is bound to `thisArg` and - * invoked with three arguments; (value, index|key, collection). + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and prepends any additional `_.bind` arguments to those provided to the + * bound function. * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * **Note:** Unlike native `Function#bind` this method does not set the "length" + * property of bound functions. * * @static * @memberOf _ - * @alias select - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array} Returns a new array of elements that passed the callback check. + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. * @example * - * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); - * // => [2, 4, 6] + * var greet = function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * }; * - * var characters = [ - * { 'name': 'barney', 'age': 36, 'blocked': false }, - * { 'name': 'fred', 'age': 40, 'blocked': true } - * ]; + * var object = { 'user': 'fred' }; * - * // using "_.pluck" callback shorthand - * _.filter(characters, 'blocked'); - * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }] + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' * - * // using "_.where" callback shorthand - * _.filter(characters, { 'age': 36 }); - * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }] + * // using placeholders + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' */ - function filter(collection, callback, thisArg) { - var result = []; - callback = lodash.createCallback(callback, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - while (++index < length) { - var value = collection[index]; - if (callback(value, index, collection)) { - result.push(value); - } - } - } else { - baseEach(collection, function(value, index, collection) { - if (callback(value, index, collection)) { - result.push(value); - } - }); + var bind = restParam(function(func, thisArg, partials) { + var bitmask = BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, bind.placeholder); + bitmask |= PARTIAL_FLAG; } - return result; - } + return createWrapper(func, bitmask, thisArg, partials, holders); + }); /** - * Iterates over elements of a collection, returning the first element that - * the callback returns truey for. The callback is bound to `thisArg` and - * invoked with three arguments; (value, index|key, collection). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed invocations. Provide an options object to indicate that `func` + * should be invoked on the leading and/or trailing edge of the `wait` timeout. + * Subsequent calls to the debounced function return the result of the last + * `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked + * on the trailing edge of the timeout only if the the debounced function is + * invoked more than once during the `wait` timeout. * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) + * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ - * @alias detect, findWhere - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the found element, else `undefined`. + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options] The options object. + * @param {boolean} [options.leading=false] Specify invoking on the leading + * edge of the timeout. + * @param {number} [options.maxWait] The maximum time `func` is allowed to be + * delayed before it is invoked. + * @param {boolean} [options.trailing=true] Specify invoking on the trailing + * edge of the timeout. + * @returns {Function} Returns the new debounced function. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36, 'blocked': false }, - * { 'name': 'fred', 'age': 40, 'blocked': true }, - * { 'name': 'pebbles', 'age': 1, 'blocked': false } - * ]; + * // avoid costly calculations while the window size is in flux + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * - * _.find(characters, function(chr) { - * return chr.age < 40; - * }); - * // => { 'name': 'barney', 'age': 36, 'blocked': false } + * // invoke `sendMail` when the click event is fired, debouncing subsequent calls + * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // ensure `batchLog` is invoked once after 1 second of debounced calls + * var source = new EventSource('/stream'); + * jQuery(source).on('message', _.debounce(batchLog, 250, { + * 'maxWait': 1000 + * })); + * + * // cancel a debounced call + * var todoChanges = _.debounce(batchLog, 1000); + * Object.observe(models.todo, todoChanges); * - * // using "_.where" callback shorthand - * _.find(characters, { 'age': 1 }); - * // => { 'name': 'pebbles', 'age': 1, 'blocked': false } + * Object.observe(models, function(changes) { + * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { + * todoChanges.cancel(); + * } + * }, ['delete']); + * + * // ...at some point `models.todo` is changed + * models.todo.completed = true; * - * // using "_.pluck" callback shorthand - * _.find(characters, 'blocked'); - * // => { 'name': 'fred', 'age': 40, 'blocked': true } + * // ...before 1 second has passed `models.todo` is deleted + * // which cancels the debounced `todoChanges` call + * delete models.todo; */ - function find(collection, callback, thisArg) { - callback = lodash.createCallback(callback, thisArg, 3); + function debounce(func, wait, options) { + var args, + maxTimeoutId, + result, + stamp, + thisArg, + timeoutId, + trailingCall, + lastCalled = 0, + maxWait = false, + trailing = true; - if (isArray(collection)) { - var index = -1, - length = collection.length; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = wait < 0 ? 0 : (+wait || 0); + if (options === true) { + var leading = true; + trailing = false; + } else if (isObject(options)) { + leading = options.leading; + maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); + trailing = 'trailing' in options ? options.trailing : trailing; + } - while (++index < length) { - var value = collection[index]; - if (callback(value, index, collection)) { - return value; + function cancel() { + if (timeoutId) { + clearTimeout(timeoutId); + } + if (maxTimeoutId) { + clearTimeout(maxTimeoutId); + } + maxTimeoutId = timeoutId = trailingCall = undefined; + } + + function delayed() { + var remaining = wait - (now() - stamp); + if (remaining <= 0 || remaining > wait) { + if (maxTimeoutId) { + clearTimeout(maxTimeoutId); + } + var isCalled = trailingCall; + maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = null; + } + } + } else { + timeoutId = setTimeout(delayed, remaining); + } + } + + function maxDelayed() { + if (timeoutId) { + clearTimeout(timeoutId); + } + maxTimeoutId = timeoutId = trailingCall = undefined; + if (trailing || (maxWait !== wait)) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = null; + } + } + } + + function debounced() { + args = arguments; + stamp = now(); + thisArg = this; + trailingCall = trailing && (timeoutId || !leading); + + if (maxWait === false) { + var leadingCall = leading && !timeoutId; + } else { + if (!maxTimeoutId && !leading) { + lastCalled = stamp; + } + var remaining = maxWait - (stamp - lastCalled), + isCalled = remaining <= 0 || remaining > maxWait; + + if (isCalled) { + if (maxTimeoutId) { + maxTimeoutId = clearTimeout(maxTimeoutId); + } + lastCalled = stamp; + result = func.apply(thisArg, args); + } + else if (!maxTimeoutId) { + maxTimeoutId = setTimeout(maxDelayed, remaining); } } - } else { - var result; - baseEach(collection, function(value, index, collection) { - if (callback(value, index, collection)) { - result = value; - return false; - } - }); + if (isCalled && timeoutId) { + timeoutId = clearTimeout(timeoutId); + } + else if (!timeoutId && wait !== maxWait) { + timeoutId = setTimeout(delayed, wait); + } + if (leadingCall) { + isCalled = true; + result = func.apply(thisArg, args); + } + if (isCalled && !timeoutId && !maxTimeoutId) { + args = thisArg = null; + } return result; } + debounced.cancel = cancel; + return debounced; } /** - * Iterates over elements of a collection, executing the callback for each - * element. The callback is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). Callbacks may exit iteration early by - * explicitly returning `false`. + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. * - * Note: As with other "Collections" methods, objects with a `length` property - * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` - * may be used for object iteration. + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). * * @static * @memberOf _ - * @alias each - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array|Object|string} Returns `collection`. + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. * @example * - * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(','); - * // => logs each number and returns '1,2,3' + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); * - * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); }); - * // => logs each number and returns the object (property order is not guaranteed across environments) + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' */ - function forEach(collection, callback, thisArg) { - if (callback && typeof thisArg == 'undefined' && isArray(collection)) { - var index = -1, - length = collection.length; + function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); while (++index < length) { - if (callback(collection[index], index, collection) === false) { - break; - } + rest[index] = args[start + index]; } - } else { - baseEach(collection, callback, thisArg); - } - return collection; + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; } /** - * Creates an object composed of keys generated from the results of running - * each element of a collection through the callback. The corresponding value - * of each key is an array of the elements responsible for generating the key. - * The callback is bound to `thisArg` and invoked with three arguments; - * (value, index|key, collection). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed invocations. Provide an options object to indicate + * that `func` should be invoked on the leading and/or trailing edge of the + * `wait` timeout. Subsequent calls to the throttled function return the + * result of the last `func` call. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked + * on the trailing edge of the timeout only if the the throttled function is + * invoked more than once during the `wait` timeout. * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false` + * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) + * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns the composed aggregate object. + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options] The options object. + * @param {boolean} [options.leading=true] Specify invoking on the leading + * edge of the timeout. + * @param {boolean} [options.trailing=true] Specify invoking on the trailing + * edge of the timeout. + * @returns {Function} Returns the new throttled function. * @example * - * _.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); }); - * // => { '4': [4.2], '6': [6.1, 6.4] } + * // avoid excessively updating the position while scrolling + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * - * _.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math); - * // => { '4': [4.2], '6': [6.1, 6.4] } + * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes + * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { + * 'trailing': false + * })); * - * // using "_.pluck" callback shorthand - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } + * // cancel a trailing throttled call + * jQuery(window).on('popstate', throttled.cancel); */ - var groupBy = createAggregator(function(result, value, key) { - (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value); - }); + function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (options === false) { + leading = false; + } else if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + debounceOptions.leading = leading; + debounceOptions.maxWait = +wait; + debounceOptions.trailing = trailing; + return debounce(func, wait, debounceOptions); + } + + /*------------------------------------------------------------------------*/ /** - * Creates an array of values by running each element in the collection - * through the callback. The callback is bound to `thisArg` and invoked with - * three arguments; (value, index|key, collection). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * Creates a clone of `value`. If `isDeep` is `true` nested objects are cloned, + * otherwise they are assigned by reference. If `customizer` is provided it is + * invoked to produce the cloned values. If `customizer` returns `undefined` + * cloning is handled by the method instead. The `customizer` is bound to + * `thisArg` and invoked with two argument; (value [, index|key, object]). + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). + * The enumerable properties of `arguments` objects and objects created by + * constructors other than `Object` are cloned to plain `Object` objects. An + * empty object is returned for uncloneable values such as functions, DOM nodes, + * Maps, Sets, and WeakMaps. * * @static * @memberOf _ - * @alias collect - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array} Returns a new array of the results of each `callback` execution. + * @category Lang + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {*} Returns the cloned value. * @example * - * _.map([1, 2, 3], function(num) { return num * 3; }); - * // => [3, 6, 9] + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; * - * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); - * // => [3, 6, 9] (property order is not guaranteed across environments) + * var shallow = _.clone(users); + * shallow[0] === users[0]; + * // => true * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } - * ]; + * var deep = _.clone(users, true); + * deep[0] === users[0]; + * // => false * - * // using "_.pluck" callback shorthand - * _.map(characters, 'name'); - * // => ['barney', 'fred'] + * // using a customizer callback + * var el = _.clone(document.body, function(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * }); + * + * el === document.body + * // => false + * el.nodeName + * // => BODY + * el.childNodes.length; + * // => 0 */ - function map(collection, callback, thisArg) { - var index = -1, - length = collection ? collection.length : 0, - result = Array(typeof length == 'number' ? length : 0); - - callback = lodash.createCallback(callback, thisArg, 3); - if (isArray(collection)) { - while (++index < length) { - result[index] = callback(collection[index], index, collection); - } - } else { - baseEach(collection, function(value, key, collection) { - result[++index] = callback(value, key, collection); - }); + function clone(value, isDeep, customizer, thisArg) { + if (isDeep && typeof isDeep != 'boolean' && isIterateeCall(value, isDeep, customizer)) { + isDeep = false; } - return result; + else if (typeof isDeep == 'function') { + thisArg = customizer; + customizer = isDeep; + isDeep = false; + } + return typeof customizer == 'function' + ? baseClone(value, isDeep, bindCallback(customizer, thisArg, 1)) + : baseClone(value, isDeep); } /** - * Retrieves the value of a specified property from all elements in the collection. + * Creates a deep clone of `value`. If `customizer` is provided it is invoked + * to produce the cloned values. If `customizer` returns `undefined` cloning + * is handled by the method instead. The `customizer` is bound to `thisArg` + * and invoked with two argument; (value [, index|key, object]). + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). + * The enumerable properties of `arguments` objects and objects created by + * constructors other than `Object` are cloned to plain `Object` objects. An + * empty object is returned for uncloneable values such as functions, DOM nodes, + * Maps, Sets, and WeakMaps. * * @static * @memberOf _ - * @type Function - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {string} property The property to pluck. - * @returns {Array} Returns a new array of property values. + * @category Lang + * @param {*} value The value to deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {*} Returns the deep cloned value. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } * ]; * - * _.pluck(characters, 'name'); - * // => ['barney', 'fred'] + * var deep = _.cloneDeep(users); + * deep[0] === users[0]; + * // => false + * + * // using a customizer callback + * var el = _.cloneDeep(document.body, function(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * }); + * + * el === document.body + * // => false + * el.nodeName + * // => BODY + * el.childNodes.length; + * // => 20 */ - var pluck = map; + function cloneDeep(value, customizer, thisArg) { + return typeof customizer == 'function' + ? baseClone(value, true, bindCallback(customizer, thisArg, 1)) + : baseClone(value, true); + } /** - * Reduces a collection to a value which is the accumulated result of running - * each element in the collection through the callback, where each successive - * callback execution consumes the return value of the previous execution. If - * `accumulator` is not provided the first element of the collection will be - * used as the initial `accumulator` value. The callback is bound to `thisArg` - * and invoked with four arguments; (accumulator, value, index|key, collection). + * Checks if `value` is classified as an `arguments` object. * * @static * @memberOf _ - * @alias foldl, inject - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [accumulator] Initial value of the accumulator. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the accumulated value. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * var sum = _.reduce([1, 2, 3], function(sum, num) { - * return sum + num; - * }); - * // => 6 + * _.isArguments(function() { return arguments; }()); + * // => true * - * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) { - * result[key] = num * 3; - * return result; - * }, {}); - * // => { 'a': 3, 'b': 6, 'c': 9 } + * _.isArguments([1, 2, 3]); + * // => false */ - function reduce(collection, callback, accumulator, thisArg) { - var noaccum = arguments.length < 3; - callback = lodash.createCallback(callback, thisArg, 4); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - if (noaccum) { - accumulator = collection[++index]; - } - while (++index < length) { - accumulator = callback(accumulator, collection[index], index, collection); - } - } else { - baseEach(collection, function(value, index, collection) { - accumulator = noaccum - ? (noaccum = false, value) - : callback(accumulator, value, index, collection) - }); - } - return accumulator; + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag; + } + // Fallback for environments without a `toStringTag` for `arguments` objects. + if (!support.argsTag) { + isArguments = function(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); + }; } /** - * The opposite of `_.filter` this method returns the elements of a - * collection that the callback does **not** return truey for. - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array} Returns a new array of elements that failed the callback check. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); - * // => [1, 3, 5] - * - * var characters = [ - * { 'name': 'barney', 'age': 36, 'blocked': false }, - * { 'name': 'fred', 'age': 40, 'blocked': true } - * ]; - * - * // using "_.pluck" callback shorthand - * _.reject(characters, 'blocked'); - * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }] + * _.isArray([1, 2, 3]); + * // => true * - * // using "_.where" callback shorthand - * _.reject(characters, { 'age': 36 }); - * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }] + * _.isArray(function() { return arguments; }()); + * // => false */ - function reject(collection, callback, thisArg) { - callback = lodash.createCallback(callback, thisArg, 3); - return filter(collection, function(value, index, collection) { - return !callback(value, index, collection); - }); - } + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; /** - * Checks if the callback returns a truey value for **any** element of a - * collection. The function returns as soon as it finds a passing value and - * does not iterate over the entire collection. The callback is bound to - * `thisArg` and invoked with three arguments; (value, index|key, collection). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * Checks if `value` is empty. A value is considered empty unless it is an + * `arguments` object, array, string, or jQuery-like collection with a length + * greater than `0` or an object with own enumerable properties. * * @static * @memberOf _ - * @alias any - * @category Collections - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {boolean} Returns `true` if any element passed the callback check, - * else `false`. + * @category Lang + * @param {Array|Object|string} value The value to inspect. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * - * _.some([null, 0, 'yes', false], Boolean); + * _.isEmpty(null); * // => true * - * var characters = [ - * { 'name': 'barney', 'age': 36, 'blocked': false }, - * { 'name': 'fred', 'age': 40, 'blocked': true } - * ]; + * _.isEmpty(true); + * // => true * - * // using "_.pluck" callback shorthand - * _.some(characters, 'blocked'); + * _.isEmpty(1); * // => true * - * // using "_.where" callback shorthand - * _.some(characters, { 'age': 1 }); + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); * // => false */ - function some(collection, callback, thisArg) { - var result; - callback = lodash.createCallback(callback, thisArg, 3); - - if (isArray(collection)) { - var index = -1, - length = collection.length; - - while (++index < length) { - if ((result = callback(collection[index], index, collection))) { - break; - } - } - } else { - baseEach(collection, function(value, index, collection) { - return !(result = callback(value, index, collection)); - }); + function isEmpty(value) { + if (value == null) { + return true; } - return !!result; + if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) || + (isObjectLike(value) && isFunction(value.splice)))) { + return !value.length; + } + return !keys(value).length; } - /*--------------------------------------------------------------------------*/ - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are all falsey. + * Performs a deep comparison between two values to determine if they are + * equivalent. If `customizer` is provided it is invoked to compare values. + * If `customizer` returns `undefined` comparisons are handled by the method + * instead. The `customizer` is bound to `thisArg` and invoked with three + * arguments: (value, other [, index|key]). + * + * **Note:** This method supports comparing arrays, booleans, `Date` objects, + * numbers, `Object` objects, regexes, and strings. Objects are compared by + * their own, not inherited, enumerable properties. Functions and DOM nodes + * are **not** supported. Provide a customizer function to extend support + * for comparing other values. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to compact. - * @returns {Array} Returns a new array of filtered values. + * @alias eq + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize value comparisons. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] + * var object = { 'user': 'fred' }; + * var other = { 'user': 'fred' }; + * + * object == other; + * // => false + * + * _.isEqual(object, other); + * // => true + * + * // using a customizer callback + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqual(array, other, function(value, other) { + * if (_.every([value, other], RegExp.prototype.test, /^h(?:i|ello)$/)) { + * return true; + * } + * }); + * // => true */ - function compact(array) { - var index = -1, - length = array ? array.length : 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result.push(value); - } - } - return result; + function isEqual(value, other, customizer, thisArg) { + customizer = typeof customizer == 'function' ? bindCallback(customizer, thisArg, 3) : undefined; + var result = customizer ? customizer(value, other) : undefined; + return result === undefined ? baseIsEqual(value, other, customizer) : !!result; } /** - * Creates an array excluding all values of the provided arrays using strict - * equality for comparisons, i.e. `===`. + * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to process. - * @param {...Array} [values] The arrays of values to exclude. - * @returns {Array} Returns a new array of filtered values. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.difference([1, 2, 3, 4, 5], [5, 2, 10]); - * // => [1, 3, 4] + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false */ - function difference(array) { - return baseDifference(array, baseFlatten(arguments, true, true, 1)); - } + var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return objToString.call(value) == funcTag; + }; /** - * Gets the first element or first `n` elements of an array. If a callback - * is provided elements at the beginning of the array are returned as long - * as the callback returns truey. The callback is bound to `thisArg` and - * invoked with three arguments; (value, index, array). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ - * @alias head, take - * @category Arrays - * @param {Array} array The array to query. - * @param {Function|Object|number|string} [callback] The function called - * per element or the number of elements to return. If a property name or - * object is provided it will be used to create a "_.pluck" or "_.where" - * style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the first element(s) of `array`. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * - * _.first([1, 2, 3]); - * // => 1 + * _.isObject({}); + * // => true * - * _.first([1, 2, 3], 2); - * // => [1, 2] + * _.isObject([1, 2, 3]); + * // => true * - * _.first([1, 2, 3], function(num) { - * return num < 3; - * }); - * // => [1, 2] + * _.isObject(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is a native function. * - * var characters = [ - * { 'name': 'barney', 'blocked': true, 'employer': 'slate' }, - * { 'name': 'fred', 'blocked': false, 'employer': 'slate' }, - * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' } - * ]; + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example * - * // using "_.pluck" callback shorthand - * _.first(characters, 'blocked'); - * // => [{ 'name': 'barney', 'blocked': true, 'employer': 'slate' }] + * _.isNative(Array.prototype.push); + * // => true * - * // using "_.where" callback shorthand - * _.pluck(_.first(characters, { 'employer': 'slate' }), 'name'); - * // => ['barney', 'fred'] + * _.isNative(_); + * // => false */ - function first(array, callback, thisArg) { - var n = 0, - length = array ? array.length : 0; - - if (typeof callback != 'number' && callback != null) { - var index = -1; - callback = lodash.createCallback(callback, thisArg, 3); - while (++index < length && callback(array[index], index, array)) { - n++; - } - } else { - n = callback; - if (n == null || thisArg) { - return array ? array[0] : undefined; - } + function isNative(value) { + if (value == null) { + return false; + } + if (objToString.call(value) == funcTag) { + return reIsNative.test(fnToString.call(value)); } - return slice(array, 0, nativeMin(nativeMax(0, n), length)); + return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); } /** - * Flattens a nested array (the nesting can be to any depth). If `isShallow` - * is truey, the array will only be flattened a single level. If a callback - * is provided each element of the array is passed through the callback before - * flattening. The callback is bound to `thisArg` and invoked with three - * arguments; (value, index, array). + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * **Note:** This method assumes objects created by the `Object` constructor + * have no inherited enumerable properties. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to flatten. - * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array} Returns a new flattened array. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * - * _.flatten([1, [2], [3, [[4]]]]); - * // => [1, 2, 3, 4]; + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false * - * _.flatten([1, [2], [3, [[4]]]], true); - * // => [1, 2, 3, [[4]]]; + * _.isPlainObject([1, 2, 3]); + * // => false * - * var characters = [ - * { 'name': 'barney', 'age': 30, 'pets': ['hoppy'] }, - * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] } - * ]; + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true * - * // using "_.pluck" callback shorthand - * _.flatten(characters, 'pets'); - * // => ['hoppy', 'baby puss', 'dino'] + * _.isPlainObject(Object.create(null)); + * // => true */ - function flatten(array, isShallow, callback, thisArg) { - // juggle arguments - if (typeof isShallow != 'boolean' && isShallow != null) { - thisArg = callback; - callback = (typeof isShallow != 'function' && thisArg && thisArg[isShallow] === array) ? null : isShallow; - isShallow = false; - } - if (callback != null) { - array = map(array, callback, thisArg); + var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) { + if (!(value && objToString.call(value) == objectTag) || (!lodash.support.argsTag && isArguments(value))) { + return false; } - return baseFlatten(array, isShallow); - } + var valueOf = getNative(value, 'valueOf'), + objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto); + + return objProto + ? (value == objProto || getPrototypeOf(value) == objProto) + : shimIsPlainObject(value); + }; /** - * Gets the index at which the first occurrence of `value` is found using - * strict equality for comparisons, i.e. `===`. If the array is already sorted - * providing `true` for `fromIndex` will run a faster binary search. + * Checks if `value` is classified as a `String` primitive or object. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {boolean|number} [fromIndex=0] The index to search from or `true` - * to perform a binary search on a sorted array. - * @returns {number} Returns the index of the matched value or `-1`. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.indexOf([1, 2, 3, 1, 2, 3], 2); - * // => 1 - * - * _.indexOf([1, 2, 3, 1, 2, 3], 2, 3); - * // => 4 + * _.isString('abc'); + * // => true * - * _.indexOf([1, 1, 2, 2, 3, 3], 2, true); - * // => 2 + * _.isString(1); + * // => false */ - function indexOf(array, value, fromIndex) { - if (typeof fromIndex == 'number') { - var length = array ? array.length : 0; - fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex || 0); - } else if (fromIndex) { - var index = sortedIndex(array, value); - return array[index] === value ? index : -1; - } - return baseIndexOf(array, value, fromIndex); + function isString(value) { + return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); } /** - * Creates an array of unique values present in all provided arrays using - * strict equality for comparisons, i.e. `===`. + * Checks if `value` is classified as a typed array. * * @static * @memberOf _ - * @category Arrays - * @param {...Array} [array] The arrays to inspect. - * @returns {Array} Returns an array of composite values. + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); - * // => [1, 2] + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false */ - function intersection(array) { - var args = arguments, - argsLength = args.length, - argsIndex = -1, - caches = getArray(), - index = -1, - indexOf = getIndexOf(), - length = array ? array.length : 0, - result = [], - seen = getArray(); - - while (++argsIndex < argsLength) { - var value = args[argsIndex]; - caches[argsIndex] = indexOf === baseIndexOf && - (value ? value.length : 0) >= largeArraySize && - createCache(argsIndex ? args[argsIndex] : seen); - } - outer: - while (++index < length) { - var cache = caches[0]; - value = array[index]; - - if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) { - argsIndex = argsLength; - (cache || seen).push(value); - while (--argsIndex) { - cache = caches[argsIndex]; - if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) { - continue outer; - } - } - result.push(value); - } - } - while (argsLength--) { - cache = caches[argsLength]; - if (cache) { - releaseObject(cache); - } - } - releaseArray(caches); - releaseArray(seen); - return result; + function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; } /** - * Gets the last element or last `n` elements of an array. If a callback is - * provided elements at the end of the array are returned as long as the - * callback returns truey. The callback is bound to `thisArg` and invoked - * with three arguments; (value, index, array). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. - * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * Converts `value` to a plain object flattening inherited enumerable + * properties of `value` to own properties of the plain object. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to query. - * @param {Function|Object|number|string} [callback] The function called - * per element or the number of elements to return. If a property name or - * object is provided it will be used to create a "_.pluck" or "_.where" - * style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {*} Returns the last element(s) of `array`. + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. * @example * - * _.last([1, 2, 3]); - * // => 3 - * - * _.last([1, 2, 3], 2); - * // => [2, 3] - * - * _.last([1, 2, 3], function(num) { - * return num > 1; - * }); - * // => [2, 3] + * function Foo() { + * this.b = 2; + * } * - * var characters = [ - * { 'name': 'barney', 'blocked': false, 'employer': 'slate' }, - * { 'name': 'fred', 'blocked': true, 'employer': 'slate' }, - * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' } - * ]; + * Foo.prototype.c = 3; * - * // using "_.pluck" callback shorthand - * _.pluck(_.last(characters, 'blocked'), 'name'); - * // => ['fred', 'pebbles'] + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } * - * // using "_.where" callback shorthand - * _.last(characters, { 'employer': 'na' }); - * // => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }] + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } */ - function last(array, callback, thisArg) { - var n = 0, - length = array ? array.length : 0; - - if (typeof callback != 'number' && callback != null) { - var index = length; - callback = lodash.createCallback(callback, thisArg, 3); - while (index-- && callback(array[index], index, array)) { - n++; - } - } else { - n = callback; - if (n == null || thisArg) { - return array ? array[length - 1] : undefined; - } - } - return slice(array, nativeMax(0, length - n)); + function toPlainObject(value) { + return baseCopy(value, keysIn(value)); } + /*------------------------------------------------------------------------*/ + /** - * Uses a binary search to determine the smallest index at which a value - * should be inserted into a given sorted array in order to maintain the sort - * order of the array. If a callback is provided it will be executed for - * `value` and each element of `array` to compute their sort ranking. The - * callback is bound to `thisArg` and invoked with one argument; (value). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * Assigns own enumerable properties of source object(s) to the destination + * object. Subsequent sources overwrite property assignments of previous sources. + * If `customizer` is provided it is invoked to produce the assigned values. + * The `customizer` is bound to `thisArg` and invoked with five arguments: + * (objectValue, sourceValue, key, object, source). * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * **Note:** This method mutates `object` and is based on + * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to inspect. - * @param {*} value The value to evaluate. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {Object} Returns `object`. * @example * - * _.sortedIndex([20, 30, 50], 40); - * // => 2 - * - * // using "_.pluck" callback shorthand - * _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x'); - * // => 2 - * - * var dict = { - * 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 } - * }; + * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' }); + * // => { 'user': 'fred', 'age': 40 } * - * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - * return dict.wordToNumber[word]; + * // using a customizer callback + * var defaults = _.partialRight(_.assign, function(value, other) { + * return _.isUndefined(value) ? other : value; * }); - * // => 2 * - * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) { - * return this.wordToNumber[word]; - * }, dict); - * // => 2 + * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' }); + * // => { 'user': 'barney', 'age': 36 } */ - function sortedIndex(array, value, callback, thisArg) { - var low = 0, - high = array ? array.length : low; - - // explicitly reference `identity` for better inlining in Firefox - callback = callback ? lodash.createCallback(callback, thisArg, 1) : identity; - value = callback(value); - - while (low < high) { - var mid = (low + high) >>> 1; - (callback(array[mid]) < value) - ? low = mid + 1 - : high = mid; - } - return low; - } + var assign = createAssigner(function(object, source, customizer) { + return customizer + ? assignWith(object, source, customizer) + : baseAssign(object, source); + }); /** - * Creates an array of unique values, in order, of the provided arrays using - * strict equality for comparisons, i.e. `===`. + * Iterates over own enumerable properties of an object invoking `iteratee` + * for each property. The `iteratee` is bound to `thisArg` and invoked with + * three arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. * * @static * @memberOf _ - * @category Arrays - * @param {...Array} [array] The arrays to inspect. - * @returns {Array} Returns an array of composite values. + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Object} Returns `object`. * @example * - * _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); - * // => [1, 2, 3, 101, 10] + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => logs 'a' and 'b' (iteration order is not guaranteed) */ - function union(array) { - return baseUniq(baseFlatten(arguments, true, true)); - } + var forOwn = createForOwn(baseForOwn); /** - * Creates a duplicate-value-free version of an array using strict equality - * for comparisons, i.e. `===`. If the array is sorted, providing - * `true` for `isSorted` will use a faster algorithm. If a callback is provided - * each element of `array` is passed through the callback before uniqueness - * is computed. The callback is bound to `thisArg` and invoked with three - * arguments; (value, index, array). - * - * If a property name is provided for `callback` the created "_.pluck" style - * callback will return the property value of the given element. + * Creates an array of the own enumerable property names of `object`. * - * If an object is provided for `callback` the created "_.where" style callback - * will return `true` for elements that have the properties of the given object, - * else `false`. + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys) + * for more details. * * @static * @memberOf _ - * @alias unique - * @category Arrays - * @param {Array} array The array to process. - * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted. - * @param {Function|Object|string} [callback=identity] The function called - * per iteration. If a property name or object is provided it will be used - * to create a "_.pluck" or "_.where" style callback, respectively. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Array} Returns a duplicate-value-free array. + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. * @example * - * _.uniq([1, 2, 1, 3, 1]); - * // => [1, 2, 3] - * - * _.uniq([1, 1, 2, 2, 3], true); - * // => [1, 2, 3] + * function Foo() { + * this.a = 1; + * this.b = 2; + * } * - * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); }); - * // => ['A', 'b', 'C'] + * Foo.prototype.c = 3; * - * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math); - * // => [1, 2.5, 3] + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) * - * // using "_.pluck" callback shorthand - * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] + * _.keys('hi'); + * // => ['0', '1'] */ - function uniq(array, isSorted, callback, thisArg) { - // juggle arguments - if (typeof isSorted != 'boolean' && isSorted != null) { - thisArg = callback; - callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted; - isSorted = false; - } - if (callback != null) { - callback = lodash.createCallback(callback, thisArg, 3); + var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? null : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object == 'function' ? lodash.support.enumPrototypes : isArrayLike(object))) { + return shimKeys(object); } - return baseUniq(array, isSorted, callback); - } + return isObject(object) ? nativeKeys(object) : []; + }; /** - * Creates an array excluding all provided values using strict equality for - * comparisons, i.e. `===`. + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ - * @category Arrays - * @param {Array} array The array to filter. - * @param {...*} [value] The values to exclude. - * @returns {Array} Returns a new array of filtered values. + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. * @example * - * _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); - * // => [2, 3, 4] + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) */ - function without(array) { - return baseDifference(array, slice(arguments, 1)); - } + function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length, + support = lodash.support; - /*--------------------------------------------------------------------------*/ + length = (length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + proto = (isFunction(Ctor) && Ctor.prototype) || objectProto, + isProto = proto === object, + result = Array(length), + skipIndexes = length > 0, + skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), + skipProto = support.enumPrototypes && isFunction(object); + + while (++index < length) { + result[index] = (index + ''); + } + // lodash skips the `constructor` property when it infers it is iterating + // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]` + // attribute of an existing property and the `constructor` property of a + // prototype defaults to non-enumerable. + for (var key in object) { + if (!(skipProto && key == 'prototype') && + !(skipErrorProps && (key == 'message' || key == 'name')) && + !(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + if (support.nonEnumShadows && object !== objectProto) { + var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)), + nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag]; + + if (tag == objectTag) { + proto = objectProto; + } + length = shadowProps.length; + while (length--) { + key = shadowProps[length]; + var nonEnum = nonEnums[key]; + if (!(isProto && nonEnum) && + (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) { + result.push(key); + } + } + } + return result; + } /** - * Creates a function that, when called, invokes `func` with the `this` - * binding of `thisArg` and prepends any additional `bind` arguments to those - * provided to the bound function. + * Recursively merges own enumerable properties of the source object(s), that + * don't resolve to `undefined` into the destination object. Subsequent sources + * overwrite property assignments of previous sources. If `customizer` is + * provided it is invoked to produce the merged values of the destination and + * source properties. If `customizer` returns `undefined` merging is handled + * by the method instead. The `customizer` is bound to `thisArg` and invoked + * with five arguments: (objectValue, sourceValue, key, object, source). * * @static * @memberOf _ - * @category Functions - * @param {Function} func The function to bind. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {...*} [arg] Arguments to be partially applied. - * @returns {Function} Returns the new bound function. + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {Object} Returns `object`. * @example * - * var func = function(greeting) { - * return greeting + ' ' + this.name; + * var users = { + * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }] * }; * - * func = _.bind(func, { 'name': 'fred' }, 'hi'); - * func(); - * // => 'hi fred' - */ - function bind(func, thisArg) { - return arguments.length > 2 - ? createWrapper(func, 17, slice(arguments, 2), null, thisArg) - : createWrapper(func, 1, null, null, thisArg); - } - - /** - * Produces a callback bound to an optional `thisArg`. If `func` is a property - * name the created callback will return the property value for a given element. - * If `func` is an object the created callback will return `true` for elements - * that contain the equivalent object properties, otherwise it will return `false`. + * var ages = { + * 'data': [{ 'age': 36 }, { 'age': 40 }] + * }; * - * @static - * @memberOf _ - * @category Functions - * @param {*} [func=identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of the created callback. - * @param {number} [argCount] The number of arguments the callback accepts. - * @returns {Function} Returns a callback function. - * @example + * _.merge(users, ages); + * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] } * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } - * ]; + * // using a customizer callback + * var object = { + * 'fruits': ['apple'], + * 'vegetables': ['beet'] + * }; * - * // wrap to create custom callback shorthands - * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) { - * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback); - * return !match ? func(callback, thisArg) : function(object) { - * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3]; - * }; - * }); + * var other = { + * 'fruits': ['banana'], + * 'vegetables': ['carrot'] + * }; * - * _.filter(characters, 'age__gt38'); - * // => [{ 'name': 'fred', 'age': 40 }] + * _.merge(object, other, function(a, b) { + * if (_.isArray(a)) { + * return a.concat(b); + * } + * }); + * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] } */ - function createCallback(func, thisArg, argCount) { - var type = typeof func; - if (func == null || type == 'function') { - return baseCreateCallback(func, thisArg, argCount); - } - // handle "_.pluck" style callback shorthands - if (type != 'object') { - return function(object) { - return object[func]; - }; - } - var props = keys(func), - key = props[0], - a = func[key]; - - // handle "_.where" style callback shorthands - if (props.length == 1 && a === a && !isObject(a)) { - // fast path the common case of providing an object with a single - // property containing a primitive value - return function(object) { - var b = object[key]; - return a === b && (a !== 0 || (1 / a == 1 / b)); - }; - } - return function(object) { - var length = props.length, - result = false; - - while (length--) { - if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) { - break; - } - } - return result; - }; - } + var merge = createAssigner(baseMerge); /** - * Creates a function that will delay the execution of `func` until after - * `wait` milliseconds have elapsed since the last time it was invoked. - * Provide an options object to indicate that `func` should be invoked on - * the leading and/or trailing edge of the `wait` timeout. Subsequent calls - * to the debounced function will return the result of the last `func` call. - * - * Note: If `leading` and `trailing` options are `true` `func` will be called - * on the trailing edge of the timeout only if the the debounced function is - * invoked more than once during the `wait` timeout. + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable properties of `object` that are not omitted. * * @static * @memberOf _ - * @category Functions - * @param {Function} func The function to debounce. - * @param {number} wait The number of milliseconds to delay. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=false] Specify execution on the leading edge of the timeout. - * @param {number} [options.maxWait] The maximum time `func` is allowed to be delayed before it's called. - * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. + * @category Object + * @param {Object} object The source object. + * @param {Function|...(string|string[])} [predicate] The function invoked per + * iteration or property names to omit, specified as individual property + * names or arrays of property names. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Object} Returns the new object. * @example * - * // avoid costly calculations while the window size is in flux - * var lazyLayout = _.debounce(calculateLayout, 150); - * jQuery(window).on('resize', lazyLayout); + * var object = { 'user': 'fred', 'age': 40 }; * - * // execute `sendMail` when the click event is fired, debouncing subsequent calls - * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * }); + * _.omit(object, 'age'); + * // => { 'user': 'fred' } * - * // ensure `batchLog` is executed once after 1 second of debounced calls - * var source = new EventSource('/stream'); - * source.addEventListener('message', _.debounce(batchLog, 250, { - * 'maxWait': 1000 - * }, false); + * _.omit(object, _.isNumber); + * // => { 'user': 'fred' } */ - function debounce(func, wait, options) { - var args, - maxTimeoutId, - result, - stamp, - thisArg, - timeoutId, - trailingCall, - lastCalled = 0, - maxWait = false, - trailing = true; - - if (!isFunction(func)) { - throw new TypeError; - } - wait = nativeMax(0, wait) || 0; - if (options === true) { - var leading = true; - trailing = false; - } else if (isObject(options)) { - leading = options.leading; - maxWait = 'maxWait' in options && (nativeMax(wait, options.maxWait) || 0); - trailing = 'trailing' in options ? options.trailing : trailing; - } - var delayed = function() { - var remaining = wait - (now() - stamp); - if (remaining <= 0) { - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - var isCalled = trailingCall; - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } - } else { - timeoutId = setTimeout(delayed, remaining); - } - }; - - var maxDelayed = function() { - if (timeoutId) { - clearTimeout(timeoutId); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (trailing || (maxWait !== wait)) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } - }; + var omit = restParam(function(object, props) { + if (object == null) { + return {}; + } + if (typeof props[0] != 'function') { + var props = arrayMap(baseFlatten(props), String); + return pickByArray(object, baseDifference(keysIn(object), props)); + } + var predicate = bindCallback(props[0], props[1], 3); + return pickByCallback(object, function(value, key, object) { + return !predicate(value, key, object); + }); + }); - return function() { - args = arguments; - stamp = now(); - thisArg = this; - trailingCall = trailing && (timeoutId || !leading); + /** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ + function pairs(object) { + object = toObject(object); - if (maxWait === false) { - var leadingCall = leading && !timeoutId; - } else { - if (!maxTimeoutId && !leading) { - lastCalled = stamp; - } - var remaining = maxWait - (stamp - lastCalled), - isCalled = remaining <= 0; + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); - if (isCalled) { - if (maxTimeoutId) { - maxTimeoutId = clearTimeout(maxTimeoutId); - } - lastCalled = stamp; - result = func.apply(thisArg, args); - } - else if (!maxTimeoutId) { - maxTimeoutId = setTimeout(maxDelayed, remaining); - } - } - if (isCalled && timeoutId) { - timeoutId = clearTimeout(timeoutId); - } - else if (!timeoutId && wait !== maxWait) { - timeoutId = setTimeout(delayed, wait); - } - if (leadingCall) { - isCalled = true; - result = func.apply(thisArg, args); - } - if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - return result; - }; + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; } /** - * Creates a function that, when executed, will only call the `func` function - * at most once per every `wait` milliseconds. Provide an options object to - * indicate that `func` should be invoked on the leading and/or trailing edge - * of the `wait` timeout. Subsequent calls to the throttled function will - * return the result of the last `func` call. - * - * Note: If `leading` and `trailing` options are `true` `func` will be called - * on the trailing edge of the timeout only if the the throttled function is - * invoked more than once during the `wait` timeout. + * Creates an object composed of the picked `object` properties. Property + * names may be specified as individual arguments or as arrays of property + * names. If `predicate` is provided it is invoked for each property of `object` + * picking the properties `predicate` returns truthy for. The predicate is + * bound to `thisArg` and invoked with three arguments: (value, key, object). * * @static * @memberOf _ - * @category Functions - * @param {Function} func The function to throttle. - * @param {number} wait The number of milliseconds to throttle executions to. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=true] Specify execution on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. + * @category Object + * @param {Object} object The source object. + * @param {Function|...(string|string[])} [predicate] The function invoked per + * iteration or property names to pick, specified as individual property + * names or arrays of property names. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Object} Returns the new object. * @example * - * // avoid excessively updating the position while scrolling - * var throttled = _.throttle(updatePosition, 100); - * jQuery(window).on('scroll', throttled); + * var object = { 'user': 'fred', 'age': 40 }; * - * // execute `renewToken` when the click event is fired, but not more than once every 5 minutes - * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, { - * 'trailing': false - * })); + * _.pick(object, 'user'); + * // => { 'user': 'fred' } + * + * _.pick(object, _.isString); + * // => { 'user': 'fred' } */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (!isFunction(func)) { - throw new TypeError; - } - if (options === false) { - leading = false; - } else if (isObject(options)) { - leading = 'leading' in options ? options.leading : leading; - trailing = 'trailing' in options ? options.trailing : trailing; + var pick = restParam(function(object, props) { + if (object == null) { + return {}; } - debounceOptions.leading = leading; - debounceOptions.maxWait = wait; - debounceOptions.trailing = trailing; + return typeof props[0] == 'function' + ? pickByCallback(object, bindCallback(props[0], props[1], 3)) + : pickByArray(object, baseFlatten(props)); + }); - return debounce(func, wait, debounceOptions); + /** + * Creates an array of the own enumerable property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return baseValues(object, keys(object)); } - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ /** - * This method returns the first argument provided to it. + * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", + * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. * * @static * @memberOf _ - * @category Utilities - * @param {*} value Any value. - * @returns {*} Returns `value`. + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. * @example * - * var object = { 'name': 'fred' }; - * _.identity(object) === object; - * // => true + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' */ - function identity(value) { - return value; + function escapeRegExp(string) { + string = baseToString(string); + return (string && reHasRegExpChars.test(string)) + ? string.replace(reRegExpChars, '\\$&') + : string; } + /*------------------------------------------------------------------------*/ + /** - * Adds function properties of a source object to the `lodash` function and - * chainable wrapper. + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and arguments of the created function. If `func` is a property name the + * created callback returns the property value for a given element. If `func` + * is an object the created callback returns `true` for elements that contain + * the equivalent object properties, otherwise it returns `false`. * * @static * @memberOf _ - * @category Utilities - * @param {Object} object The object of function properties to add to `lodash`. - * @param {Object} object The object of function properties to add to `lodash`. + * @alias iteratee + * @category Utility + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param- {Object} [guard] Enables use as a callback for functions like `_.map`. + * @returns {Function} Returns the callback. * @example * - * _.mixin({ - * 'capitalize': function(string) { - * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase(); + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // wrap to create custom callback shorthands + * _.callback = _.wrap(_.callback, function(callback, func, thisArg) { + * var match = /^(.+?)__([gl]t)(.+)$/.exec(func); + * if (!match) { + * return callback(func, thisArg); * } + * return function(object) { + * return match[2] == 'gt' + * ? object[match[1]] > match[3] + * : object[match[1]] < match[3]; + * }; * }); * - * _.capitalize('fred'); - * // => 'Fred' - * - * _('fred').capitalize(); - * // => 'Fred' + * _.filter(users, 'age__gt36'); + * // => [{ 'user': 'fred', 'age': 40 }] */ - function mixin(object, source) { - var ctor = object, - isFunc = !source || isFunction(ctor); - - if (!source) { - ctor = lodashWrapper; - source = object; - object = lodash; + function callback(func, thisArg, guard) { + if (guard && isIterateeCall(func, thisArg, guard)) { + thisArg = null; } - forEach(functions(source), function(methodName) { - var func = object[methodName] = source[methodName]; - if (isFunc) { - ctor.prototype[methodName] = function() { - var value = this.__wrapped__, - args = [value]; - - push.apply(args, arguments); - var result = func.apply(object, args); - if (value && typeof value == 'object' && value === result) { - return this; - } - result = new ctor(result); - result.__chain__ = this.__chain__; - return result; - }; - } - }); + return isObjectLike(func) + ? matches(func) + : baseCallback(func, thisArg); } /** - * A no-operation function. + * Creates a function that returns `value`. * * @static * @memberOf _ - * @category Utilities + * @category Utility + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new function. * @example * - * var object = { 'name': 'fred' }; - * _.noop(object) === undefined; + * var object = { 'user': 'fred' }; + * var getter = _.constant(object); + * + * getter() === object; * // => true */ - function noop() { - // no operation performed + function constant(value) { + return function() { + return value; + }; } - /*--------------------------------------------------------------------------*/ - /** - * Creates a `lodash` object that wraps the given value with explicit - * method chaining enabled. + * This method returns the first argument provided to it. * * @static * @memberOf _ - * @category Chaining - * @param {*} value The value to wrap. - * @returns {Object} Returns the wrapper object. + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 }, - * { 'name': 'pebbles', 'age': 1 } - * ]; + * var object = { 'user': 'fred' }; * - * var youngest = _.chain(characters) - * .sortBy('age') - * .map(function(chr) { return chr.name + ' is ' + chr.age; }) - * .first() - * .value(); - * // => 'pebbles is 1' + * _.identity(object) === object; + * // => true */ - function chain(value) { - value = new lodashWrapper(value); - value.__chain__ = true; + function identity(value) { return value; } /** - * Enables explicit method chaining on the wrapper object. + * Creates a function that performs a deep comparison between a given object + * and `source`, returning `true` if the given object has equivalent property + * values, else `false`. * - * @name chain + * **Note:** This method supports comparing arrays, booleans, `Date` objects, + * numbers, `Object` objects, regexes, and strings. Objects are compared by + * their own, not inherited, enumerable properties. For comparing a single + * own or inherited property value see `_.matchesProperty`. + * + * @static * @memberOf _ - * @category Chaining - * @returns {*} Returns the wrapper object. + * @category Utility + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. * @example * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } * ]; * - * // without explicit chaining - * _(characters).first(); - * // => { 'name': 'barney', 'age': 36 } + * _.filter(users, _.matches({ 'age': 40, 'active': false })); + * // => [{ 'user': 'fred', 'age': 40, 'active': false }] + */ + function matches(source) { + return baseMatches(baseClone(source, true)); + } + + /** + * Adds all own enumerable function properties of a source object to the + * destination object. If `object` is a function then methods are added to + * its prototype as well. * - * // with explicit chaining - * _(characters).chain() - * .first() - * .pick('age') - * .value() - * // => { 'age': 36 } + * **Note:** Use `_.runInContext` to create a pristine `lodash` function to + * avoid conflicts caused by modifying the original. + * + * @static + * @memberOf _ + * @category Utility + * @param {Function|Object} [object=lodash] The destination object. + * @param {Object} source The object of functions to add. + * @param {Object} [options] The options object. + * @param {boolean} [options.chain=true] Specify whether the functions added + * are chainable. + * @returns {Function|Object} Returns `object`. + * @example + * + * function vowels(string) { + * return _.filter(string, function(v) { + * return /[aeiou]/i.test(v); + * }); + * } + * + * _.mixin({ 'vowels': vowels }); + * _.vowels('fred'); + * // => ['e'] + * + * _('fred').vowels().value(); + * // => ['e'] + * + * _.mixin({ 'vowels': vowels }, { 'chain': false }); + * _('fred').vowels(); + * // => ['e'] */ - function wrapperChain() { - this.__chain__ = true; - return this; + function mixin(object, source, options) { + if (options == null) { + var isObj = isObject(source), + props = isObj ? keys(source) : null, + methodNames = (props && props.length) ? baseFunctions(source, props) : null; + + if (!(methodNames ? methodNames.length : isObj)) { + methodNames = false; + options = source; + source = object; + object = this; + } + } + if (!methodNames) { + methodNames = baseFunctions(source, keys(source)); + } + var chain = true, + index = -1, + isFunc = isFunction(object), + length = methodNames.length; + + if (options === false) { + chain = false; + } else if (isObject(options) && 'chain' in options) { + chain = options.chain; + } + while (++index < length) { + var methodName = methodNames[index], + func = source[methodName]; + + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = (function(func) { + return function() { + var chainAll = this.__chain__; + if (chain || chainAll) { + var result = object(this.__wrapped__), + actions = result.__actions__ = arrayCopy(this.__actions__); + + actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); + result.__chain__ = chainAll; + return result; + } + var args = [this.value()]; + push.apply(args, arguments); + return func.apply(object, args); + }; + }(func)); + } + } + return object; } /** - * Produces the `toString` result of the wrapped value. + * A no-operation function that returns `undefined` regardless of the + * arguments it receives. * - * @name toString + * @static * @memberOf _ - * @category Chaining - * @returns {string} Returns the string result. + * @category Utility * @example * - * _([1, 2, 3]).toString(); - * // => '1,2,3' + * var object = { 'user': 'fred' }; + * + * _.noop(object) === undefined; + * // => true */ - function wrapperToString() { - return String(this.__wrapped__); + function noop() { + // No operation performed. } /** - * Extracts the wrapped value. + * Creates a function that returns the property value at `path` on a + * given object. * - * @name valueOf + * @static * @memberOf _ - * @alias value - * @category Chaining - * @returns {*} Returns the wrapped value. + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. * @example * - * _([1, 2, 3]).valueOf(); - * // => [1, 2, 3] + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] */ - function wrapperValueOf() { - return this.__wrapped__; + function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); } - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ + + // Ensure wrappers are instances of `baseLodash`. + lodash.prototype = baseLodash.prototype; + + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + + // Add functions to the `Set` cache. + SetCache.prototype.push = cachePush; + + // Add functions that return wrapped values when chaining. lodash.assign = assign; lodash.bind = bind; + lodash.callback = callback; lodash.chain = chain; + lodash.chunk = chunk; lodash.compact = compact; - lodash.createCallback = createCallback; + lodash.constant = constant; lodash.debounce = debounce; lodash.difference = difference; lodash.filter = filter; lodash.flatten = flatten; lodash.forEach = forEach; - lodash.forIn = forIn; lodash.forOwn = forOwn; - lodash.functions = functions; lodash.groupBy = groupBy; lodash.intersection = intersection; lodash.keys = keys; + lodash.keysIn = keysIn; lodash.map = map; + lodash.matches = matches; lodash.merge = merge; + lodash.mixin = mixin; lodash.omit = omit; lodash.pairs = pairs; lodash.pick = pick; lodash.pluck = pluck; + lodash.property = property; lodash.reject = reject; + lodash.restParam = restParam; + lodash.tap = tap; lodash.throttle = throttle; + lodash.thru = thru; + lodash.toPlainObject = toPlainObject; lodash.union = union; lodash.uniq = uniq; lodash.values = values; lodash.without = without; - // add aliases + // Add aliases. lodash.collect = map; lodash.each = forEach; lodash.extend = assign; - lodash.methods = functions; + lodash.iteratee = callback; lodash.select = filter; lodash.unique = uniq; - // add functions to `lodash.prototype` - mixin(lodash); + // Add functions to `lodash.prototype`. + mixin(lodash, lodash); - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ - // add functions that return unwrapped values when chaining + // Add functions that return unwrapped values when chaining. lodash.clone = clone; lodash.cloneDeep = cloneDeep; - lodash.contains = contains; + lodash.escapeRegExp = escapeRegExp; lodash.every = every; lodash.find = find; + lodash.first = first; lodash.identity = identity; + lodash.includes = includes; lodash.indexOf = indexOf; lodash.isArguments = isArguments; lodash.isArray = isArray; lodash.isEmpty = isEmpty; lodash.isEqual = isEqual; lodash.isFunction = isFunction; + lodash.isNative = isNative; lodash.isObject = isObject; lodash.isPlainObject = isPlainObject; lodash.isString = isString; - lodash.mixin = mixin; + lodash.isTypedArray = isTypedArray; + lodash.last = last; lodash.noop = noop; + lodash.now = now; lodash.reduce = reduce; lodash.some = some; - lodash.sortedIndex = sortedIndex; - // add aliases + // Add aliases. lodash.all = every; lodash.any = some; + lodash.contains = includes; + lodash.eq = isEqual; lodash.detect = find; - lodash.findWhere = find; lodash.foldl = reduce; - lodash.include = contains; + lodash.head = first; + lodash.include = includes; lodash.inject = reduce; - forOwn(lodash, function(func, methodName) { - if (!lodash.prototype[methodName]) { - lodash.prototype[methodName] = function() { - var args = [this.__wrapped__], - chainAll = this.__chain__; - - push.apply(args, arguments); - var result = func.apply(lodash, args); - return chainAll - ? new lodashWrapper(result, chainAll) - : result; - }; - } - }); - - /*--------------------------------------------------------------------------*/ - - // add functions capable of returning wrapped and unwrapped values when chaining - lodash.first = first; - lodash.last = last; - - // add aliases - lodash.take = first; - lodash.head = first; + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!lodash.prototype[methodName]) { + source[methodName] = func; + } + }); + return source; + }()), false); - forOwn(lodash, function(func, methodName) { - var callbackable = methodName !== 'sample'; - if (!lodash.prototype[methodName]) { - lodash.prototype[methodName]= function(n, guard) { - var chainAll = this.__chain__, - result = func(this.__wrapped__, n, guard); + /*------------------------------------------------------------------------*/ - return !chainAll && (n == null || (guard && !(callbackable && typeof n == 'function'))) - ? result - : new lodashWrapper(result, chainAll); - }; + lodash.prototype.sample = function(n) { + if (!this.__chain__ && n == null) { + return sample(this.value()); } - }); + return this.thru(function(value) { + return sample(value, n); + }); + }; - /*--------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------*/ /** * The semantic version number. @@ -11651,77 +13768,242 @@ var JXON = new (function () { * @memberOf _ * @type string */ - lodash.VERSION = '2.3.0'; + lodash.VERSION = VERSION; + + // Assign default placeholders. + bind.placeholder = lodash; + + // Add `LazyWrapper` methods that accept an `iteratee` value. + arrayEach(['dropWhile', 'filter', 'map', 'takeWhile'], function(methodName, type) { + var isFilter = type != LAZY_MAP_FLAG, + isDropWhile = type == LAZY_DROP_WHILE_FLAG; + + LazyWrapper.prototype[methodName] = function(iteratee, thisArg) { + var filtered = this.__filtered__, + result = (filtered && isDropWhile) ? new LazyWrapper(this) : this.clone(), + iteratees = result.__iteratees__ || (result.__iteratees__ = []); + + iteratees.push({ + 'done': false, + 'count': 0, + 'index': 0, + 'iteratee': getCallback(iteratee, thisArg, 1), + 'limit': -1, + 'type': type + }); - // add "Chaining" functions to the wrapper - lodash.prototype.chain = wrapperChain; - lodash.prototype.toString = wrapperToString; - lodash.prototype.value = wrapperValueOf; - lodash.prototype.valueOf = wrapperValueOf; + result.__filtered__ = filtered || isFilter; + return result; + }; + }); - // add `Array` functions that return unwrapped values - baseEach(['join', 'pop', 'shift'], function(methodName) { - var func = arrayRef[methodName]; - lodash.prototype[methodName] = function() { - var chainAll = this.__chain__, - result = func.apply(this.__wrapped__, arguments); + // Add `LazyWrapper` methods for `_.drop` and `_.take` variants. + arrayEach(['drop', 'take'], function(methodName, index) { + var whileName = methodName + 'While'; + + LazyWrapper.prototype[methodName] = function(n) { + var filtered = this.__filtered__, + result = (filtered && !index) ? this.dropWhile() : this.clone(); + + n = n == null ? 1 : nativeMax(floor(n) || 0, 0); + if (filtered) { + if (index) { + result.__takeCount__ = nativeMin(result.__takeCount__, n); + } else { + last(result.__iteratees__).limit = n; + } + } else { + var views = result.__views__ || (result.__views__ = []); + views.push({ 'size': n, 'type': methodName + (result.__dir__ < 0 ? 'Right' : '') }); + } + return result; + }; + + LazyWrapper.prototype[methodName + 'Right'] = function(n) { + return this.reverse()[methodName](n).reverse(); + }; + + LazyWrapper.prototype[methodName + 'RightWhile'] = function(predicate, thisArg) { + return this.reverse()[whileName](predicate, thisArg).reverse(); + }; + }); + + // Add `LazyWrapper` methods for `_.first` and `_.last`. + arrayEach(['first', 'last'], function(methodName, index) { + var takeName = 'take' + (index ? 'Right' : ''); + + LazyWrapper.prototype[methodName] = function() { + return this[takeName](1).value()[0]; + }; + }); + + // Add `LazyWrapper` methods for `_.initial` and `_.rest`. + arrayEach(['initial', 'rest'], function(methodName, index) { + var dropName = 'drop' + (index ? '' : 'Right'); + + LazyWrapper.prototype[methodName] = function() { + return this[dropName](1); + }; + }); - return chainAll - ? new lodashWrapper(result, chainAll) - : result; + // Add `LazyWrapper` methods for `_.pluck` and `_.where`. + arrayEach(['pluck', 'where'], function(methodName, index) { + var operationName = index ? 'filter' : 'map', + createCallback = index ? baseMatches : property; + + LazyWrapper.prototype[methodName] = function(value) { + return this[operationName](createCallback(value)); }; }); - // add `Array` functions that return the wrapped value - baseEach(['push', 'reverse', 'sort', 'unshift'], function(methodName) { - var func = arrayRef[methodName]; + LazyWrapper.prototype.compact = function() { + return this.filter(identity); + }; + + LazyWrapper.prototype.reject = function(predicate, thisArg) { + predicate = getCallback(predicate, thisArg, 1); + return this.filter(function(value) { + return !predicate(value); + }); + }; + + LazyWrapper.prototype.slice = function(start, end) { + start = start == null ? 0 : (+start || 0); + + var result = this; + if (start < 0) { + result = this.takeRight(-start); + } else if (start) { + result = this.drop(start); + } + if (end !== undefined) { + end = (+end || 0); + result = end < 0 ? result.dropRight(-end) : result.take(end - start); + } + return result; + }; + + LazyWrapper.prototype.toArray = function() { + return this.drop(0); + }; + + // Add `LazyWrapper` methods to `lodash.prototype`. + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (!lodashFunc) { + return; + } + var checkIteratee = /^(?:filter|map|reject)|While$/.test(methodName), + retUnwrapped = /^(?:first|last)$/.test(methodName); + lodash.prototype[methodName] = function() { - func.apply(this.__wrapped__, arguments); - return this; + var args = arguments, + chainAll = this.__chain__, + value = this.__wrapped__, + isHybrid = !!this.__actions__.length, + isLazy = value instanceof LazyWrapper, + iteratee = args[0], + useLazy = isLazy || isArray(value); + + if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) { + // avoid lazy use if the iteratee has a "length" value other than `1` + isLazy = useLazy = false; + } + var onlyLazy = isLazy && !isHybrid; + if (retUnwrapped && !chainAll) { + return onlyLazy + ? func.call(value) + : lodashFunc.call(lodash, this.value()); + } + var interceptor = function(value) { + var otherArgs = [value]; + push.apply(otherArgs, args); + return lodashFunc.apply(lodash, otherArgs); + }; + if (useLazy) { + var wrapper = onlyLazy ? value : new LazyWrapper(this), + result = func.apply(wrapper, args); + + if (!retUnwrapped && (isHybrid || result.__actions__)) { + var actions = result.__actions__ || (result.__actions__ = []); + actions.push({ 'func': thru, 'args': [interceptor], 'thisArg': lodash }); + } + return new LodashWrapper(result, chainAll); + } + return this.thru(interceptor); }; }); - // add `Array` functions that return new wrapped values - baseEach(['concat', 'slice', 'splice'], function(methodName) { - var func = arrayRef[methodName]; + // Add `Array` and `String` methods to `lodash.prototype`. + arrayEach(['concat', 'join', 'pop', 'push', 'replace', 'shift', 'sort', 'splice', 'split', 'unshift'], function(methodName) { + var protoFunc = (/^(?:replace|split)$/.test(methodName) ? stringProto : arrayProto)[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', + fixObjects = !support.spliceObjects && /^(?:pop|shift|splice)$/.test(methodName), + retUnwrapped = /^(?:join|pop|replace|shift)$/.test(methodName); + + // Avoid array-like object bugs with `Array#shift` and `Array#splice` in + // IE < 9, Firefox < 10, and RingoJS. + var func = !fixObjects ? protoFunc : function() { + var result = protoFunc.apply(this, arguments); + if (this.length === 0) { + delete this[0]; + } + return result; + }; + lodash.prototype[methodName] = function() { - return new lodashWrapper(func.apply(this.__wrapped__, arguments), this.__chain__); + var args = arguments; + if (retUnwrapped && !this.__chain__) { + return func.apply(this.value(), args); + } + return this[chainName](function(value) { + return func.apply(value, args); + }); }; }); - // avoid array-like object bugs with `Array#shift` and `Array#splice` - // in IE < 9, Firefox < 10, Narwhal, and RingoJS - if (!support.spliceObjects) { - baseEach(['pop', 'shift', 'splice'], function(methodName) { - var func = arrayRef[methodName], - isSplice = methodName == 'splice'; + // Map minified function names to their real names. + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (lodashFunc) { + var key = lodashFunc.name, + names = realNames[key] || (realNames[key] = []); - lodash.prototype[methodName] = function() { - var chainAll = this.__chain__, - value = this.__wrapped__, - result = func.apply(value, arguments); + names.push({ 'name': methodName, 'func': lodashFunc }); + } + }); - if (value.length === 0) { - delete value[0]; - } - return (chainAll || isSplice) - ? new lodashWrapper(result, chainAll) - : result; - }; - }); - } + realNames[createHybridWrapper(null, BIND_KEY_FLAG).name] = [{ 'name': 'wrapper', 'func': null }]; + + // Add functions to the lazy wrapper. + LazyWrapper.prototype.clone = lazyClone; + LazyWrapper.prototype.reverse = lazyReverse; + LazyWrapper.prototype.value = lazyValue; + + // Add chaining functions to the `lodash` wrapper. + lodash.prototype.chain = wrapperChain; + lodash.prototype.commit = wrapperCommit; + lodash.prototype.plant = wrapperPlant; + lodash.prototype.reverse = wrapperReverse; + lodash.prototype.toString = wrapperToString; + lodash.prototype.run = lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + + // Add function aliases to the `lodash` wrapper. + lodash.prototype.collect = lodash.prototype.map; + lodash.prototype.head = lodash.prototype.first; + lodash.prototype.select = lodash.prototype.filter; + lodash.prototype.tail = lodash.prototype.rest; /*--------------------------------------------------------------------------*/ if (freeExports && freeModule) { - // in Node.js or RingoJS + // Export for Node.js or RingoJS. if (moduleExports) { (freeModule.exports = lodash)._ = lodash; } - } else { - // in a browser or Rhino + // Export for a browser or Rhino. root._ = lodash; } }.call(this)); @@ -16777,9 +19059,15 @@ window.iD = function () { return context; }; - context.locale = function(_, path) { - locale = _; + context.locale = function(loc, path) { + locale = loc; localePath = path; + + // Also set iD.detect().locale (unless we detected 'en-us' and openstreetmap wants 'en').. + if (!(loc.toLowerCase() === 'en' && iD.detect().locale.toLowerCase() === 'en-us')) { + iD.detect().locale = loc; + } + return context; }; @@ -17044,7 +19332,7 @@ window.iD = function () { return d3.rebind(context, dispatch, 'on'); }; -iD.version = '1.7.2'; +iD.version = '1.7.3'; (function() { var detected = {}; @@ -17091,7 +19379,7 @@ iD.version = '1.7.2'; // Added due to incomplete svg style support. See #715 detected.opera = (detected.browser.toLowerCase() === 'opera' && parseFloat(detected.version) < 15 ); - detected.locale = navigator.language || navigator.userLanguage; + detected.locale = navigator.language || navigator.userLanguage || 'en-US'; detected.filedrop = (window.FileReader && 'ondrop' in window); @@ -17494,7 +19782,7 @@ iD.util.editDistance = function(a, b) { // 1. Only works on HTML elements, not SVG // 2. Does not cause style recalculation iD.util.fastMouse = function(container) { - var rect = _.clone(container.getBoundingClientRect()), + var rect = container.getBoundingClientRect(), rectLeft = rect.left, rectTop = rect.top, clientLeft = +container.clientLeft, @@ -21746,7 +24034,7 @@ iD.modes.Browse = function(context) { }); if (sidebar) { - context.ui().sidebar.hide(sidebar); + context.ui().sidebar.hide(); } }; @@ -22417,9 +24705,13 @@ iD.modes.Save = function(context) { }); showErrors(); } else { - loading.close(); - context.flush(); + history.clearSaved(); success(e, changeset_id); + // Add delay to allow for postgres replication #1646 #2678 + window.setTimeout(function() { + loading.close(); + context.flush(); + }, 2500); } }); } else { // changes were insignificant or reverted by user @@ -22545,8 +24837,8 @@ iD.modes.Save = function(context) { id: changeset_id, comment: e.comment }) - .on('cancel', function(ui) { - context.ui().sidebar.hide(ui); + .on('cancel', function() { + context.ui().sidebar.hide(); }))); } @@ -22561,7 +24853,7 @@ iD.modes.Save = function(context) { }; mode.exit = function() { - context.ui().sidebar.hide(ui); + context.ui().sidebar.hide(); }; return mode; @@ -23369,20 +25661,11 @@ iD.Connection = function() { }; connection.loadMultiple = function(ids, callback) { - // TODO: upgrade lodash and just use _.chunk - function chunk(arr, chunkSize) { - var result = []; - for (var i = 0; i < arr.length; i += chunkSize) { - result.push(arr.slice(i, i + chunkSize)); - } - return result; - } - _.each(_.groupBy(_.uniq(ids), iD.Entity.id.type), function(v, k) { var type = k + 's', osmIDs = _.map(v, iD.Entity.id.toOSM); - _.each(chunk(osmIDs, 150), function(arr) { + _.each(_.chunk(osmIDs, 150), function(arr) { connection.loadFromURL( url + '/api/0.6/' + type + '?' + type + '=' + arr.join(), function(err, entities) { @@ -23557,8 +25840,6 @@ iD.Connection = function() { imagery_used: imageryUsed.join(';').substr(0, 255), host: (window.location.origin + window.location.pathname).substr(0, 255), locale: detected.locale, - browser: detected.browser + ' ' + detected.version, - platform: detected.platform }; if (comment) { @@ -23583,12 +25864,14 @@ iD.Connection = function() { content: JXON.stringify(connection.osmChangeJXON(changeset_id, changes)) }, function(err) { if (err) return callback(err); + // POST was successful, safe to call the callback. + // Still attempt to close changeset, but ignore response because #2667 + // Add delay to allow for postgres replication #1646 #2678 + window.setTimeout(function() { callback(null, changeset_id); }, 2500); oauth.xhr({ method: 'PUT', path: '/api/0.6/changeset/' + changeset_id + '/close' - }, function(err) { - callback(err, changeset_id); - }); + }, d3.functor(true)); }); }); }; @@ -23762,7 +26045,7 @@ iD.Difference = function(base, head) { var changes = {}, length = 0; function changed(h, b) { - return !_.isEqual(_.omit(h, 'v'), _.omit(b, 'v')); + return h !== b && !_.isEqual(_.omit(h, 'v'), _.omit(b, 'v')); } _.each(head.entities, function(h, id) { @@ -25142,9 +27425,17 @@ iD.Tree = function(head) { for (var i = 0; i < entities.length; i++) { var entity = entities[i]; - if (!entity.visible || (!force && (head.entities.hasOwnProperty(entity.id) || rectangles[entity.id]))) + if (!entity.visible) continue; + if (head.entities.hasOwnProperty(entity.id) || rectangles[entity.id]) { + if (!force) { + continue; + } else if (rectangles[entity.id]) { + rtree.remove(rectangles[entity.id]); + } + } + insertions[entity.id] = entity; updateParents(entity, insertions, {}); } @@ -27221,7 +29512,7 @@ iD.svg = { i = 0, offset = dt, segments = [], - viewport = iD.geo.Extent(projection.clipExtent()), + clip = d3.geo.clipExtent().extent(projection.clipExtent()).stream, coordinates = graph.childNodes(entity).map(function(n) { return n.loc; }); @@ -27231,7 +29522,7 @@ iD.svg = { d3.geo.stream({ type: 'LineString', coordinates: coordinates - }, projection.stream({ + }, projection.stream(clip({ lineStart: function() {}, lineEnd: function() { a = null; @@ -27240,10 +29531,9 @@ iD.svg = { b = [x, y]; if (a) { - var extent = iD.geo.Extent(a).extend(b), - span = iD.geo.euclideanDistance(a, b) - offset; + var span = iD.geo.euclideanDistance(a, b) - offset; - if (extent.intersects(viewport) && span >= 0) { + if (span >= 0) { var angle = Math.atan2(b[1] - a[1], b[0] - a[0]), dx = dt * Math.cos(angle), dy = dt * Math.sin(angle), @@ -27269,7 +29559,7 @@ iD.svg = { a = b; } - })); + }))); return segments; }; @@ -28640,6 +30930,11 @@ iD.ui = function(context) { .style('display', 'none') .call(iD.ui.MapInMap(context)); + content.append('div') + .attr('class', 'infobox fillD2') + .style('display', 'none') + .call(iD.ui.Info(context)); + bar.append('div') .attr('class', 'spacer col4'); @@ -30046,22 +32341,26 @@ iD.ui.EntityEditor = function(context) { } function clean(o) { - function isOpeningHours(k) { - return _.any(['opening_hours', 'service_times', 'collection_times', - 'operating_times', 'smoking_hours', 'happy_hours'], function(s) { - return k.indexOf(s) !== -1; - }); - } + function cleanVal(k, v) { + function keepSpaces(k) { + var whitelist = ['opening_hours', 'service_times', 'collection_times', + 'operating_times', 'smoking_hours', 'happy_hours']; + return _.any(whitelist, function(s) { return k.indexOf(s) !== -1; }); + } + + var blacklist = ['description', 'note', 'fixme']; + if (_.any(blacklist, function(s) { return k.indexOf(s) !== -1; })) return v; + var cleaned = v.split(';') .map(function(s) { return s.trim(); }) - .join(isOpeningHours(k) ? '; ' : ';'); + .join(keepSpaces(k) ? '; ' : ';'); // The code below is not intended to validate websites and emails. // It is only intended to prevent obvious copy-paste errors. (#2323) // clean website-like tags - if (k.indexOf('website') !== -1 || cleaned.indexOf('http') !== -1) { + if (k.indexOf('website') !== -1 || cleaned.indexOf('http') === 0) { cleaned = cleaned .replace(/[\u200B-\u200F\uFEFF]/g, '') // strip LRM and other zero width chars .replace(/[^\w\+\-\.\/\?\[\]\(\)~!@#$%&*',:;=]/g, encodeURIComponent); @@ -30518,7 +32817,7 @@ iD.ui.Help = function(context) { function clickHelp(d, i) { pane.property('scrollTop', 0); - doctitle.text(d.title); + doctitle.html(d.title); body.html(d.html); body.selectAll('a') .attr('target', '_blank'); @@ -30535,7 +32834,7 @@ iD.ui.Help = function(context) { clickHelp(docs[i - 1], i - 1); }); prevLink.append('span').attr('class', 'icon back blue'); - prevLink.append('span').text(docs[i - 1].title); + prevLink.append('span').html(docs[i - 1].title); } if (i < docs.length - 1) { var nextLink = nav.append('a') @@ -30543,7 +32842,7 @@ iD.ui.Help = function(context) { .on('click', function() { clickHelp(docs[i + 1], i + 1); }); - nextLink.append('span').text(docs[i + 1].title); + nextLink.append('span').html(docs[i + 1].title); nextLink.append('span').attr('class', 'icon forward blue'); } } @@ -30578,7 +32877,7 @@ iD.ui.Help = function(context) { .enter() .append('li') .append('a') - .text(function(d) { return d.title; }) + .html(function(d) { return d.title; }) .on('click', clickHelp); toc.append('li') @@ -30615,6 +32914,218 @@ iD.ui.Help = function(context) { return help; }; +iD.ui.Info = function(context) { + var key = iD.ui.cmd('⌘I'), + imperial = (iD.detect().locale.toLowerCase() === 'en-us'); + + function info(selection) { + function radiansToMeters(r) { + // using WGS84 authalic radius (6371007.1809 m) + return r * 6371007.1809; + } + + function steradiansToSqmeters(r) { + // http://gis.stackexchange.com/a/124857/40446 + return r / 12.56637 * 510065621724000; + } + + function displayLength(m) { + var d = m * (imperial ? 3.28084 : 1), + p, unit; + + if (imperial) { + if (d >= 5280) { + d /= 5280; + unit = 'mi'; + } else { + unit = 'ft'; + } + } else { + if (d >= 1000) { + d /= 1000; + unit = 'km'; + } else { + unit = 'm'; + } + } + + // drop unnecessary precision + p = d > 1000 ? 0 : d > 100 ? 1 : 2; + + return String(d.toFixed(p)) + ' ' + unit; + } + + function displayArea(m2) { + var d = m2 * (imperial ? 10.7639111056 : 1), + d1, d2, p1, p2, unit1, unit2; + + if (imperial) { + if (d >= 6969600) { // > 0.25mi² show mi² + d1 = d / 27878400; + unit1 = 'mi²'; + } else { + d1 = d; + unit1 = 'ft²'; + } + + if (d > 4356 && d < 43560000) { // 0.1 - 1000 acres + d2 = d / 43560; + unit2 = 'ac'; + } + + } else { + if (d >= 250000) { // > 0.25km² show km² + d1 = d / 1000000; + unit1 = 'km²'; + } else { + d1 = d; + unit1 = 'm²'; + } + + if (d > 1000 && d < 10000000) { // 0.1 - 1000 hectares + d2 = d / 10000; + unit2 = 'ha'; + } + } + + // drop unnecessary precision + p1 = d1 > 1000 ? 0 : d1 > 100 ? 1 : 2; + p2 = d2 > 1000 ? 0 : d2 > 100 ? 1 : 2; + + return String(d1.toFixed(p1)) + ' ' + unit1 + + (d2 ? ' (' + String(d2.toFixed(p2)) + ' ' + unit2 + ')' : ''); + } + + + function redraw() { + if (hidden()) return; + + var resolver = context.graph(), + selected = context.selectedIDs(), + singular = selected.length === 1 ? selected[0] : null, + extent = iD.geo.Extent(), + entity; + + selection.html(''); + selection.append('h4') + .attr('class', 'selection-heading fillD') + .text(singular || t('infobox.selected', { n: selected.length })); + + if (!selected.length) return; + + var center; + for (var i = 0; i < selected.length; i++) { + entity = context.entity(selected[i]); + extent._extend(entity.extent(resolver)); + } + center = extent.center(); + + + var list = selection.append('ul'); + + // multiple selection, just display extent center.. + if (!singular) { + list.append('li') + .text(t('infobox.center') + ': ' + center[0].toFixed(5) + ', ' + center[1].toFixed(5)); + return; + } + + // single selection, display details.. + if (!entity) return; + var geometry = entity.geometry(resolver); + + if (geometry === 'line' || geometry === 'area') { + var closed = (entity.type === 'relation') || (entity.isClosed() && !entity.isDegenerate()), + feature = entity.asGeoJSON(resolver), + length = radiansToMeters(d3.geo.length(feature)), + lengthLabel = t('infobox.' + (closed ? 'perimeter' : 'length')), + centroid = d3.geo.centroid(feature); + + list.append('li') + .text(t('infobox.geometry') + ': ' + + (closed ? t('infobox.closed') + ' ' : '') + t('geometry.' + geometry) ); + + if (closed) { + var area = steradiansToSqmeters(entity.area(resolver)); + list.append('li') + .text(t('infobox.area') + ': ' + displayArea(area)); + } + + list.append('li') + .text(lengthLabel + ': ' + displayLength(length)); + + list.append('li') + .text(t('infobox.centroid') + ': ' + centroid[0].toFixed(5) + ', ' + centroid[1].toFixed(5)); + + + var toggle = imperial ? 'imperial' : 'metric'; + selection.append('a') + .text(t('infobox.' + toggle)) + .attr('href', '#') + .attr('class', 'button') + .on('click', function() { + d3.event.preventDefault(); + imperial = !imperial; + redraw(); + }); + + } else { + var centerLabel = t('infobox.' + (entity.type === 'node' ? 'location' : 'center')); + + list.append('li') + .text(t('infobox.geometry') + ': ' + t('geometry.' + geometry)); + + list.append('li') + .text(centerLabel + ': ' + center[0].toFixed(5) + ', ' + center[1].toFixed(5)); + } + } + + + function hidden() { + return selection.style('display') === 'none'; + } + + + function toggle() { + if (d3.event) d3.event.preventDefault(); + + if (hidden()) { + selection + .style('display', 'block') + .style('opacity', 0) + .transition() + .duration(200) + .style('opacity', 1); + + redraw(); + + } else { + selection + .style('display', 'block') + .style('opacity', 1) + .transition() + .duration(200) + .style('opacity', 0) + .each('end', function() { + d3.select(this).style('display', 'none'); + }); + } + } + + context.map() + .on('drawn.info', redraw); + + redraw(); + + var keybinding = d3.keybinding('info') + .on(key, toggle); + + d3.select(document) + .call(keybinding); + } + + return info; +}; iD.ui.Inspector = function(context) { var presetList = iD.ui.PresetList(context), entityEditor = iD.ui.EntityEditor(context), @@ -33058,12 +35569,12 @@ iD.ui.Save = function(context) { }; iD.ui.Scale = function(context) { var projection = context.projection, - imperial = (iD.detect().locale.toLowerCase() === 'en-us'), maxLength = 180, tickHeight = 8; function scaleDefs(loc1, loc2) { var lat = (loc2[1] + loc1[1]) / 2, + imperial = (iD.detect().locale.toLowerCase() === 'en-us'), conversion = (imperial ? 3.28084 : 1), dist = iD.geo.lonToMeters(loc2[0] - loc1[0], lat) * conversion, scale = { dist: 0, px: 0, text: '' }, @@ -33306,6 +35817,7 @@ iD.ui.SourceSwitch = function(context) { context.connection() .switch(live ? keys[1] : keys[0]); + context.enter(iD.modes.Browse(context)); context.flush(); d3.select(this) @@ -49551,7 +52063,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "multipolygon": { "relation": [ - 140, + 141, 25 ] }, @@ -50113,6 +52625,26 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "list": "Edits by {users}", "truncated_list": "Edits by {users} and {count} others" }, + "infobox": { + "selected": "{n} selected", + "geometry": "Geometry", + "closed": "closed", + "center": "Center", + "perimeter": "Perimeter", + "length": "Length", + "area": "Area", + "centroid": "Centroid", + "location": "Location", + "metric": "Metric", + "imperial": "Imperial" + }, + "geometry": { + "point": "point", + "vertex": "vertex", + "line": "line", + "area": "area", + "relation": "relation" + }, "geocoder": { "search": "Search worldwide...", "no_results_visible": "No results in visible map area", @@ -50604,6 +53136,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "construction": { "label": "Type" }, + "content": { + "label": "Contents" + }, "country": { "label": "Country" }, @@ -50975,6 +53510,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "power": { "label": "Type" }, + "power_supply": { + "label": "Power Supply" + }, "railway": { "label": "Type" }, @@ -51023,6 +53561,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "difficult_alpine_hiking": "T6: Difficult Alpine Hiking" } }, + "sanitary_dump_station": { + "label": "Toilet Disposal" + }, "seasonal": { "label": "Seasonal" }, @@ -51193,6 +53734,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "water": { "label": "Type" }, + "water_point": { + "label": "Water Point" + }, "waterway": { "label": "Type" }, @@ -51334,6 +53878,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Bicycle Repair Station", "terms": "bike" }, + "amenity/biergarten": { + "name": "Beer Garden", + "terms": "beer,bier,booze" + }, "amenity/boat_rental": { "name": "Boat Rental", "terms": "" @@ -51530,6 +54078,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Restaurant", "terms": "bar,breakfast,cafe,café,canteen,coffee,dine,dining,dinner,drive-in,eat,grill,lunch,table" }, + "amenity/sanitary_dump_station": { + "name": "RV Toilet Disposal", + "terms": "Motor Home,Camper,Sanitary,Dump Station,Elsan,CDP,CTDP,Chemical Toilet" + }, "amenity/school": { "name": "School Grounds", "terms": "academy,elementary school,middle school,high school" @@ -52510,6 +55062,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Pipeline", "terms": "" }, + "man_made/silo": { + "name": "Silo", + "terms": "grain,corn,wheat" + }, + "man_made/storage_tank": { + "name": "Storage Tank", + "terms": "water,oil,gas,petrol" + }, "man_made/survey_point": { "name": "Survey Point", "terms": "" @@ -53336,11 +55896,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "tourism/camp_site": { "name": "Camp Site", - "terms": "" + "terms": "Tent" }, "tourism/caravan_site": { "name": "RV Park", - "terms": "" + "terms": "Motor Home,Camper" }, "tourism/chalet": { "name": "Chalet", @@ -53522,6 +56082,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Drain", "terms": "" }, + "waterway/fuel": { + "name": "Marine Fuel Station", + "terms": "petrol,gas,diesel,boat" + }, "waterway/river": { "name": "River", "terms": "beck,branch,brook,course,creek,estuary,rill,rivulet,run,runnel,stream,tributary,watercourse" @@ -53530,6 +56094,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Riverbank", "terms": "" }, + "waterway/sanitary_dump_station": { + "name": "Marine Toilet Disposal", + "terms": "Boat,Watercraft,Sanitary,Dump Station,Pumpout,Pump out,Elsan,CDP,CTDP,Chemical Toilet" + }, "waterway/stream": { "name": "Stream", "terms": "beck,branch,brook,burn,course,creek,current,drift,flood,flow,freshet,race,rill,rindle,rivulet,run,runnel,rush,spate,spritz,surge,tide,torrent,tributary,watercourse" @@ -53976,9 +56544,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "ENEOS": { "count": 736 }, - "Stacja paliw": { - "count": 94 - }, "Bharat Petroleum": { "count": 64 }, @@ -54389,7 +56954,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," } }, "Taco Bell": { - "count": 1423 + "count": 1423, + "tags": { + "cuisine": "mexican" + } }, "Pizza Nova": { "count": 63 @@ -54406,9 +56974,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Mr. Sub": { "count": 103 }, - "Kebab": { - "count": 182 - }, "Макдоналдс": { "count": 324, "tags": { @@ -54418,9 +56983,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Asia Imbiss": { "count": 111 }, - "Imbiss": { - "count": 199 - }, "Chipotle": { "count": 290, "tags": { @@ -54490,7 +57052,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," } }, "Panda Express": { - "count": 238 + "count": 238, + "tags": { + "cuisine": "chinese" + } }, "Whataburger": { "count": 364 @@ -54546,7 +57111,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "restaurant": { "Pizza Hut": { - "count": 1180 + "count": 1180, + "tags": { + "cuisine": "pizza" + } }, "Little Chef": { "count": 64 @@ -54620,12 +57188,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Hirschen": { "count": 79 }, - "Papa John's": { - "count": 67, - "tags": { - "cuisine": "pizza" - } - }, "Denny's": { "count": 450 }, @@ -54935,9 +57497,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "ジョナサン": { "count": 59 }, - "Arby's": { - "count": 51 - }, "Longhorn Steakhouse": { "count": 66 } @@ -55504,7 +58063,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Security Bank": { "count": 78 }, - "Millenium Bank": { + "Millenium": { "count": 60 }, "Bankia": { @@ -55999,9 +58558,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Second Cup": { "count": 193 }, - "Eisdiele": { - "count": 73 - }, "Dunkin Donuts": { "count": 428, "tags": { @@ -56097,10 +58653,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 547 }, "Lidl": { - "count": 6208 + "count": 7130 }, - "EDEKA": { - "count": 506 + "Edeka": { + "count": 2293 }, "Coles": { "count": 400 @@ -56109,7 +58665,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 315 }, "Coop": { - "count": 1906 + "count": 2100 }, "Tesco": { "count": 1297 @@ -56156,11 +58712,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Netto": { "count": 4379 }, - "REWE": { - "count": 1474 - }, "Rewe": { - "count": 1171 + "count": 2645 }, "Aldi Süd": { "count": 594 @@ -56177,9 +58730,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Kiwi": { "count": 167 }, - "Edeka": { - "count": 1787 - }, "Pick n Pay": { "count": 241 }, @@ -56196,7 +58746,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 258 }, "Spar": { - "count": 2100 + "count": 2386 }, "Hofer": { "count": 442 @@ -56204,9 +58754,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "M-Preis": { "count": 76 }, - "LIDL": { - "count": 922 - }, "tegut": { "count": 210 }, @@ -56279,9 +58826,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Hoogvliet": { "count": 53 }, - "COOP": { - "count": 194 - }, "Food Basics": { "count": 75 }, @@ -56409,7 +58953,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 80 }, "Whole Foods": { - "count": 210 + "count": 210, + "tags": { + "shop": "supermarket" + } }, "Pam": { "count": 56 @@ -56528,8 +59075,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Unimarc": { "count": 177 }, - "Co-operative Food": { - "count": 59 + "The Co-operative Food": { + "count": 190 }, "Santa Isabel": { "count": 128 @@ -56612,9 +59159,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Carrefour Contact": { "count": 83 }, - "SPAR": { - "count": 286 - }, "No Frills": { "count": 105 }, @@ -56630,9 +59174,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Biedronka": { "count": 1335 }, - "The Co-operative Food": { - "count": 131 - }, "Eurospin": { "count": 155 }, @@ -56854,7 +59395,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 255 }, "Spar": { - "count": 922 + "count": 1119 }, "McColl's": { "count": 100 @@ -56884,7 +59425,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 135 }, "Coop": { - "count": 538 + "count": 678 }, "Sale": { "count": 80 @@ -56928,12 +59469,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Valintatalo": { "count": 62 }, - "SPAR": { - "count": 197 - }, - "COOP": { - "count": 140 - }, "Casino": { "count": 90 }, @@ -57069,9 +59604,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Гастроном": { "count": 152 }, - "Sklep spożywczy": { - "count": 318 - }, "Centra": { "count": 111 }, @@ -57138,6 +59670,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Kiosk": { "count": 55 }, + "Sklep spożywczy": { + "count": 130 + }, "24 часа": { "count": 58 }, @@ -57177,9 +59712,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "เซเว่นอีเลฟเว่น": { "count": 185 }, - "Spożywczy": { - "count": 78 - }, "Delikatesy Centrum": { "count": 53 }, @@ -57341,14 +59873,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "count": 83 }, "Kwik Fit": { - "count": 75 + "count": 128 }, "ATU": { "count": 261 }, - "Kwik-Fit": { - "count": 53 - }, "Midas": { "count": 202 }, @@ -57397,9 +59926,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Firestone": { "count": 88 }, - "AutoZone": { - "count": 82 - }, "Автосервис": { "count": 361 }, @@ -58033,9 +60559,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Backwerk": { "count": 95 }, - "Bäcker": { - "count": 68 - }, "Schäfer's": { "count": 51 }, @@ -58057,9 +60580,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Хлеб": { "count": 89 }, - "Piekarnia": { - "count": 62 - }, "Пекарня": { "count": 52 }, @@ -58346,9 +60866,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "Стиль": { "count": 51 }, - "Fryzjer": { - "count": 56 - }, "Franck Provost": { "count": 70 }, diff --git a/vendor/assets/iD/iD/locales/af.json b/vendor/assets/iD/iD/locales/af.json index 6dcdfe125..9c29351aa 100644 --- a/vendor/assets/iD/iD/locales/af.json +++ b/vendor/assets/iD/iD/locales/af.json @@ -159,7 +159,6 @@ "commit": { "title": "Bêre veranderinge", "description_placeholder": "Kortlikse beskrywing van jou bydraes", - "message_label": "Bêre boodskap", "save": "Bȇre", "cancel": "Kanseleer", "warnings": "Waarskuwings", @@ -296,37 +295,37 @@ "fields": { "access": { "label": "Toegang", - "placeholder": "Onbekend", - "types": { - "access": "Algemene", - "foot": "Voet", - "motor_vehicle": "Motorvoertuie", - "bicycle": "Fietse", - "horse": "Perde" - }, "options": { - "yes": { - "title": "Toegelaat" + "designated": { + "description": "Voorgeskrewe toegang", + "title": "Toegewys" + }, + "destination": { + "description": "Beperkte toegang", + "title": "Eindbestemming" }, "no": { - "title": "Toegang Verbode", - "description": "Geen toegang vir algemene publiek" + "description": "Geen toegang vir algemene publiek", + "title": "Toegang Verbode" }, "permissive": { "description": "Voorwaardelike toegang" }, "private": { - "title": "Privaat", - "description": "Toegang slegs soos gereël met eienaar" - }, - "designated": { - "title": "Toegewys", - "description": "Voorgeskrewe toegang" + "description": "Toegang slegs soos gereël met eienaar", + "title": "Privaat" }, - "destination": { - "title": "Eindbestemming", - "description": "Beperkte toegang" + "yes": { + "title": "Toegelaat" } + }, + "placeholder": "Onbekend", + "types": { + "access": "Algemene", + "bicycle": "Fietse", + "foot": "Voet", + "horse": "Perde", + "motor_vehicle": "Motorvoertuie" } }, "access_simple": { @@ -336,11 +335,11 @@ "address": { "label": "Adres", "placeholders": { - "housename": "Huisnaam", - "street": "Straat", "city": "Tipe", + "housename": "Huisnaam", + "place": "Plek", "postcode": "Poskode", - "place": "Plek" + "street": "Straat" } }, "admin_level": { @@ -391,21 +390,21 @@ "cardinal_direction": { "label": "Rigting", "options": { - "N": "Noord", "E": "Oos", - "S": "Suid", - "W": "Wes", + "N": "Noord", "NE": "Noordoos", + "NW": "Noordwes", + "S": "Suid", "SE": "Suidoos", "SW": "Suidwes", - "NW": "Noordwes" + "W": "Wes" } }, "clock_direction": { "label": "Rigting", "options": { - "clockwise": "Kloksgewys", - "anticlockwise": "Antikloksgewys" + "anticlockwise": "Antikloksgewys", + "clockwise": "Kloksgewys" } }, "collection_times": { @@ -472,9 +471,9 @@ "internet_access": { "label": "Internet Toegang", "options": { - "wlan": "Wifi", + "terminal": "Terminaal", "wired": "Bedraad", - "terminal": "Terminaal" + "wlan": "Wifi" } }, "landuse": { @@ -586,13 +585,13 @@ }, "structure": { "label": "Struktuur", - "placeholder": "Onbekend", "options": { "bridge": "Brug", - "tunnel": "Tonnel", + "cutting": "Uitgrawing", "embankment": "Dyk", - "cutting": "Uitgrawing" - } + "tunnel": "Tonnel" + }, + "placeholder": "Onbekend" }, "supervised": { "label": "Onder toesig" diff --git a/vendor/assets/iD/iD/locales/ar.json b/vendor/assets/iD/iD/locales/ar.json index c2e77533a..024f296f6 100644 --- a/vendor/assets/iD/iD/locales/ar.json +++ b/vendor/assets/iD/iD/locales/ar.json @@ -202,7 +202,6 @@ "commit": { "title": "إحفظ التغييرات", "description_placeholder": "وصف مختصر لمساهماتك", - "message_label": "شرح التغيير ", "save": "حفظ", "cancel": "إلغاء", "warnings": "تنبيه", @@ -382,39 +381,39 @@ "fields": { "access": { "label": "الدخول", - "placeholder": "غير معروف", - "types": { - "access": "عام", - "foot": "بالقدم", - "motor_vehicle": "مركبات", - "bicycle": "درجات هوائية", - "horse": "أحصنة" - }, "options": { - "yes": { - "title": "مسموح", - "description": "الدخول مسموح به بنص القانون، حق الطريق" + "designated": { + "description": "الدخول مصرح به وفقا للعلامات أو قوانين محلية مخصصة.", + "title": "مخصص" + }, + "destination": { + "description": "الدخول مسموح به فقط للوصل إلى وجهة معينة", + "title": "الوجهة" }, "no": { - "title": "محظور", - "description": "الدخول ليس مسموحا به للعامة" + "description": "الدخول ليس مسموحا به للعامة", + "title": "محظور" }, "permissive": { - "title": "مرخص", - "description": "الدخول مسموح به حتى يلغى المالك هذا الترخيص." + "description": "الدخول مسموح به حتى يلغى المالك هذا الترخيص.", + "title": "مرخص" }, "private": { - "title": "خاص", - "description": "الدخول مسموح به فقط بإذن من المالك على أساس فردي." + "description": "الدخول مسموح به فقط بإذن من المالك على أساس فردي.", + "title": "خاص" }, - "designated": { - "title": "مخصص", - "description": "الدخول مصرح به وفقا للعلامات أو قوانين محلية مخصصة." - }, - "destination": { - "title": "الوجهة", - "description": "الدخول مسموح به فقط للوصل إلى وجهة معينة" + "yes": { + "description": "الدخول مسموح به بنص القانون، حق الطريق", + "title": "مسموح" } + }, + "placeholder": "غير معروف", + "types": { + "access": "عام", + "bicycle": "درجات هوائية", + "foot": "بالقدم", + "horse": "أحصنة", + "motor_vehicle": "مركبات" } }, "access_simple": { @@ -427,13 +426,13 @@ "address": { "label": "العنوان", "placeholders": { + "city": "المدينة", + "country": "دولة", "housename": "اسم المنزل", "housenumber": "123", - "street": "الشارع", - "city": "المدينة", "postcode": "الرمز البريدي", "state": "ولاية", - "country": "دولة" + "street": "الشارع" } }, "admin_level": { @@ -445,9 +444,9 @@ "aerialway/access": { "label": "دخول", "options": { + "both": "كلاهما", "entry": "مدخل", - "exit": "مخرج", - "both": "كلاهما" + "exit": "مخرج" } }, "aerialway/duration": { @@ -497,8 +496,8 @@ "clock_direction": { "label": "الاتجاه", "options": { - "clockwise": "باتجاه عقارب الساعة", - "anticlockwise": "عكس عقارب الساعة" + "anticlockwise": "عكس عقارب الساعة", + "clockwise": "باتجاه عقارب الساعة" } }, "collection_times": { @@ -574,9 +573,9 @@ "internet_access": { "label": "إنترنت", "options": { - "wlan": "واي فاي", + "terminal": "بوابة", "wired": "سلكي", - "terminal": "بوابة" + "wlan": "واي فاي" } }, "landuse": { @@ -694,13 +693,13 @@ }, "structure": { "label": "بنية", - "placeholder": "غير معروف", "options": { "bridge": "جسر", - "tunnel": "نفق", + "cutting": "طريق منخفض", "embankment": "طريق مرتفع", - "cutting": "طريق منخفض" - } + "tunnel": "نفق" + }, + "placeholder": "غير معروف" }, "supervised": { "label": "مراقب" diff --git a/vendor/assets/iD/iD/locales/ast.json b/vendor/assets/iD/iD/locales/ast.json index 79f14661c..051ad6f15 100644 --- a/vendor/assets/iD/iD/locales/ast.json +++ b/vendor/assets/iD/iD/locales/ast.json @@ -179,7 +179,6 @@ "commit": { "title": "Guardar cambios", "description_placeholder": "Descripción curtia de les collaboraciones", - "message_label": "Mensaxe d'unviu", "upload_explanation": "Los cambios que xuba tarán visibles en tolos mapes qu'usen los datos d'OpenStreetMap.", "save": "Guardar", "cancel": "Encaboxar", @@ -351,39 +350,39 @@ "fields": { "access": { "label": "Accesu", - "placeholder": "Desconocíu", - "types": { - "access": "Xeneral", - "foot": "A pie", - "motor_vehicle": "Vehículos de motor", - "bicycle": "Bicicletes", - "horse": "Caballos" - }, "options": { - "yes": { - "title": "Permitíu", - "description": "Accesu permitíu por llei; un drechu de pasu" + "designated": { + "description": "Accesu permitíu acordies con señales o lleis llocales especifiques", + "title": "Designáu" + }, + "destination": { + "description": "Accesu permitíu sólo de pasu a un destín", + "title": "Destín" }, "no": { - "title": "Torgáu", - "description": "Accesu nun permitíu al públicu en xeneral" + "description": "Accesu nun permitíu al públicu en xeneral", + "title": "Torgáu" }, "permissive": { - "title": "Permisivu", - "description": "Accesu permitíu mentanto'l propietariu nun quite'l permisu" + "description": "Accesu permitíu mentanto'l propietariu nun quite'l permisu", + "title": "Permisivu" }, "private": { - "title": "Priváu", - "description": "Accesu permitíu sólo col permisu del propietariu de manera individual" + "description": "Accesu permitíu sólo col permisu del propietariu de manera individual", + "title": "Priváu" }, - "designated": { - "title": "Designáu", - "description": "Accesu permitíu acordies con señales o lleis llocales especifiques" - }, - "destination": { - "title": "Destín", - "description": "Accesu permitíu sólo de pasu a un destín" + "yes": { + "description": "Accesu permitíu por llei; un drechu de pasu", + "title": "Permitíu" } + }, + "placeholder": "Desconocíu", + "types": { + "access": "Xeneral", + "bicycle": "Bicicletes", + "foot": "A pie", + "horse": "Caballos", + "motor_vehicle": "Vehículos de motor" } }, "access_simple": { @@ -392,8 +391,8 @@ "address": { "label": "Direición", "placeholders": { - "street": "Cai", - "city": "Ciudá" + "city": "Ciudá", + "street": "Cai" } }, "admin_level": { @@ -463,8 +462,8 @@ "clock_direction": { "label": "Direición", "options": { - "clockwise": "Sentíu horariu", - "anticlockwise": "Sentíu antihorariu" + "anticlockwise": "Sentíu antihorariu", + "clockwise": "Sentíu horariu" } }, "collection_times": { @@ -593,9 +592,9 @@ "internet_access": { "label": "Accesu a Internet", "options": { - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Per cable", - "terminal": "Terminal" + "wlan": "Wifi" } }, "landuse": { @@ -751,14 +750,14 @@ }, "structure": { "label": "Estructura", - "placeholder": "Desconocíu", "options": { "bridge": "Ponte", - "tunnel": "Túnel", - "embankment": "Rellenu", "cutting": "Trinchera", - "ford": "Vau" - } + "embankment": "Rellenu", + "ford": "Vau", + "tunnel": "Túnel" + }, + "placeholder": "Desconocíu" }, "studio_type": { "label": "Tipu" diff --git a/vendor/assets/iD/iD/locales/bg-BG.json b/vendor/assets/iD/iD/locales/bg-BG.json index 9f89bb11e..b59c107a8 100644 --- a/vendor/assets/iD/iD/locales/bg-BG.json +++ b/vendor/assets/iD/iD/locales/bg-BG.json @@ -209,7 +209,6 @@ "commit": { "title": "Запис на промените", "description_placeholder": "Кратко описание на вашия принос", - "message_label": "Предайте съобщение", "upload_explanation": "Промените, които качвате ще са видими на всички карти използващи данни от OpenStreetMap.", "upload_explanation_with_user": "Промените, които качвате като {user} ще са видими на всички карти използващи данни от OpenStreetMap.", "save": "Запис", @@ -387,55 +386,55 @@ "fields": { "access": { "label": "Достъп", - "placeholder": "Неизвестен", - "types": { - "access": "Публичен", - "foot": "Пешеходен", - "motor_vehicle": "МПС", - "bicycle": "Велосипеди", - "horse": "Коне" - }, "options": { - "yes": { - "title": "Разрешен", - "description": "Достъпът позволен с нормативен акт; право на преминаване" + "designated": { + "description": "Достъпът позволен според указателни табели или специфични местни разпоредби", + "title": "По предназначение" + }, + "destination": { + "description": "Достъпът разрешен само за достигане до дестинация", + "title": "До дестинация" }, "no": { - "title": "Забранен", - "description": "Забранен публичният достъп" + "description": "Забранен публичният достъп", + "title": "Забранен" }, "permissive": { - "title": "Частичен", - "description": "Достъпът позволен докато собственика позволява" + "description": "Достъпът позволен докато собственика позволява", + "title": "Частичен" }, "private": { - "title": "Частен", - "description": "Достъпът разрешен само с позволение на собственика" - }, - "designated": { - "title": "По предназначение", - "description": "Достъпът позволен според указателни табели или специфични местни разпоредби" + "description": "Достъпът разрешен само с позволение на собственика", + "title": "Частен" }, - "destination": { - "title": "До дестинация", - "description": "Достъпът разрешен само за достигане до дестинация" + "yes": { + "description": "Достъпът позволен с нормативен акт; право на преминаване", + "title": "Разрешен" } + }, + "placeholder": "Неизвестен", + "types": { + "access": "Публичен", + "bicycle": "Велосипеди", + "foot": "Пешеходен", + "horse": "Коне", + "motor_vehicle": "МПС" } }, "address": { "label": "Адрес", "placeholders": { + "city": "Град", + "country": "Държава", + "district": "Община", "housename": "Къща", "housenumber": "123", - "street": "Улица", - "city": "Град", "place": "Място", - "suburb": "Квартал", - "subdistrict": "Землище", - "district": "Община", "province": "Област", "state": "Икономически район NUT2", - "country": "Държава" + "street": "Улица", + "subdistrict": "Землище", + "suburb": "Квартал" } }, "admin_level": { @@ -475,8 +474,8 @@ "clock_direction": { "label": "Посока", "options": { - "clockwise": "По часовниковата стрелка", - "anticlockwise": "Обратно на часовниковата стрелка" + "anticlockwise": "Обратно на часовниковата стрелка", + "clockwise": "По часовниковата стрелка" } }, "collection_times": { @@ -540,9 +539,9 @@ "internet_access": { "label": "Интернет достъп", "options": { - "wlan": "Wifi", + "terminal": "Терминал", "wired": "Кабелен", - "terminal": "Терминал" + "wlan": "Wifi" } }, "lamp_type": { @@ -657,13 +656,13 @@ }, "structure": { "label": "Структура", - "placeholder": "Неизвестен", "options": { "bridge": "Мост", - "tunnel": "Тунел", + "cutting": "Изкоп", "embankment": "Насип", - "cutting": "Изкоп" - } + "tunnel": "Тунел" + }, + "placeholder": "Неизвестен" }, "supervised": { "label": "Под наблюдение" diff --git a/vendor/assets/iD/iD/locales/bn.json b/vendor/assets/iD/iD/locales/bn.json index 8400c31d7..10601e578 100644 --- a/vendor/assets/iD/iD/locales/bn.json +++ b/vendor/assets/iD/iD/locales/bn.json @@ -196,7 +196,6 @@ "commit": { "title": "পরিবর্তনগুলিকে সেভ করুন", "description_placeholder": "অাপনার সাহায্যের সংক্ষিপ্ত বিবরন", - "message_label": "কমিট বার্তা", "save": "সেভ করুন", "cancel": "বাতিল করুন", "warnings": "সতর্ক বার্তাসমুহ", @@ -368,38 +367,38 @@ "fields": { "access": { "label": "প্রবেশ করা", - "placeholder": "অজানা", - "types": { - "access": "সাধারণ", - "foot": "পদচালন", - "motor_vehicle": "মোটরগাড়ি", - "bicycle": "সাইকেল", - "horse": "ঘোড়া" - }, "options": { - "yes": { - "title": "অনুমোদিত", - "description": "অাইনানুসারে প্রবেশ অনুমোদিত" + "designated": { + "description": "কোন চিহ্ন বা স্থানীয় অাইন অনুযায়ী প্রবেশ অনুমোদিত।" + }, + "destination": { + "description": "শুধুমাত্র কোন গন্তব্যে পৌছানোর জন্য প্রবেশ অনুমোদিত।", + "title": "গন্তব্য" }, "no": { - "title": "নিষিদ্ধ", - "description": "জনসাধারনের প্রবেশ অনুমোদিত নয়।" + "description": "জনসাধারনের প্রবেশ অনুমোদিত নয়।", + "title": "নিষিদ্ধ" }, "permissive": { - "title": "অনুমতিসূচক", - "description": "প্রবেশ অনুমোদিত, যতক্ষন অব্দি এর মালিক অনুমতি প্রত্যাহার না করছেন।" + "description": "প্রবেশ অনুমোদিত, যতক্ষন অব্দি এর মালিক অনুমতি প্রত্যাহার না করছেন।", + "title": "অনুমতিসূচক" }, "private": { - "title": "একান্ত", - "description": "প্রত্যেক ব্যক্তির জন্য মালিক-এর অনুমতি থাকলে প্রবেশ অনুমোদিত।" + "description": "প্রত্যেক ব্যক্তির জন্য মালিক-এর অনুমতি থাকলে প্রবেশ অনুমোদিত।", + "title": "একান্ত" }, - "designated": { - "description": "কোন চিহ্ন বা স্থানীয় অাইন অনুযায়ী প্রবেশ অনুমোদিত।" - }, - "destination": { - "title": "গন্তব্য", - "description": "শুধুমাত্র কোন গন্তব্যে পৌছানোর জন্য প্রবেশ অনুমোদিত।" + "yes": { + "description": "অাইনানুসারে প্রবেশ অনুমোদিত", + "title": "অনুমোদিত" } + }, + "placeholder": "অজানা", + "types": { + "access": "সাধারণ", + "bicycle": "সাইকেল", + "foot": "পদচালন", + "horse": "ঘোড়া", + "motor_vehicle": "মোটরগাড়ি" } }, "access_simple": { @@ -412,17 +411,17 @@ "address": { "label": "ঠিকানা", "placeholders": { + "city": "শহর", + "country": "দেশ", + "district": "জেলা", "housename": "বাড়ির নাম", "housenumber": "১২৩", - "street": "স্ট্রীট", - "city": "শহর", - "postcode": "পিনকোড", "place": "জায়গা", - "suburb": "শহরতলি", - "subdistrict": "উপজেলা", - "district": "জেলা", + "postcode": "পিনকোড", "state": "রাজ্য", - "country": "দেশ" + "street": "স্ট্রীট", + "subdistrict": "উপজেলা", + "suburb": "শহরতলি" } }, "aerialway": { @@ -431,9 +430,9 @@ "aerialway/access": { "label": "প্রবেশ করা", "options": { + "both": "উভয়", "entry": "প্রবেশ", - "exit": "প্রস্থাণ", - "both": "উভয়" + "exit": "প্রস্থাণ" } }, "aerialway/capacity": { @@ -447,9 +446,9 @@ }, "aerialway/summer/access": { "options": { + "both": "উভয়", "entry": "প্রবেশ", - "exit": "প্রস্থাণ", - "both": "উভয়" + "exit": "প্রস্থাণ" } }, "aeroway": { @@ -489,18 +488,18 @@ "cardinal_direction": { "label": "দিক/অভিমুখ", "options": { - "N": "উত্তর", "E": "পূর্ব", + "N": "উত্তর", + "NE": "উত্তরপূর্ব", "S": "দক্ষিণ", - "W": "পশ্চিম", - "NE": "উত্তরপূর্ব" + "W": "পশ্চিম" } }, "clock_direction": { "label": "দিক/অভিমুখ", "options": { - "clockwise": "ঘড়ির কাটার দিকে", - "anticlockwise": "ঘড়ির কাটার উল্টো দিকে" + "anticlockwise": "ঘড়ির কাটার উল্টো দিকে", + "clockwise": "ঘড়ির কাটার দিকে" } }, "collection_times": { @@ -540,8 +539,8 @@ "fire_hydrant/type": { "label": "টাইপ", "options": { - "wall": "দেয়াল", - "pond": "পুকুর" + "pond": "পুকুর", + "wall": "দেয়াল" } }, "fixme": { @@ -581,11 +580,11 @@ "internet_access": { "label": "ইন্টারনেট সুবিধা", "options": { - "yes": "হ্যা", "no": "না", - "wlan": "তারবিহীন", + "terminal": "টার্মিনাল", "wired": "তারযুক্ত", - "terminal": "টার্মিনাল" + "wlan": "তারবিহীন", + "yes": "হ্যা" } }, "landuse": { @@ -697,11 +696,11 @@ }, "structure": { "label": "কাঠামো", - "placeholder": "অজানা", "options": { "bridge": "সেতু", "tunnel": "সুড়ঙ্গ" - } + }, + "placeholder": "অজানা" }, "surface": { "label": "উপরিভাগ" diff --git a/vendor/assets/iD/iD/locales/bs.json b/vendor/assets/iD/iD/locales/bs.json index d560e1173..e1759aa4e 100644 --- a/vendor/assets/iD/iD/locales/bs.json +++ b/vendor/assets/iD/iD/locales/bs.json @@ -208,7 +208,6 @@ "commit": { "title": "Sačuvajte izmjene", "description_placeholder": "Kratak opis Vaših doprinosa", - "message_label": "Predaja poruke", "upload_explanation": "Promjene koje postavite će biti vidljive na svim kartama koje koriste OpenStreetMap podatke.", "upload_explanation_with_user": "Promjene koje postavite kao {user} će biti vidljive na svim kartama koje koriste OpenStreetMap podatke.", "save": "Sačuvajte", @@ -413,39 +412,39 @@ "fields": { "access": { "label": "Pristup", - "placeholder": "Nepoznato", - "types": { - "access": "Opće", - "foot": "Pješke", - "motor_vehicle": "Motorna vozila", - "bicycle": "Bicikli", - "horse": "Konji" - }, "options": { - "yes": { - "title": "Dozvoljeno", - "description": "Pristup dozvoljen zakonom: pravo prvenstva prolaza" + "designated": { + "description": "Pristup dozvoljen u skladu sa saobraćajnim znakovima ili posebnim lokalnim zakonima", + "title": "Namjenski" + }, + "destination": { + "description": "Pristup dozvoljen samo kako bi se dostiglo odredište", + "title": "Odredište" }, "no": { - "title": "Zabranjeno", - "description": "Pristup nije dozvoljen za širu javnost" + "description": "Pristup nije dozvoljen za širu javnost", + "title": "Zabranjeno" }, "permissive": { - "title": "Propustljiv", - "description": "Pristup dozvoljen sve dok vlasnik ne povuče dozvolu" + "description": "Pristup dozvoljen sve dok vlasnik ne povuče dozvolu", + "title": "Propustljiv" }, "private": { - "title": "Privatan", - "description": "Pristup dozvoljen samo uz dozvolu vlasnika na ličnoj bazi" - }, - "designated": { - "title": "Namjenski", - "description": "Pristup dozvoljen u skladu sa saobraćajnim znakovima ili posebnim lokalnim zakonima" + "description": "Pristup dozvoljen samo uz dozvolu vlasnika na ličnoj bazi", + "title": "Privatan" }, - "destination": { - "title": "Odredište", - "description": "Pristup dozvoljen samo kako bi se dostiglo odredište" + "yes": { + "description": "Pristup dozvoljen zakonom: pravo prvenstva prolaza", + "title": "Dozvoljeno" } + }, + "placeholder": "Nepoznato", + "types": { + "access": "Opće", + "bicycle": "Bicikli", + "foot": "Pješke", + "horse": "Konji", + "motor_vehicle": "Motorna vozila" } }, "access_simple": { @@ -454,8 +453,8 @@ "address": { "label": "Adresa", "placeholders": { - "street": "Ulica", - "city": "Grad" + "city": "Grad", + "street": "Ulica" } }, "admin_level": { @@ -531,8 +530,8 @@ "clock_direction": { "label": "Pravac", "options": { - "clockwise": "U smjeru kazaljke na satu", - "anticlockwise": "U smjeru suprotnom od kazaljke na satu" + "anticlockwise": "U smjeru suprotnom od kazaljke na satu", + "clockwise": "U smjeru kazaljke na satu" } }, "collection_times": { @@ -622,9 +621,9 @@ "internet_access": { "label": "Internet pristup", "options": { - "wlan": "WiFi", + "terminal": "Terminal", "wired": "Kablovski", - "terminal": "Terminal" + "wlan": "WiFi" } }, "landuse": { @@ -755,13 +754,13 @@ }, "structure": { "label": "Struktura", - "placeholder": "Nepoznato", "options": { "bridge": "Most", - "tunnel": "Tunel", + "cutting": "Usjek", "embankment": "Nasip", - "cutting": "Usjek" - } + "tunnel": "Tunel" + }, + "placeholder": "Nepoznato" }, "studio_type": { "label": "Vrsta" diff --git a/vendor/assets/iD/iD/locales/ca.json b/vendor/assets/iD/iD/locales/ca.json index 2c63a30ce..30eac76aa 100644 --- a/vendor/assets/iD/iD/locales/ca.json +++ b/vendor/assets/iD/iD/locales/ca.json @@ -239,7 +239,7 @@ "commit": { "title": "Desa els canvis", "description_placeholder": "Breu descripció de les vostres contribucions", - "message_label": "Afegiu un comentari", + "message_label": "Comentari de conjunt de canvis", "upload_explanation": "Els canvis que deseu seran visibles a tots els mapes que utilitzin dades d'OpenStreetMap.", "upload_explanation_with_user": "Els canvis que deseu com a {user} seran visibles en tots els mapes que utilitzin dades d'OpenStreetMap.", "save": "Desa", @@ -254,6 +254,26 @@ "list": "Edicions fetes per {users}", "truncated_list": "Edicions fetes per {users} i {count} més" }, + "infobox": { + "selected": "{n} seleccionats", + "geometry": "Geometria", + "closed": "tancat", + "center": "Centre", + "perimeter": "Perímetre", + "length": "Llargària", + "area": "Àrea", + "centroid": "Centroide", + "location": "Ubicació", + "metric": "Mètric", + "imperial": "Imperial" + }, + "geometry": { + "point": "punt", + "vertex": "vèrtex", + "line": "línia", + "area": "àrea", + "relation": "relació" + }, "geocoder": { "search": "Cerca mundialment...", "no_results_visible": "No s'han trobat resultats a l'àrea visible del mapa", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Accés", - "placeholder": "Desconegut", - "types": { - "access": "General", - "foot": "A peu", - "motor_vehicle": "Vehicles de motor", - "bicycle": "Bicicletes", - "horse": "Cavalls" - }, "options": { - "yes": { - "title": "Permès", - "description": "Accés garantit per llei; us dona dret de pas" + "designated": { + "description": "Accés garantit seguint les normes de les senyals o les normes locals específiques.", + "title": "Específic" + }, + "destination": { + "description": "Accés permès només per arribar a un destí", + "title": "Destinació" }, "no": { - "title": "Prohibit", - "description": "No es permet l'accés al públic en general" + "description": "No es permet l'accés al públic en general", + "title": "Prohibit" }, "permissive": { - "title": "Permissiu", - "description": "Accés garantit fins que el propietari ho prohibeixi." + "description": "Accés garantit fins que el propietari ho prohibeixi.", + "title": "Permissiu" }, "private": { - "title": "Privat", - "description": "Accés permès només amb autorització individualitzada del propietari" + "description": "Accés permès només amb autorització individualitzada del propietari", + "title": "Privat" }, - "designated": { - "title": "Específic", - "description": "Accés garantit seguint les normes de les senyals o les normes locals específiques." - }, - "destination": { - "title": "Destinació", - "description": "Accés permès només per arribar a un destí" + "yes": { + "description": "Accés garantit per llei; us dona dret de pas", + "title": "Permès" } + }, + "placeholder": "Desconegut", + "types": { + "access": "General", + "bicycle": "Bicicletes", + "foot": "A peu", + "horse": "Cavalls", + "motor_vehicle": "Vehicles de motor" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adreça", "placeholders": { + "city": "Ciutat ", + "country": "País", + "district": "Districte", + "hamlet": "Llogaret", "housename": "Nom de la casa", "housenumber": "123", - "street": "Carrer", - "city": "Ciutat ", - "postcode": "Codi postal", "place": "Lloc", - "hamlet": "Llogaret", - "suburb": "Sector", - "subdistrict": "Subdistricte", - "district": "Districte", + "postcode": "Codi postal", "province": "Província", "state": "Estat", - "country": "País" + "street": "Carrer", + "subdistrict": "Subdistricte", + "suburb": "Sector" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Accés", "options": { + "both": "Ambdues", "entry": "Entrada", - "exit": "Sortida", - "both": "Ambdues" + "exit": "Sortida" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Accés (estival)", "options": { + "both": "Ambdues", "entry": "Entrada", - "exit": "Sortida", - "both": "Ambdues" + "exit": "Sortida" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Direcció", "options": { - "N": "Nord", "E": "Est", - "S": "Sud", - "W": "Oest", - "NE": "Nord-est", - "SE": "Sud-est", - "SW": "Sud-oest", - "NW": "Nord-oest", - "NNE": "Nord-nord-est", "ENE": "Est-nord-est", "ESE": "Est-sud-est", + "N": "Nord", + "NE": "Nord-est", + "NNE": "Nord-nord-est", + "NNW": "Nord-nord-oest", + "NW": "Nord-oest", + "S": "Sud", + "SE": "Sud-est", "SSE": "Sud-sud-est", "SSW": "Sud-sud-oest", - "WSW": "Oest-sud-oest", + "SW": "Sud-oest", + "W": "Oest", "WNW": "Oest-nord-oest", - "NNW": "Nord-nord-oest" + "WSW": "Oest-sud-oest" } }, "clock_direction": { "label": "Direcció", "options": { - "clockwise": "en sentit de les agulles del rellotge", - "anticlockwise": "en sentit contrari al de les agulles del rellotge" + "anticlockwise": "en sentit contrari al de les agulles del rellotge", + "clockwise": "en sentit de les agulles del rellotge" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Tipus" }, + "content": { + "label": "Continguts" + }, "country": { "label": "País" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Electrificació", - "placeholder": "Catenària, 3r rail...", "options": { "contact_line": "Catenària", + "no": "No", "rail": "3r rail", - "yes": "Sí (no especificat)", - "no": "No" - } + "yes": "Sí (no especificat)" + }, + "placeholder": "Catenària, 3r rail..." }, "elevation": { "label": "Elevació" @@ -811,9 +834,9 @@ "label": "Tipus", "options": { "pillar": "Pilona/visible", + "pond": "Bassa", "underground": "Subterrani", - "wall": "Mur", - "pond": "Bassa" + "wall": "Mur" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Gènere", - "placeholder": "Desconegut", "options": { - "male": "Masculí", "female": "Femení", + "male": "Masculí", "unisex": "Unisex" - } + }, + "placeholder": "Desconegut" }, "generator/method": { "label": "Mètode" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Inclinar", "options": { - "up": "Amunt", - "down": "Avall" + "down": "Avall", + "up": "Amunt" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Accés a Internet", "options": { - "yes": "Sí", "no": "No", - "wlan": "WiFi", + "terminal": "Mitjançant un terminal", "wired": "Per cable", - "terminal": "Mitjançant un terminal" + "wlan": "WiFi", + "yes": "Sí" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Cicle del fullatge", "options": { - "evergreen": "Perenne", "deciduous": "Caducifoli", - "semi_evergreen": "Semiperenne", + "evergreen": "Perenne", + "mixed": "Barrejat", "semi_deciduous": "Semicaducifoli", - "mixed": "Barrejat" + "semi_evergreen": "Semiperenne" } }, "leaf_type": { "label": "Tipus de fulles", "options": { "broadleaved": "Fulles amples", - "needleleaved": "Fulles primes", + "leafless": "Sense fullatge", "mixed": "Barrejat", - "leafless": "Sense fullatge" + "needleleaved": "Fulles primes" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Dificultat per a bicicletes de muntanya", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Grava sòlida/terra compactada, sense obstacles, corbes de radi ample", "1": "1: Algunes zones amb superfície inestable, petits obstacles, corbes de radi ample", @@ -983,22 +1005,22 @@ "4": "4: Superfície inestable o còdols, corbes en paella perilloses", "5": "5: Dificultat màxima, camps de còdols, esllavissades", "6": "6: No ciclable excepte per als millors ciclistes de muntanya" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Dificultat del camí segons IMBA", - "placeholder": "Fàcil, Mitjana, Difícil...", "options": { "0": "La més fàcil (cercle blanc)", "1": "Fàcil (cercle verd)", "2": "Mitjana (quadrat blau)", "3": "Difícil (diamant negre)", "4": "Extremadament difícil (diamant negre doble)" - } + }, + "placeholder": "Fàcil, Mitjana, Difícil..." }, "mtb/scale/uphill": { "label": "Dificultat d'ascens per a ciclistes de muntanya", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Incl. mitjana <10%, grava/terra compactada, sense obstacles", "1": "1: Incl. mitjana <15%. grava/terra compactada, pocs i petits obstacles", @@ -1006,7 +1028,8 @@ "3": "3: Incl. mitjana <25%, superfície variable, roques i banques de la mida d'un puny", "4": "4: Incl. mitjana <30%, condicions pobres, grans roques/branques", "5": "5: Molt empinat, generalment la bicicleta ha de ser empesa." - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nom", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Sentit únic", "options": { + "no": "No", "undefined": "Sobreentès que no", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "oneway_yes": { "label": "Sentit únic", "options": { + "no": "No", "undefined": "Sobreentès que sí", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Tipus", "options": { - "surface": "Superfície", - "multi-storey": "Diversos nivells", - "underground": "Subterrani", - "sheds": "Garatges", "carports": "Aixoplucs", "garage_boxes": "Boxs", - "lane": "Adossat a la carretera" + "lane": "Adossat a la carretera", + "multi-storey": "Diversos nivells", + "sheds": "Garatges", + "surface": "Superfície", + "underground": "Subterrani" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Dificultat", - "placeholder": "Fàcil, Intermedi, avançat...", "options": { - "novice": "Debutants (instrucció)", - "easy": "Fàcil (pista verda)", - "intermediate": "Intermedi (Pista blava)", "advanced": "Avançat (Pista negra nivell I )", + "easy": "Fàcil (pista verda)", "expert": "Expert (Pista negra nivell II)", + "extreme": "Extrem (es necessita equipament d'escalada)", "freeride": "Pista no oficial (fora pistes)", - "extreme": "Extrem (es necessita equipament d'escalada)" - } + "intermediate": "Intermedi (Pista blava)", + "novice": "Debutants (instrucció)" + }, + "placeholder": "Fàcil, Intermedi, avançat..." }, "piste/grooming": { "label": "Adequació", "options": { - "classic": "Classic", - "mogul": "Mogul", "backcountry": "Backcountry", + "classic": "Classic", "classic+skating": "Classic i Skating", + "mogul": "Mogul", "scooter": "Retrack petita/moto de neu", "skating": "Skating" } @@ -1097,14 +1120,14 @@ "label": "Tipus", "options": { "downhill": "Descens", + "hike": "Raquetes/senderistes", + "ice_skate": "Patinatge sobre gel", "nordic": "Esquí de fons", + "playground": "Parc infantil", "skitour": "Esquí de muntanya", "sled": "Trineus", - "hike": "Raquetes/senderistes", "sleigh": "Trineus multiplaça", - "ice_skate": "Patinatge sobre gel", - "snow_park": "Parc per a snowboards", - "playground": "Parc infantil" + "snow_park": "Parc per a snowboards" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Tipus" }, + "power_supply": { + "label": "Abastament elèctric" + }, "railway": { "label": "Tipus" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Dificultat per al senderisme", - "placeholder": "Muntanysime, Alpinisme...", "options": { - "hiking": "T1: Senderisme", - "mountain_hiking": "T2: Muntanyisme", - "demanding_mountain_hiking": "T3: Muntanyisme exigent", "alpine_hiking": "T4: Alpinisme", "demanding_alpine_hiking": "T5: Alpinisme exigent", - "difficult_alpine_hiking": "T6: Alpinisme difícil" - } + "demanding_mountain_hiking": "T3: Muntanyisme exigent", + "difficult_alpine_hiking": "T6: Alpinisme difícil", + "hiking": "T1: Senderisme", + "mountain_hiking": "T2: Muntanyisme" + }, + "placeholder": "Muntanysime, Alpinisme..." + }, + "sanitary_dump_station": { + "label": "Lavabo" }, "seasonal": { "label": "Estacional" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Eina de cadena", "options": { + "no": "No", "undefined": "Sobreentès que és no", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "service/bicycle/pump": { "label": "Bombament d'aire", "options": { + "no": "No", "undefined": "Entès que no", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "service_rail": { "label": "Tipus de servei de la via", "options": { - "spur": "Canvi d'agulles", - "yard": "Platja", + "crossover": "Intercambiador", "siding": "Apartador", - "crossover": "Intercambiador" + "spur": "Canvi d'agulles", + "yard": "Platja" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Apte per a fumadors", - "placeholder": "No, Separats, Sí...", "options": { - "no": "Prohibit fumar a tot arreu", - "separated": "A les àrees per a fumadors, no aïllades físicament", + "dedicated": "Dedicat a fumadors (ex: club de fumadors)", "isolated": "A les àrees per a fumadors, aïllades físicament", + "no": "Prohibit fumar a tot arreu", "outside": "Permès a fora", - "yes": "Permès a tot arreu", - "dedicated": "Dedicat a fumadors (ex: club de fumadors)" - } + "separated": "A les àrees per a fumadors, no aïllades físicament", + "yes": "Permès a tot arreu" + }, + "placeholder": "No, Separats, Sí..." }, "smoothness": { "label": "Uniformitat", - "placeholder": "Rodetes, Rodes, Tot terreny...", "options": { + "bad": "Rodes robustes: bicicleta de muntanya, cotxe, carruatge oriental", "excellent": "Rodetes: Patí en línia, skateboard", "good": "Rodes primes: bicicleta de competició", + "horrible": "Tot terreny : vehicle utilitari pesant tot terreny", + "impassable": "Impassable / Vehicles sense rodes", "intermediate": "Rodes: bicicleta urbana, cadira de rodes, patinet", - "bad": "Rodes robustes: bicicleta de muntanya, cotxe, carruatge oriental", "very_bad": "Gran altura: vehicle utilitari lleuger tot terreny", - "horrible": "Tot terreny : vehicle utilitari pesant tot terreny", - "very_horrible": "Tot terreny especialitzades: tractors, Quads", - "impassable": "Impassable / Vehicles sense rodes" - } + "very_horrible": "Tot terreny especialitzades: tractors, Quads" + }, + "placeholder": "Rodetes, Rodes, Tot terreny..." }, "social_facility_for": { "label": "Persones ateses", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Estructura", - "placeholder": "Desconegut", "options": { "bridge": "Pont", - "tunnel": "Túnel", - "embankment": "Terraplè ", "cutting": "Trinxera", - "ford": "Ford" - } + "embankment": "Terraplè ", + "ford": "Ford", + "tunnel": "Túnel" + }, + "placeholder": "Desconegut" }, "studio_type": { "label": "Tipus" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Per emportar", - "placeholder": "Sí, No, Només per emportar...", "options": { - "yes": "Sí", "no": "No", - "only": "Només per emportar" - } + "only": "Només per emportar", + "yes": "Sí" + }, + "placeholder": "Sí, No, Només per emportar..." }, "toilets/disposal": { "label": "Contenidor", "options": { - "flush": "Renovació d'aigua", - "pitlatrine": "Latrina", + "bucket": "Cubell", "chemical": "Químic", - "bucket": "Cubell" + "flush": "Renovació d'aigua", + "pitlatrine": "Latrina" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Tipus de pista", - "placeholder": "Sòlid, majoritàriament sòlid, tou...", "options": { "grade1": "Sòlid: pavimentat o amb superfície altament compactada", "grade2": "Majoritàriament sòlid: Grava/roca amb materials tous barrejats", "grade3": "Barreja uniforme de materials durs i tous", "grade4": "Majoritàriament tou: terra/sorra/herba amb alguns materials durs barrejats", "grade5": "Tou: terra/sorra/herba" - } + }, + "placeholder": "Sòlid, majoritàriament sòlid, tou..." }, "trail_visibility": { "label": "Visibilitat del camí", - "placeholder": "Excel·lent, Bona, Dolenta...", "options": { + "bad": "Dolenta: sense marcadors. el camí a vegades no es veu/no hi és", "excellent": "Excel·lent: camí no ambigu o amb presència de marques a tots llocs", "good": "Bona: marcadors visibles, a vegades cal cercar-los", - "intermediate": "Intermedia: pocs marcadors, el camí es majoritàriament visible", - "bad": "Dolenta: sense marcadors. el camí a vegades no es veu/no hi és", "horrible": "Horrible: a vegades sense camí, calen nocions d'orientació", + "intermediate": "Intermedia: pocs marcadors, el camí es majoritàriament visible", "no": "Nul·la: sense camí, calen coneixements experts d'orientació" - } + }, + "placeholder": "Excel·lent, Bona, Dolenta..." }, "trees": { "label": "Arbres" @@ -1334,6 +1363,9 @@ "water": { "label": "Tipus" }, + "water_point": { + "label": "Punt d'aigua" + }, "waterway": { "label": "Tipus" }, @@ -1637,6 +1669,9 @@ "name": "Restaurant", "terms": "Restaurant, Lloc per menjar, Bistro, Wok, Trattoria, Pizzeria" }, + "amenity/sanitary_dump_station": { + "name": "Estació de buidatge de lavabos" + }, "amenity/school": { "name": "Escola", "terms": "Escola, CEIP, IES, Col·legi, Institut, Centre educatiu, Guarderia" @@ -2483,9 +2518,15 @@ "name": "Far", "terms": "Far" }, + "man_made/mast": { + "name": "Torre de ràdio" + }, "man_made/observation": { "name": "Torre de vigilància" }, + "man_made/petroleum_well": { + "name": "Pou petrolífer" + }, "man_made/pier": { "name": "Moll de pilons", "terms": "Moll,Dàrsena" @@ -2494,6 +2535,12 @@ "name": "Canonada", "terms": "Gàseoducte,Oleoducte,Canonades" }, + "man_made/silo": { + "name": "Sitja" + }, + "man_made/storage_tank": { + "name": "Dipòsit d'emmagatzematge" + }, "man_made/survey_point": { "name": "Punt referencial", "terms": "Punt de salvació,Punt de salvament,Punt d'evacuació" @@ -2679,6 +2726,9 @@ "name": "Ciutat ", "terms": "Ciutat, Municipi" }, + "place/farm": { + "name": "Granja" + }, "place/hamlet": { "name": "Llogaret" }, @@ -3345,6 +3395,9 @@ "name": "Torrent", "terms": "Torrentera, Rambla" }, + "waterway/fuel": { + "name": "Benzinera per a embarcacions" + }, "waterway/river": { "name": "Riu", "terms": "Riu" @@ -3353,6 +3406,9 @@ "name": "Banc fluvial", "terms": "Riba del riu, Ribera" }, + "waterway/sanitary_dump_station": { + "name": "Lavabo per a vaixells" + }, "waterway/stream": { "name": "Rierol", "terms": "Séquia, rierol, Fil d'aigua, Rajolí, Riuet, Ramal, Reguer, Segla, Canal, Rec, Regueró, Sequiola, Sequió, Cavim." diff --git a/vendor/assets/iD/iD/locales/cs.json b/vendor/assets/iD/iD/locales/cs.json index e7c662ef8..31d95f6a3 100644 --- a/vendor/assets/iD/iD/locales/cs.json +++ b/vendor/assets/iD/iD/locales/cs.json @@ -73,7 +73,7 @@ }, "not_closed": "Z objektu nelze udělat kruh, protože nejde o smyčku.", "too_large": "Z objektu nelze udělat kruh, protože není vidět dostatečně velká část.", - "connected_to_hidden": "Z objektu nelze udělat kruh, protože je napojen na skytý objekt." + "connected_to_hidden": "Z objektu nelze udělat kruh, protože je napojen na skrytý objekt." }, "orthogonalize": { "title": "Zhranatit", @@ -96,7 +96,7 @@ "key": "S", "annotation": "Narovnána čára", "too_bendy": "Objekt nelze narovnat, protože je příliš zakroucený.", - "connected_to_hidden": "Čáru nelze narovnat, protože je napojená na skytý objekt." + "connected_to_hidden": "Čáru nelze narovnat, protože je napojená na skrytý objekt." }, "delete": { "title": "Smazat", @@ -175,7 +175,7 @@ "title": "Převrátit", "description": "Změnit směr čáry na opačný.", "key": "V", - "annotation": "Ceta byla převrácena." + "annotation": "Čára byla převrácena." }, "split": { "title": "Rozdělit", @@ -216,7 +216,7 @@ "nothing": "Není co znovu provádět." }, "tooltip_keyhint": "Zkratka:", - "browser_notice": "Tento editor funguje ve Firefoxu, Chrome, Safari, Opeře a Internet Exploreru od verze 9. Musíte tedy upgradovat na novější verzi prohlížeče; nebo použijte editor Potlatch 2.", + "browser_notice": "Tento editor funguje ve Firefoxu, Chrome, Safari, Opeře a Internet Exploreru od verze 9. Musíte tedy aktualizovat na novější verzi prohlížeče nebo použijte editor Potlatch 2.", "translate": { "translate": "Přeložit", "localized_translation_label": "Mezinárodní název", @@ -228,7 +228,7 @@ "loading_auth": "Připojuji se na OpenStreetMap...", "report_a_bug": "ohlásit chybu", "feature_info": { - "hidden_warning": "{count} skrytých objetků", + "hidden_warning": "{count} skrytých objektů", "hidden_details": "Tyto objekty jsou právě skryté: {details}" }, "status": { @@ -239,7 +239,7 @@ "commit": { "title": "Uložit změny", "description_placeholder": "Stručný popis vašich úprav", - "message_label": "Zpráva k publikaci", + "message_label": "Komentář ke změnám", "upload_explanation": "Vámi provedené změny budou viditelné na všech mapách postavených na datech z OpenStreetMap.", "upload_explanation_with_user": "Změny provedené pod jménem {user} budou viditelné na všech mapách postavených na datech z OpenStreetMap.", "save": "Uložit", @@ -254,6 +254,26 @@ "list": "Přispěli {users}", "truncated_list": "Přispěli {users} a {count} další." }, + "infobox": { + "selected": "zvoleno {n}", + "geometry": "Geometrie", + "closed": "uzavřená", + "center": "Střed", + "perimeter": "Obvod", + "length": "Délka", + "area": "Plocha", + "centroid": "Těžiště", + "location": "Poloha", + "metric": "Metrické jednotky", + "imperial": "Imperiální jednotky" + }, + "geometry": { + "point": "uzel", + "vertex": "uzel", + "line": "čára", + "area": "plocha", + "relation": "relace" + }, "geocoder": { "search": "Hledat celosvětově...", "no_results_visible": "Na zobrazené části mapy nic nalezeno", @@ -311,7 +331,7 @@ "data_layers": "Datové vrstvy", "fill_area": "Vyplnění ploch", "map_features": "Mapové objekty", - "autohidden": "Tyto objekty jsou nyní skryté, protože jinak by na mapě byl strašný bordel. Když mapu zvětšíte, můžete je zobrazit a editovat." + "autohidden": "Tyto objekty jsou nyní skryté, protože jinak by jich na mapě bylo zobrazeno příliš mnoho. Když mapu zvětšíte, můžete je zobrazit a editovat." }, "feature": { "points": { @@ -449,7 +469,7 @@ "untagged_line": "Neoznačená čára", "untagged_area": "Neoznačená plocha", "many_deletions": "Pokoušíte se smazat {n} objektů. Opravdu to chcete provést? Odstranilo by je z globální mapy na openstreetmap.org.", - "tag_suggests_area": "Vlastnost {tag} obvykle označuje plochu - ale zvolený objekt není plocha", + "tag_suggests_area": "Vlastnost {tag} obvykle označuje plochu, ale zvolený objekt není plocha", "untagged_point_tooltip": "Zvolte typ vlastnosti popisující, co je tento bod zač.", "untagged_line_tooltip": "Zvolte typ vlastnosti popisující, co je tato čára zač.", "untagged_area_tooltip": "Zvolte typ vlastnosti popisující, co je tato plocha zač.", @@ -473,14 +493,14 @@ }, "help": { "title": "Pomoc", - "help": "# Pomoc\n\nToto je editor [OpenStreetMap](http://www.openstreetmap.org/), svobodné a otevřené mapy světa, vytvářené jako open-source a open-data. S pomocí editoru můžete přidávat a upravovat data v mapě třeba ve svém okolí, a zlepšovat tak celou mapu pro každého.\n\nVaše úpravy mapy budou viditelné pro každého uživatele OpenStreetMap. Před editací se ovšem musíte [přihlásit](https://www.openstreetmap.org/login).\n\n[iD editor](http://ideditor.com/) je projekt vytvářený spoluprácí mnoha lidí, se [zdrojovým kódem na GitHubu](https://github.com/openstreetmap/iD).\n", - "editing_saving": "# Editace a publikace\n\nTento editor pracuje primárně online - právě teď k němu přistupujete prostřednictvím webové stránky.\n\n### Výběr objektů\n\nChcete-li vybrat objekt, jako třeba silnici nebo obchod, klikněte na něj v mapě. Objekt se tím označí, otevře se boční panel s vlastnostmi objektu a zobrazí se nabídka akcemi, které lze s objektem provést.\n\nMůžete označit a pracovat s několika objekty najednou: podržte klávesu 'Shift', a pak buď postupně označte dotyčné objekty, anebo klikněte na mapu a táhněte myší či prstem - editor označí všechny objekty uvnitř příslušného obdélníku.\n\n### Publikace změn\n\nKdyž provedete nějaké úpravy objektů v mapě, úpravy jsou uloženy lokálně ve vašem prohlížeči. Nelekejte se, když uděláte chybu - úpravy lze vrátit zpět tlačítkem Zpět, a naopak je znovu provést tlačítkem Znovu.\n\nPo dokončení bloku úprav klikněte na 'Uložit' - například když jste upravili jednu část města, a chcete začít úpravy někde jinde. Zobrazí se přehled úprav, které jste provedli, editor tyto úpravy zkontroluje, a když se mu něco nebude zdát, zobrazí varování a návrhy.\n\nKdyž bude všechno v pořádku, můžete přidat krátký komentář s vysvětlením vašich úprav a kliknout znovu 'Uložit'. Úpravy se tímto publikují na [OpenStreetMap.org](http://www.openstreetmap.org/), kde za chvíli budou viditelné pro všechny uživatele a bude na nich možné provádět další úpravy.\n\nPokud nechcete nebo nemůžete pravy dokončit teď, stačí prostě odejít ze stránky pryč. Až příště navštívíte stránku (na stejném počítači, ve stejném prohlížeči), editor vám nabídne možnost znovu načíst neuložené úpravy.\n", + "help": "# Pomoc\n\nToto je editor [OpenStreetMap](http://www.openstreetmap.org/), svobodné a otevřené mapy světa, vytvářené jako open-source a open-data. S pomocí editoru můžete přidávat a upravovat data v mapě třeba ve svém okolí, a zlepšovat tak celou mapu pro každého.\n\nVaše úpravy mapy budou viditelné pro každého uživatele OpenStreetMap. Před editací se ovšem musíte [přihlásit](https://www.openstreetmap.org/login).\n\n[iD editor](http://ideditor.com/) je projekt vytvářený spoluprací mnoha lidí, se [zdrojovým kódem na GitHubu](https://github.com/openstreetmap/iD).\n", + "editing_saving": "# Editace a publikace\n\nTento editor pracuje primárně online - právě teď k němu přistupujete prostřednictvím webové stránky.\n\n### Výběr objektů\n\nChcete-li vybrat objekt, jako třeba silnici nebo obchod, klikněte na něj v mapě. Objekt se tím označí, otevře se boční panel s vlastnostmi objektu a zobrazí se nabídka akcemi, které lze s objektem provést.\n\nMůžete označit a pracovat s několika objekty najednou: podržte klávesu 'Shift', a pak buď postupně označte dotyčné objekty, anebo klikněte na mapu a táhněte myší či prstem - editor označí všechny objekty uvnitř příslušného obdélníku.\n\n### Publikace změn\n\nKdyž provedete nějaké úpravy objektů v mapě, úpravy jsou uloženy lokálně ve vašem prohlížeči. Nelekejte se, když uděláte chybu - úpravy lze vrátit zpět tlačítkem Zpět, a naopak je znovu provést tlačítkem Znovu.\n\nPo dokončení bloku úprav klikněte na 'Uložit' - například když jste upravili jednu část města, a chcete začít úpravy někde jinde. Zobrazí se přehled úprav, které jste provedli, editor tyto úpravy zkontroluje, a když se mu něco nebude zdát, zobrazí varování a návrhy.\n\nKdyž bude všechno v pořádku, můžete přidat krátký komentář s vysvětlením vašich úprav a kliknout znovu 'Uložit'. Úpravy se tímto publikují na [OpenStreetMap.org](http://www.openstreetmap.org/), kde za chvíli budou viditelné pro všechny uživatele a bude na nich možné provádět další úpravy.\n\nPokud nechcete nebo nemůžete úpravy dokončit teď, stačí prostě odejít ze stránky pryč. Až příště navštívíte stránku (na stejném počítači, ve stejném prohlížeči), editor vám nabídne možnost znovu načíst neuložené úpravy.\n", "roads": "# Cesty\n\nEditor umožňuje vytvářet, opravovat a mazat silnice, pěšiny, cyklostezky, železnice atd. Zmapovat by mělo jít jakýkoli druh komunikace.\n\n### Výběr\n\nKdyž na cestu kliknete, zbarví se její obrys, otevře se u ní malá nabídka s nástroji a dále boční panel s informacemi o cestě.\n\n### Úpravy\n\nČasto narazíte na cesty, které jen nepřesně sledují pozadí či trasu GPS. Takové cesty můžete zarovnat na správné místo.\n\nNapřed klikněte na cestu, kterou chcete upravit. Cesta se rozsvítí a podél ní se objeví kontrolní uzly, které můžete posunout na správné místo. Pokud chcete přidat další kontrolní body a zpřesnit tak průběh cesty, stačí dvakrát kliknout na kus cesty mezi dvěma uzly - na zvolené místo přibude nový uzel.\n\nKdyž je reálná cesta napojena na jinou, ale v mapě spojeny nejsou, posuňte myší kontrolní uzel jedné cesty nad druhou - cesty se pak spojí. Propojení cest je velmi důležité pro správnou funkci navigací.\n\nTaké můžete posunout najednou celou cestu: buď klikněte na ikonu posunu v menu zobrazeném u cesty nebo stiskněte klávesu `M` a potom klikněte myší pro ukončení posunu. Jen pozor - pokud jsou vůči pozadí či GPS stopě všechny objekty v okolí, pravděpodobně to bude chybným pozadím a ne chybnou polohou objektů.\n\n### Mazání\n\nPokud je cesta úplně špatně, můžete ji zcela odstranit z mapy. Neměli byste se spoléhat pouze na satelitní snímky - mohou být zastaralé nebo zavádějící -, ideální je se přesvědčit na místě, že cesta opravdu neexistuje. Zvlášť při mazání objektů buďte opatrní - výsledek vaší úpravy se projeví v mapě pro všechny její uživatele.\n\nCestu smažete tak, že na ni kliknete a zvolíte ikonu odpadkového koše nebo stisknete klávesu Delete.\n\n### Vytváření\n\nNarazili jste na cestu, která by v mapě měla být, ale není? Klikněte na tlačítko 'Cesta' vlevo nahoře nebo stiskněte klávesu `2` - to vám umožní nakreslit novou cestu.\n\nKlikněte na místo, kde cesta začíná. Pokud cesta vychází z jiné, existující cesty, klikněte na místo, kde se cesty oddělují.\n\nPotom postupně klikejte na body, kudy cesta vede, podle satelitních snímků nebo trasy z GPS. Pokud vaše cesta protíná jinou, je třeba je propojit tak, že kliknete na bod křížení. Nakonec dvakrát klikněte na stejné místo nebo stiskněte klávesu 'Return' nebo 'Enter', cesta se tak ukončí.\n", "gps": "# GPS\n\nData z GPS jsou nejdůvěryhodnějším zdrojem informací pro OpenStreetMap. Tento editor podporuje zobrazení tras ve formátu `.gpx` nahraných z vašeho počítače. Takovou trasu můžete nasbírat s pomocí nejrůznějších aplikací pro mobily nebo s pomocí specializované navigace.\n\nPro více informací, jak provést takový sběr dat z GPS, viz např. návod anglicky: [Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/).\n\nPokud už máte záznam ve formátu GPX, přetáhněte soubor myší či prstem nad editor. Rozpozná-li editor formát souboru, zobrazí se trasa v mapě jako světle růžová čára. Pokud chcete tuto novou vrstvu zapnout, vypnout nebo zvětšit na velikost pracovní plochy, klikněte na menu 'Mapová data' na pravé straně.\n\nTrasa GPX nebude přímo nahrána na OpenStreetMap - pouze slouží jako vodítko, podle kterého se můžete orientovat, a podle kterého můžete kreslit nové objekty do mapy. Pokud chcete přímo trasu GPX poskytnout i ostatním, můžete ji [nahrát do samostatné databáze OpenStreetMap](http://www.openstreetmap.org/trace/create).\n", "imagery": "# Podkladové snímky\n\nSatelitní a letecké snímky jsou důležitým zdrojem mapových dat. V menu 'Nastavení pozadí' na levé straně editoru je k dispozici kombinace leteckých snímků, satelitních snímků a dalších volně dostupných podkladů.\n\nImplicitní vrstvou jsou satelitní snímky [Bing](http://www.bing.com/maps/), ale jakmile se přesunete do konkrétní geografické oblasti a nastavíte dostatečné zvětšení, nabídnou se vám další mapové podklady. V některých státech, jako jsou Spojené státy, Francie či Dánskou, jsou k dispozici snímky ve vysoké kvalitě. Pro velkou část České republiky jsou také dostupné velmi detailní satelitní snímky. **Data z katastru nemovitostí a letecké mapy ÚHUL** je možné zobrazit dle [návodu zde](https://wiki.openstreetmap.org/wiki/WikiProject_Czech_Republic/freemap#WMS_UHUL_-_ortofotomapa).\n\nPodklady jsou někdy posunuté vůči mapě, kvůli chybám na straně poskytovatele snímků. Pokud uvidíte, že je mnoho cest v mapě posunuto vůči pozadí, nesnažte se je hned přesunout - posun obvykle znamená chybu v podkladu a ne chybu v mapě. V menu 'Nastavení pozadí' klikněte na 'Zarovnat pozadí' - to vám dovolí posunout podklad, aby lícoval s mapou.\n", "addresses": "# Adresy\n\nJednou z nejužitečnějších součástí mapy jsou adresy.\n\nAdresy jsou sice někdy chápány jako označení kousku ulice, ale v OpenStreetMap jsou uloženy v budovách či objektech podél ulice. V České republice jsou adresy většinou samostatným uzlem uvnitř budovy.\n\nMůžete tedy data o adrese vkládat jak k samostatnému bodu, tak k ploše označující budovu.\nNejlepším zdrojem informací o adresách je průzkum přímo v terénu či jeho dobrá znalost - stejně jako u celého projektu OpenStreetMap je přebírání dat z komerčních zdrojů typu Google Maps přísně zakázáno.\n", "inspector": "# Používání Inspektoru\n\nInspektor je prvek uživatelského rozhraní na levé straně, který umožňuje editovat vlastnosti zvoleného objektu.\n\n### Výběr typu objektu\n\nJakmile vytvoříte uzel, čáru nebo plochu, můžete zvolit typ vytvořeného objektu. Např. jestli jde o silnici nebo pěšinu, obchod nebo hospodu. Inspektor zobrazí tlačítka pro nejčastější typy objektů; další můžete najít prostřednictvím pole pro vyhledávání.\n\nKdyž u tlačítka typu objektu kliknete na 'i' vpravo dole, zobrazí se vám o něm více informací. Když kliknete na samotné tlačítko, vyberete příslušný typ.\n\n### Formuláře a editace vlastností\n\nPoté, co vyberete typ objektu nebo když vyberete objekt s už přiřazeným typem, v inspektoru se zobrazí pole s bližšími informacemi o objektu - jako třeba název nebo adresa.\n\nPod těmito poli jsou další ikony. Když na ně kliknete, tak můžete přidávat další detaily, jako vazbu na [Wikipedii](http://www.wikipedia.org/), přístup pro vozíčkáře atd.\n\nPokud chcete přidat k objektu ještě nějaké jiné vlastnosti, klikněte na 'Další vlastnosti' úplně dole. Jedním z informačních zdrojů pak může být [Taginfo](http://taginfo.openstreetmap.org/), kde se dozvíte o nejčastějších kombinacích tagů.\n\nZměny provedené v inspektoru jsou ihned vidět na mapě zobrazené ve vašem prohlížeči. Můžete je vrátit zpět kliknutím na tlačítko 'Undo'.\n", - "buildings": "# Budovy\n\nOpenStreetMap je největší databází budov na světě. Můžete tuto databázi rozšiřovat a vylepšovat.\n\n### Výběr\n\nBudovu označíte kliknutím na její hranici. Budova se v editoru rozsvítí, otevře se malá nabídka nástrojů a boční panel s informacemi o budově.\n\n### Úpravy\n\nBudovy někdy mohou mít špatnou polohu, tvar nebo nesprávné vlastnosti.\n\nPokud chcete posunout celou budovu, označte ji a kliněte na ikonu posunu - pak můžete pohnout budovou myší. Posun ukončíte kliknutím.\n\nKdyž má budova špatný tvar, klikněte na uzel na hranici budovy a posuňte ho na správné místo.\n\n### Vytváření\n\nMohou být budovy v mapě zaznamenané jako plochy, nebo jako samostatné uzly? Pravidlo je takové, že _pokud je to možné, budovy by se měly mapovat jako plochy_, a firmy, podniky, zařízení a další subjekty působící v budově by se měly mapovat jako uzly uvnitř budovy. V České republice se jako uzly uvnitř budovy obvykle mapují i adresy.\n\nChcete-li nakreslit novou budovu, klikněte na tlačítko 'Plocha' vlevo nahoře a klikáním nakreslete obrys budovy. Kreslení ukončíte buď kliknutím na první nakreslený uzel nebo stisknutím klávesy 'Enter' nebo 'Return'.\n\n### Smazání\n\nBudovy lze také mazat - ale dělejte to pouze v případě, že jste si opravdu jistí, že budova ve skutečnosti neexistuje. Satelitní snímky nejsou dostatečným důkazem, protože mohou být zastaralé nebo zavádějící. Buďte opatrní - když budovu smažete, budova zmizí z mapy pro všechny její uživatele.\n\nBudovu smažete tak, že ji označíte kliknutím a potom buď kliknete na ikonu odpadkového koše, nebo stisknete klávesu 'Delete'.\n", + "buildings": "# Budovy\n\nOpenStreetMap je největší databází budov na světě. Můžete tuto databázi rozšiřovat a vylepšovat.\n\n### Výběr\n\nBudovu označíte kliknutím na její hranici. Budova se v editoru rozsvítí, otevře se malá nabídka nástrojů a boční panel s informacemi o budově.\n\n### Úpravy\n\nBudovy někdy mohou mít špatnou polohu, tvar nebo nesprávné vlastnosti.\n\nPokud chcete posunout celou budovu, označte ji a klikněte na ikonu posunu - pak můžete pohnout budovou myší. Posun ukončíte kliknutím.\n\nKdyž má budova špatný tvar, klikněte na uzel na hranici budovy a posuňte ho na správné místo.\n\n### Vytváření\n\nMohou být budovy v mapě zaznamenané jako plochy, nebo jako samostatné uzly? Pravidlo je takové, že _pokud je to možné, budovy by se měly mapovat jako plochy_, a firmy, podniky, zařízení a další subjekty působící v budově by se měly mapovat jako uzly uvnitř budovy. V České republice se jako uzly uvnitř budovy obvykle mapují i adresy.\n\nChcete-li nakreslit novou budovu, klikněte na tlačítko 'Plocha' vlevo nahoře a klikáním nakreslete obrys budovy. Kreslení ukončíte buď kliknutím na první nakreslený uzel nebo stisknutím klávesy 'Enter' nebo 'Return'.\n\n### Smazání\n\nBudovy lze také mazat - ale dělejte to pouze v případě, že jste si opravdu jistí, že budova ve skutečnosti neexistuje. Satelitní snímky nejsou dostatečným důkazem, protože mohou být zastaralé nebo zavádějící. Buďte opatrní - když budovu smažete, budova zmizí z mapy pro všechny její uživatele.\n\nBudovu smažete tak, že ji označíte kliknutím a potom buď kliknete na ikonu odpadkového koše, nebo stisknete klávesu 'Delete'.\n", "relations": "# Relace\n\nRelace je speciálním typem objektu OpenStreetMap, který seskupuje dohromady jiné objekty.\nDvěma nejčastějšími příklady relací jsou *relace trasy*, které obsahují seznam částí cest, po kterých vede nějaká trasa, a *multipolygony*, které obsahují seznam jednoduchých ploch tvořících dohromady složitější plochu (např. plochu z několika částí nebo s dírami uvnitř).\n\nObjekty seznamu v relaci se nazývají *prvky*. V bočním panelu jsou vidět relace, kterých je zvolený objekt prvkem, a relaci pak můžete kliknutím zvolit. Po zvolení relace jsou všechny její prvky jednak uvedené v bočním panelu a také označené na mapě.\n\nVe většině případů iD dokáže relace udržovat při editacích automaticky. Měli byste si být vědomi jistých omezení: třeba když smažete kus cesty a potom ji nakreslíte znovu, je třeba zkontrolovat, že nový kus cesty je prvkem stejných relací jako původní kus.\n\n## Editace relací\n\nPři editaci relací se držte následujících principů.\n\nNový prvek do relace přidáte tak, že zvolíte daný objekt, kliknete na tlačítko \"+\" v bočním panelu v sekci \"Všechny relace\", a zvolíte nebo napíšete jméno relace.\n\nPodobně novou relaci založíte tak, že zvolíte objekt, který by se měl stát prvním prvkem relace, kliknete na tlačítko \"+\" v sekci \"Všechny relace\" a zvolíte \"Nová relace...\".\n\nPrvek z relace vyjmete tím způsobem, že zvolíte daný objekt a kliknete na tlačítko odpadkového koše vedle relace, ze které objekt chcete vyjmout.\n\nMultipolygony s dírami můžete vytvořit pomocí nástroje \"Spojit\". Nakreslete dvě plochy (vnitřní a vnější), stiskněte klávesu Shift a klikněte postupně na obě plochy, čímž je označíte. Multipolygon pak vytvoříte kliknutím na tlačítko \"Spojit\" (+).\n" }, "intro": { @@ -511,7 +531,7 @@ "place": "Plochu zakreslíte tak, že přidáte další uzly. Kreslení zakončíte kliknutím na počáteční uzel. **Nakreslete plochu hřiště.**", "search": "**Dejte hledat '{name}'.**", "choose": "**V seznamu zvolte Hřiště.**", - "describe": "**Pridejte název a zavřete editor vlastností.**" + "describe": "**Přidejte název a zavřete editor vlastností.**" }, "lines": { "title": "Čáry", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Přístup", - "placeholder": "Není známo", - "types": { - "access": "Všem", - "foot": "Pěší", - "motor_vehicle": "Motorová vozidla", - "bicycle": "Jízdní kola", - "horse": "Koně" - }, "options": { - "yes": { - "title": "Povolen", - "description": "Přístup oficiálně, ze zákona povolen" + "designated": { + "description": "Přístup je povolen podle značení či místních předpisů", + "title": "Explicitně povolen" + }, + "destination": { + "description": "Průjezd zakázán, průchod zakázán apod.", + "title": "Jen do místa" }, "no": { - "title": "Zakázán", - "description": "Přístup širší veřejnosti zakázán" + "description": "Přístup širší veřejnosti zakázán", + "title": "Zakázán" }, "permissive": { - "title": "Do odvolání", - "description": "Vstup je povolen do té doby, než majitel povolení zruší" + "description": "Vstup je povolen do té doby, než majitel povolení zruší", + "title": "Do odvolání" }, "private": { - "title": "Soukromé", - "description": "Přístup je povolen jen s individuálním svolením majitele" + "description": "Přístup je povolen jen s individuálním svolením majitele", + "title": "Soukromé" }, - "designated": { - "title": "Explicitně povolen", - "description": "Přístup je povolen podle značení či místních předpisů" - }, - "destination": { - "title": "Jen do místa", - "description": "Průjezd zakázán, průchod zakázán apod." + "yes": { + "description": "Přístup oficiálně, ze zákona povolen", + "title": "Povolen" } + }, + "placeholder": "Není známo", + "types": { + "access": "Všem", + "bicycle": "Jízdní kola", + "foot": "Pěší", + "horse": "Koně", + "motor_vehicle": "Motorová vozidla" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adresa", "placeholders": { + "city": "Město", + "country": "Stát (země)", + "district": "Distrikt", + "hamlet": "Osada", "housename": "Název domu", "housenumber": "123", - "street": "Ulice", - "city": "Město", - "postcode": "Poštovní směrovací číslo", "place": "Obydlené místo", - "hamlet": "Osada", - "suburb": "Městská část (obvod)", - "subdistrict": "Subdistrikt", - "district": "Distrikt", + "postcode": "Poštovní směrovací číslo", "province": "Provincie", "state": "Stát (v rámci federace)", - "country": "Stát (země)" + "street": "Ulice", + "subdistrict": "Subdistrikt", + "suburb": "Městská část (obvod)" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Přístup", "options": { + "both": "Oboje", "entry": "Vstup", - "exit": "Výstup", - "both": "Oboje" + "exit": "Výstup" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Přístup v létě", "options": { + "both": "Oboje", "entry": "Vstup", - "exit": "Výstup", - "both": "Oboje" + "exit": "Výstup" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Směr", "options": { - "N": "Sever", "E": "Východ", - "S": "Jih", - "W": "Západ", - "NE": "Severovýchod", - "SE": "Jihovýchod", - "SW": "Jihozápad", - "NW": "Severozápad", - "NNE": "Severo-severovýchod", "ENE": "Východo-severovýchod", "ESE": "Východo-jihovýchod", + "N": "Sever", + "NE": "Severovýchod", + "NNE": "Severo-severovýchod", + "NNW": "Severo-severozápad", + "NW": "Severozápad", + "S": "Jih", + "SE": "Jihovýchod", "SSE": "Jiho-jihovýchod", "SSW": "Jiho-jihozápad", - "WSW": "Západo-jihozápad", + "SW": "Jihozápad", + "W": "Západ", "WNW": "Západo-severozápad", - "NNW": "Severo-severozápad" + "WSW": "Západo-jihozápad" } }, "clock_direction": { "label": "Směr", "options": { - "clockwise": "Po směru hod. ručiček", - "anticlockwise": "Proti směru hod. ručiček" + "anticlockwise": "Proti směru hod. ručiček", + "clockwise": "Po směru hod. ručiček" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Typ" }, + "content": { + "label": "Obsah" + }, "country": { "label": "Stát" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Elektrifikace", - "placeholder": "Trolejové vedení, napájecí kolejnice...", "options": { "contact_line": "Trolejové vedení", + "no": "Ne", "rail": "Napájecí kolejnice", - "yes": "Ano (nespecifikováno)", - "no": "Ne" - } + "yes": "Ano (nespecifikováno)" + }, + "placeholder": "Trolejové vedení, napájecí kolejnice..." }, "elevation": { "label": "Nadmořská výška" @@ -811,9 +834,9 @@ "label": "Typ", "options": { "pillar": "Nadzemní", + "pond": "U vody (suchý)", "underground": "Podzemní", - "wall": "Nástěnný", - "pond": "U vody (suchý)" + "wall": "Nástěnný" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Pohlaví", - "placeholder": "Neznámé", "options": { - "male": "Muži", "female": "Ženy", + "male": "Muži", "unisex": "Muži i ženy" - } + }, + "placeholder": "Neznámé" }, "generator/method": { "label": "Princip" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Sklon", "options": { - "up": "Nahoru", - "down": "Dolů" + "down": "Dolů", + "up": "Nahoru" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Přístup k internetu", "options": { - "yes": "Ano", "no": "Ne", - "wlan": "Wifi", + "terminal": "Počítače", "wired": "Přes kabel", - "terminal": "Počítače" + "wlan": "Wifi", + "yes": "Ano" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Opadavost listí", "options": { - "evergreen": "Stálezelené", "deciduous": "Opadavé", - "semi_evergreen": "Polostálezelené", + "evergreen": "Stálezelené", + "mixed": "Smíšené", "semi_deciduous": "Poloopadavé", - "mixed": "Smíšené" + "semi_evergreen": "Polostálezelené" } }, "leaf_type": { "label": "Druh listů", "options": { "broadleaved": "Listnaté", - "needleleaved": "Jehličnaté", + "leafless": "Bezlisté", "mixed": "Smíšené", - "leafless": "Bezlisté" + "needleleaved": "Jehličnaté" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Klasifikace obtížnosti pro MTB", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Štěrkový/udusaný povrch, bez překážek, oblé zatáčky", "1": "1: Místy nezpevněná půda, kořeny a malé kameny, oblé zatáčky", @@ -983,22 +1005,22 @@ "4": "4: Sypký povrch, velké schodky, nebezpečné zatáčky", "5": "5: Nejvyšší obtížnost, skály, sutiny, sesuvy", "6": "6: Prakticky nesjízdné a velmi nebezpečné i pro trialové mistry" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Podle IMBA", - "placeholder": "Lehké, středně těžké, těžké", "options": { "0": "Nejlehčí (bílý kruh)", "1": "Lehké (zelený kruh)", "2": "Středně těžké (modrý čtverec)", "3": "Těžké (černý kosočtverec)", "4": "Velmi těžké (dvojitý černý kosočtverec)" - } + }, + "placeholder": "Lehké, středně těžké, těžké" }, "mtb/scale/uphill": { "label": "Klasifikace obtížnosti pro MTB do kopce", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Průměrný sklon do 10%, štěrk či zpevněný povrch, bez překážek", "1": "1: Průměrný sklon do 15%, štěrk či zpevněný povrch, trocha drobných překážek", @@ -1006,7 +1028,8 @@ "3": "3: Průměrný sklon do 25%, různorodý povrch, volné kameny do velikosti pěsti, větve", "4": "4: Průměrný sklon do 30%, nestabilní povrch, velké kameny či větve", "5": "5: Velmi prudké, do kopce prakticky nesjízdné" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Název", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Jednosměrka", "options": { + "no": "Ne", "undefined": "Implicitně Ne", - "yes": "Ano", - "no": "Ne" + "yes": "Ano" } }, "oneway_yes": { "label": "Jednosměrka", "options": { + "no": "Ne", "undefined": "Implicitně Ano", - "yes": "Ano", - "no": "Ne" + "yes": "Ano" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Typ", "options": { - "surface": "Povrchové", - "multi-storey": "Víceúrovňové", - "underground": "Podzemní", - "sheds": "Lehký přístřešek", "carports": "Přístřešek", "garage_boxes": "Garáž", - "lane": "Parkování po straně ulice" + "lane": "Parkování po straně ulice", + "multi-storey": "Víceúrovňové", + "sheds": "Lehký přístřešek", + "surface": "Povrchové", + "underground": "Podzemní" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Obtížnost", - "placeholder": "Lehká, Střední, Těžká...", "options": { - "novice": "Pro začátečníky (francouzské sjezdovky: zelená)", - "easy": "Lehká (evropské sjezdovky: modrá)", - "intermediate": "Střední (evropské sjezdovky: červená)", "advanced": "Těžká (evropské sjezdovky: černá)", + "easy": "Lehká (evropské sjezdovky: modrá)", "expert": "Velmi těžká (alpské sjezdovky: oranžová; americké: dva černé diamanty)", + "extreme": "Extrémní (je třeba horolezecké výbavy)", "freeride": "Freeride (mimo trať)", - "extreme": "Extrémní (je třeba horolezecké výbavy)" - } + "intermediate": "Střední (evropské sjezdovky: červená)", + "novice": "Pro začátečníky (francouzské sjezdovky: zelená)" + }, + "placeholder": "Lehká, Střední, Těžká..." }, "piste/grooming": { "label": "Úprava", "options": { - "classic": "Klasika", - "mogul": "Boule", "backcountry": "Strojově neupraveno", + "classic": "Klasika", "classic+skating": "Klasika a bruslení", + "mogul": "Boule", "scooter": "Skútrem", "skating": "Bruslení (na hladko)" } @@ -1097,14 +1120,14 @@ "label": "Typ", "options": { "downhill": "Sjezd", + "hike": "Pěší", + "ice_skate": "Bruslení na ledu", "nordic": "Běžky", + "playground": "Dětský ski park", "skitour": "Skialpinismus", "sled": "Sportovní saně", - "hike": "Pěší", "sleigh": "Tažené saně", - "ice_skate": "Bruslení na ledu", - "snow_park": "Snowpark", - "playground": "Dětský ski park" + "snow_park": "Snowpark" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Typ" }, + "power_supply": { + "label": "Elektrická přípojka" + }, "railway": { "label": "Typ" }, @@ -1126,7 +1152,7 @@ "label": "Textil" }, "recycling/glass": { - "label": "Skl" + "label": "Sklo" }, "recycling/paper": { "label": "Papír" @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Klasifikace pro pěší", - "placeholder": "Horská turistika, vysokohorská turistika...", "options": { - "hiking": "T1: Turistika", - "mountain_hiking": "T2: Horská turistika", - "demanding_mountain_hiking": "T3: Náročná horská turistika", "alpine_hiking": "T4: Vysokohorská turistika", "demanding_alpine_hiking": "T5: Náročná vysokohorská turistika", - "difficult_alpine_hiking": "T6: Těžká vysokohorská turistika" - } + "demanding_mountain_hiking": "T3: Náročná horská turistika", + "difficult_alpine_hiking": "T6: Těžká vysokohorská turistika", + "hiking": "T1: Turistika", + "mountain_hiking": "T2: Horská turistika" + }, + "placeholder": "Horská turistika, vysokohorská turistika..." + }, + "sanitary_dump_station": { + "label": "Výlevka pro WC" }, "seasonal": { "label": "Sezónní" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Nýtovač řetězu", "options": { + "no": "Ne", "undefined": "Implicitně Ne", - "yes": "Ano", - "no": "Ne" + "yes": "Ano" } }, "service/bicycle/pump": { "label": "Pumpička", "options": { + "no": "Ne", "undefined": "Implicitně Ne", - "yes": "Ano", - "no": "Ne" + "yes": "Ano" } }, "service_rail": { "label": "Typ manipulační koleje", "options": { - "spur": "Nákladiště", - "yard": "Kolej seřaďovacího nádraží", + "crossover": "Kolejová spojka", "siding": "Výhybna", - "crossover": "Kolejová spojka" + "spur": "Nákladiště", + "yard": "Kolej seřaďovacího nádraží" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Kouření", - "placeholder": "Ne, V oddělené místnosti, Ano...", "options": { - "no": "Ne, všude zakázáno", - "separated": "Na určených místech, neoddělených", + "dedicated": "Zaměřeno na kuřáky (např. kuřácký klub)", "isolated": "Na určených místech, oddělených", + "no": "Ne, všude zakázáno", "outside": "Povoleno venku", - "yes": "Povoleno všude", - "dedicated": "Zaměřeno na kuřáky (např. kuřácký klub)" - } + "separated": "Na určených místech, neoddělených", + "yes": "Povoleno všude" + }, + "placeholder": "Ne, V oddělené místnosti, Ano..." }, "smoothness": { "label": "Hladkost", - "placeholder": "Tenká kolečka, Běžná kola, Terénní kola...", "options": { + "bad": "Robustní kola: běžná auta, trekové bicykly, rikši", "excellent": "Tenká kolečka: brusle, skateboardy", "good": "Tenká kola: závodní bicykly", + "horrible": "Terénní kola: off-road auta", + "impassable": "Neprůjezdné žádným vozidlem", "intermediate": "Běžná kola: závodní auta, městské bicykly, kolečková křesla, skútry", - "bad": "Robustní kola: běžná auta, trekové bicykly, rikšy", "very_bad": "Vysoký podvozek: lehká terénní auta", - "horrible": "Terénní kola: off-road auta", - "very_horrible": "Speciální terénní kola: traktory, čtyřkolky, tanky, MTB", - "impassable": "Neprůjezdné žádným vozidlem" - } + "very_horrible": "Speciální terénní kola: traktory, čtyřkolky, tanky, MTB" + }, + "placeholder": "Tenká kolečka, Běžná kola, Terénní kola..." }, "social_facility_for": { "label": "Zákazníci", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Struktura", - "placeholder": "Není známo", "options": { "bridge": "Most", - "tunnel": "Tunel", - "embankment": "Násyp", "cutting": "Zářez", - "ford": "Brod" - } + "embankment": "Násyp", + "ford": "Brod", + "tunnel": "Tunel" + }, + "placeholder": "Není známo" }, "studio_type": { "label": "Typ" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Jídlo s sebou", - "placeholder": "Ano, Ne, Jen s sebou", "options": { - "yes": "Ano", "no": "Ne", - "only": "Jen s sebou" - } + "only": "Jen s sebou", + "yes": "Ano" + }, + "placeholder": "Ano, Ne, Jen s sebou" }, "toilets/disposal": { "label": "Zacházení s odpadem", "options": { - "flush": "Splachovací", - "pitlatrine": "Suchý", + "bucket": "Nádrž na odpad", "chemical": "Chemický", - "bucket": "Nádrž na odpad" + "flush": "Splachovací", + "pitlatrine": "Suchý" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Klasifikace povrchu", - "placeholder": "Pevný, převážně pevný, měkký povrch", "options": { "grade1": "1: Pevný nebo silně udusaný povrch s pevným jádrem", "grade2": "2: Převážně zpevněný povrch s menším množstvím neudusaného písku, hlíny, bahna, trávy", "grade3": "3: Napůl zpevněný a napůl měkký povrch jako nezpevněný písek, hlína, bahno, tráva", "grade4": "4: Převážně měkký povrch jako nezpevněný písek, hlína, bahno, tráva; ale i trocha zpevněného povrchu", "grade5": "5: Nezpevněný písek, hlína, bahno, tráva" - } + }, + "placeholder": "Pevný, převážně pevný, měkký povrch" }, "trail_visibility": { "label": "Viditelnost pěšiny", - "placeholder": "Výborná, Dobrá, Špatná...", "options": { + "bad": "Špatná: žádné značení, pěšina se místy úplně vytrácí", "excellent": "Výborná: všudypřítomné značení nebo zcela jednoznačná cesta", "good": "Dobrá: značení viditelné, ale občas je nutné hledat další značku nebo pěšinu", - "intermediate": "Střední: občasné značení, pěšina je většinou zřetelná", - "bad": "Špatná: žádné značení, pěšina se místy úplně vytrácí", "horrible": "Hrozná: pěšina se často ztrácí, je nutné mít orientační smysl", + "intermediate": "Střední: občasné značení, pěšina je většinou zřetelná", "no": "Žádná: pěšina je skoro nezřetelná, je nutné mít výborný orientační smysl" - } + }, + "placeholder": "Výborná, Dobrá, Špatná..." }, "trees": { "label": "Stromy" @@ -1334,6 +1363,9 @@ "water": { "label": "Typ" }, + "water_point": { + "label": "Kohout s pitnou vodou" + }, "waterway": { "label": "Typ" }, @@ -1377,7 +1409,7 @@ }, "aerialway/magic_carpet": { "name": "Pojízdný koberec", - "terms": "pojízdný koberec,pásový dopravník,lyžařský vlek,vlek,lanovka na pásu,pohybivý pás,eskalátor" + "terms": "pojízdný koberec,pásový dopravník,lyžařský vlek,vlek,lanovka na pásu,pohyblivý pás,eskalátor" }, "aerialway/platter": { "name": "Vlek - talíř (poma)", @@ -1389,7 +1421,7 @@ }, "aerialway/rope_tow": { "name": "Vlek - kotvičkový", - "terms": "lyžařský vlek,vlek,kotvička,lanový vlek" + "terms": "lyžařský vlek,vlek,kotva,kotvička,lanový vlek" }, "aerialway/station": { "name": "Stanice lanovky", @@ -1401,7 +1433,7 @@ }, "aeroway": { "name": "Přistávací dráha", - "terms": "letitiště,přistávací dráha,letadlo,terminál" + "terms": "letiště,přistávací dráha,letadlo,terminál" }, "aeroway/aerodrome": { "name": "Letiště", @@ -1425,7 +1457,7 @@ }, "aeroway/runway": { "name": "Vzletová a přistávací dráha", - "terms": "runway,přistávací dráha,vzletová dráha,přistávací plocha" + "terms": "runway,ranvej,přistávací dráha,vzletová dráha,přistávací plocha" }, "aeroway/taxiway": { "name": "Pojezdová dráha", @@ -1475,6 +1507,10 @@ "name": "Montážní stojan na kola", "terms": "stojan,kolo,stojan na kolo,montážní stojan,opravna kol,cykloopravna,samoobslužná opravna kol" }, + "amenity/biergarten": { + "name": "Pivní zahrádka", + "terms": "zahrádka,venku,posezení,pivo,pod širým nebem" + }, "amenity/boat_rental": { "name": "Půjčovna lodí", "terms": "půjčovna lodí,půjčovna loděk,půjčovna člunů" @@ -1617,10 +1653,10 @@ }, "amenity/place_of_worship": { "name": "Chrám", - "terms": "křesťanský,křesťanství,kostel,kostelík,chrám,bazilika,katedrála,kaple,kaplička,chrám páně,rotunda,farnost,diecéze,mešita,minaret,synagoga,pagoda,stúpa,oratorium,motlitebna,náboženský,náboženská,náboženské,sakrální,svatyně" + "terms": "křesťanský,křesťanství,kostel,kostelík,chrám,bazilika,katedrála,kaple,kaplička,chrám páně,rotunda,farnost,diecéze,mešita,minaret,synagoga,pagoda,stúpa,oratorium,modlitebna,náboženský,náboženská,náboženské,sakrální,svatyně" }, "amenity/place_of_worship/buddhist": { - "name": "Budhistický chrám", + "name": "Buddhistický chrám", "terms": "stúpa,vihara,klášter,chrám,pagoda,zendo,dojo" }, "amenity/place_of_worship/christian": { @@ -1671,6 +1707,10 @@ "name": "Restaurace", "terms": "bar,jídelna,kantýna,bistro,bufet,rychlé občerstvení,fast food,hamburger,restaurace,restaurant,hostinec,pohostinství,krčma,gastronomie,občerstvení,stánek,jídlo,obědy,gril,pizzeria,čína,kebab" }, + "amenity/sanitary_dump_station": { + "name": "Výlevka pro karavany", + "terms": "záchod,kanalizace,výlevka,žumpa,odpadní voda,wc,toaleta,karavan,kemp,obytný vůz" + }, "amenity/school": { "name": "Prostor školy", "terms": "škola,základní škola,střední škola,obecná škola,gymnázium,gymnasium,střední odborná škola,učiliště,odborné učiliště,střední odborné učiliště,školní,školský" @@ -1841,7 +1881,7 @@ }, "building/chapel": { "name": "Kaple", - "terms": "kaple,kaplička,babtisterium,karner,modlitebna,kostel" + "terms": "kaple,kaplička,baptisterium,karner,modlitebna,kostel" }, "building/church": { "name": "Budova kostela", @@ -2029,7 +2069,7 @@ }, "craft/insulator": { "name": "Firma na izolace", - "terms": "zateplovlování,zateplení,izolace" + "terms": "zateplování,zateplení,izolace" }, "craft/jeweler": { "name": "Klenotník", @@ -2065,7 +2105,7 @@ }, "craft/plasterer": { "name": "Štukatér", - "terms": "štukatér,škukatérství,štuky" + "terms": "štukatér,štukatérství,štuky" }, "craft/plumber": { "name": "Instalatér", @@ -2089,7 +2129,7 @@ }, "craft/sailmaker": { "name": "Výroba plachet", - "terms": "plachty,plachetář,výroba plachet" + "terms": "plachty,plachtář,výroba plachet" }, "craft/sawmill": { "name": "Pila", @@ -2245,7 +2285,7 @@ }, "highway/mini_roundabout": { "name": "Malý kruhový objezd", - "terms": "malý kruhový objezd, kruháč" + "terms": "malý kruhový objezd,kruháč" }, "highway/motorway": { "name": "Dálnice", @@ -2309,7 +2349,7 @@ }, "highway/service/drive-through": { "name": "Drive-through", - "terms": "okénko pro řidiče, pult pro řidiče, obsluha řidiče, obsluha do auta" + "terms": "okénko pro řidiče,pult pro řidiče,obsluha řidiče,obsluha do auta,drive through" }, "highway/service/driveway": { "name": "Příjezdová cesta", @@ -2380,7 +2420,7 @@ "terms": "archeologické naleziště,vykopávky,archeologický průzkum" }, "historic/boundary_stone": { - "name": "Hraniční káme", + "name": "Hraniční kámen", "terms": "hraniční kámen,hranice,značka" }, "historic/castle": { @@ -2405,7 +2445,7 @@ }, "historic/wayside_shrine": { "name": "Boží muka", - "terms": "svatostánek u cesty,svatyně,svatostánek" + "terms": "svatostánek u cesty,svatyně,svatostánek,kaplička" }, "junction": { "name": "Křižovatka", @@ -2417,7 +2457,7 @@ }, "landuse/allotments": { "name": "Zahrádky", - "terms": "zahradkářská osada,zahrádky,zahrady,zahradkářská kolonie" + "terms": "zahrádkářská osada,zahrádky,zahrady,zahrádkářská kolonie" }, "landuse/basin": { "name": "Umělá vodní plocha", @@ -2553,7 +2593,7 @@ }, "leisure/pitch/baseball": { "name": "Baseballové hřiště", - "terms": "basebalové hřiště,basebal" + "terms": "baseballové hřiště,baseball" }, "leisure/pitch/basketball": { "name": "Basketbalové hřiště", @@ -2631,17 +2671,33 @@ "name": "Maják", "terms": "maják,světlo" }, + "man_made/mast": { + "name": "Telekomunikační stožár", + "terms": "stožár,radio,komunikace,telekomunikace,bts,základnová stanice" + }, "man_made/observation": { "name": "Rozhledna", "terms": "rozhledna,pozorovatelna,věž" }, + "man_made/petroleum_well": { + "name": "Ropný vrt", + "terms": "ropa,těžba,těžební,ropný,vrt" + }, "man_made/pier": { "name": "Molo", "terms": "molo,sloupy,pilíř,vlnolam,hráz,kotva,kotvení,ukotvení,lodě,promenáda,lávka,promenáda a přístaviště,přístavní hráz" }, "man_made/pipeline": { "name": "Dálkové potrubí", - "terms": "rouura,roury,transport,vodovod,ropovod,plynovod,kanál,rozvod" + "terms": "roura,roury,transport,vodovod,ropovod,plynovod,kanál,rozvod" + }, + "man_made/silo": { + "name": "Silo", + "terms": "silo,zásobník,silážní,sýpka,špýchar,špejchar" + }, + "man_made/storage_tank": { + "name": "Zásobník", + "terms": "zásobník,nádrž" }, "man_made/survey_point": { "name": "Triangulační bod", @@ -2753,7 +2809,7 @@ }, "natural/water/pond": { "name": "Rybník", - "terms": "rybník,rybíček,louže,tůň,hráz,přehrada" + "terms": "rybník,rybníček,louže,tůň,hráz,přehrada" }, "natural/water/reservoir": { "name": "Přehrada", @@ -2863,6 +2919,10 @@ "name": "Velkoměsto", "terms": "velkoměsto,město,city" }, + "place/farm": { + "name": "Zemědělská usedlost", + "terms": "zemědělská usedlost,farma,zemědělské družstvo,jzd" + }, "place/hamlet": { "name": "Vesnička", "terms": "vesnička,vesnice,obec,lhota" @@ -2905,18 +2965,18 @@ }, "power/generator": { "name": "Generátor", - "terms": "generátor, elektrický generátor, elektrárna, zdroj proudu" + "terms": "generátor,elektrický generátor,elektrárna,zdroj proudu" }, "power/line": { "name": "Elektrické vedení vyššího napětí (nad 50 kV)", "terms": "elektrické vedení,velmi vysoké napětí,zvláště vysoké napětí,přenosová soustava,energetika" }, "power/minor_line": { - "name": "Elektrické vedení nížšího napětí (pod 50 kV)", + "name": "Elektrické vedení nižšího napětí (pod 50 kV)", "terms": "elektrické vedení,nízké napětí,vysoké napětí,přenosová soustava,elektrický kabel,energetika" }, "power/pole": { - "name": "Eletrický sloup", + "name": "Sloup elektrického vedení", "terms": "sloup el.vedení,elektrický sloup,sloup elektrického vedení,sloupový stožár" }, "power/sub_station": { @@ -3157,7 +3217,7 @@ }, "shop/doityourself": { "name": "Obchod pro kutily", - "terms": "obchod pro kutily,stavební materiál,stavebniny,staviva,potřeby pro kutily,zahradní potřeby,železářství,kutil" + "terms": "obchod pro kutily,stavební materiál,stavebniny,staviva,potřeby pro kutily,zahradní potřeby,železářství,kutil,hobby" }, "shop/dry_cleaning": { "name": "Čistírna", @@ -3197,7 +3257,7 @@ }, "shop/funeral_directors": { "name": "Pohřební služba", - "terms": "pohřební služba,pohřební služba,pohřebák,hřbitovní služby,hřitovní služba,hrobař" + "terms": "pohřební služba,pohřební služba,pohřebák,hřbitovní služby,hřbitovní služba,hrobař" }, "shop/furnace": { "name": "Trouby a pece", @@ -3651,6 +3711,10 @@ "name": "Odvodňovací strouha", "terms": "odvodňovací strouha,strouha,odvodňovací kanál,odvaděč" }, + "waterway/fuel": { + "name": "Lodní čerpací stanice", + "terms": "lodní pumpa,pumpa,čerpací stanice,loď,jachta,hausbót" + }, "waterway/river": { "name": "Řeka", "terms": "potok,potůček,strouha,říčka,přítok,koryto" @@ -3659,6 +3723,10 @@ "name": "Břeh řeky", "terms": "břeh řeky,břeh,nábřeží,pobřeží" }, + "waterway/sanitary_dump_station": { + "name": "Výlevka pro lodě", + "terms": "záchod,kanalizace,výlevka,žumpa,odpadní voda,wc,toaleta,loď,jachta,hausbót" + }, "waterway/stream": { "name": "Potok", "terms": "potok,potůček,strouha,tok,říčka,přítok,koryto,řeka,proud,vír,odtok,příliv,odliv" diff --git a/vendor/assets/iD/iD/locales/da.json b/vendor/assets/iD/iD/locales/da.json index 9599e03da..2fc68c96e 100644 --- a/vendor/assets/iD/iD/locales/da.json +++ b/vendor/assets/iD/iD/locales/da.json @@ -239,7 +239,7 @@ "commit": { "title": "Gem ændringer", "description_placeholder": "Kort beskrivelse af dine bidrag", - "message_label": "Tilføj en besked", + "message_label": "Ændringssætskommentar", "upload_explanation": "De ændringer du uploader vil blive synlige på alle kort der bruger OpenStreetMap-data.", "upload_explanation_with_user": "Ændringer du uploader under brugernavnet {user} vil blive synlige på alle kort der bruger OpenStreetMap-data.", "save": "Gem", @@ -254,6 +254,26 @@ "list": "Redigeringer af {users}", "truncated_list": "Redigeringer af {users} og {count} andre" }, + "infobox": { + "selected": "{n} valgte", + "geometry": "Geometri", + "closed": "lukket", + "center": "Center", + "perimeter": "Perimeter", + "length": "Længde", + "area": "Område", + "centroid": "Centroid", + "location": "Lokalitet", + "metric": "Meter", + "imperial": "Imperial" + }, + "geometry": { + "point": "punkt", + "vertex": "hjørne", + "line": "linje", + "area": "område", + "relation": "relation" + }, "geocoder": { "search": "Søg i hele verden...", "no_results_visible": "Ingen resultater i det synlige kortudsnit", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Adgang", - "placeholder": "Ukendt", - "types": { - "access": "Generelt", - "foot": "Til fods", - "motor_vehicle": "Motorkøretøjer", - "bicycle": "Cykler", - "horse": "Heste" - }, "options": { - "yes": { - "title": "Tilladt", - "description": "Adgang tilladt i følge loven" + "designated": { + "description": "Adgang tilladt ifølge trafikskilte eller lokale bestemmelser", + "title": "Udpeget til netop dette formål" + }, + "destination": { + "description": "Ærindekørsel tilladt", + "title": "Destination" }, "no": { - "title": "Forbudt", - "description": "Adgang ikke tilladt for offentligheden" + "description": "Adgang ikke tilladt for offentligheden", + "title": "Forbudt" }, "permissive": { - "title": "Adgang efter tilladelse", - "description": "Adgang tilladt indtil ejer tilbagekalder tilladelsen" + "description": "Adgang tilladt indtil ejer tilbagekalder tilladelsen", + "title": "Adgang efter tilladelse" }, "private": { - "title": "Privat", - "description": "Adgang kun tilladt ved udstedelse af individuelle tilladelser fra ejer" + "description": "Adgang kun tilladt ved udstedelse af individuelle tilladelser fra ejer", + "title": "Privat" }, - "designated": { - "title": "Udpeget til netop dette formål", - "description": "Adgang tilladt ifølge trafikskilte eller lokale bestemmelser" - }, - "destination": { - "title": "Destination", - "description": "Ærindekørsel tilladt" + "yes": { + "description": "Adgang tilladt i følge loven", + "title": "Tilladt" } + }, + "placeholder": "Ukendt", + "types": { + "access": "Generelt", + "bicycle": "Cykler", + "foot": "Til fods", + "horse": "Heste", + "motor_vehicle": "Motorkøretøjer" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adresse", "placeholders": { + "city": "By", + "country": "Land", + "district": "Bydel", + "hamlet": "Lille landsby", "housename": "Husnavn", "housenumber": "123", - "street": "Gade", - "city": "By", - "postcode": "Postnummer", "place": "Sted", - "hamlet": "Lille landsby", - "suburb": "Forstad", - "subdistrict": "Kvarter", - "district": "Bydel", + "postcode": "Postnummer", "province": "Landsdel", "state": "Delstat", - "country": "Land" + "street": "Gade", + "subdistrict": "Kvarter", + "suburb": "Forstad" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Adgang", "options": { + "both": "Begge", "entry": "Indgang", - "exit": "Udgang", - "both": "Begge" + "exit": "Udgang" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Adgang (sommer)", "options": { + "both": "Begge", "entry": "Indgang", - "exit": "Udgang", - "both": "Begge" + "exit": "Udgang" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Retning", "options": { - "N": "Nord", "E": "Øst", - "S": "Syd", - "W": "Vest", - "NE": "Nordøst", - "SE": "Sydøst", - "SW": "Sydvest", - "NW": "Nordvest", - "NNE": "Nord-nordøst", "ENE": "Øst-nordøst", "ESE": "Øst-sydøst", + "N": "Nord", + "NE": "Nordøst", + "NNE": "Nord-nordøst", + "NNW": "Nord-nordvest", + "NW": "Nordvest", + "S": "Syd", + "SE": "Sydøst", "SSE": "Syd-sydøst", "SSW": "Syd-sydvest", - "WSW": "Vest-sydvest", + "SW": "Sydvest", + "W": "Vest", "WNW": "Vest-nordvest", - "NNW": "Nord-nordvest" + "WSW": "Vest-sydvest" } }, "clock_direction": { "label": "Retning", "options": { - "clockwise": "Med uret", - "anticlockwise": "Mod uret" + "anticlockwise": "Mod uret", + "clockwise": "Med uret" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Type" }, + "content": { + "label": "Indhold" + }, "country": { "label": "Land" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Elektrificering", - "placeholder": "Køreledning, elektrificeret jernbane", "options": { "contact_line": "Køreledning", + "no": "Nej", "rail": "Elektrificeret jernbane", - "yes": "Ja (uspecificeret)", - "no": "Nej" - } + "yes": "Ja (uspecificeret)" + }, + "placeholder": "Køreledning, elektrificeret jernbane" }, "elevation": { "label": "Højde over havet" @@ -811,9 +834,9 @@ "label": "Type", "options": { "pillar": "Søjle/overjordisk", + "pond": "Dam", "underground": "Underjordisk", - "wall": "Mur", - "pond": "Dam" + "wall": "Mur" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Køn", - "placeholder": "Ukendt", "options": { - "male": "Mand", "female": "Kvinde", + "male": "Mand", "unisex": "Unisex" - } + }, + "placeholder": "Ukendt" }, "generator/method": { "label": "Metode" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Stigning", "options": { - "up": "Op", - "down": "Ned" + "down": "Ned", + "up": "Op" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Internetadgang", "options": { - "yes": "Ja", "no": "Nej", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Via kabel", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Ja" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Bladcyklus", "options": { - "evergreen": "Stedsegrønt", "deciduous": "Løvfældende", - "semi_evergreen": "Delvist stedsegrønt", + "evergreen": "Stedsegrønt", + "mixed": "Blandet", "semi_deciduous": "Delvist løvfældende", - "mixed": "Blandet" + "semi_evergreen": "Delvist stedsegrønt" } }, "leaf_type": { "label": "Bladtype", "options": { "broadleaved": "Løvtræsblade", - "needleleaved": "Nåleblade", + "leafless": "Bladløs", "mixed": "Blandet", - "leafless": "Bladløs" + "needleleaved": "Nåleblade" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Sværhedsgrad for mountainbike", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Fast grus/ pakket jord, ingen forhindringer, brede kurver", "1": "1: Noget løs overflade, små forhindringer, brede kurver", @@ -983,22 +1005,22 @@ "4": "4: Løs overflade eller kampesten, farlige hårnålesving", "5": "5: Maksimal sværhedsgrad, kampestensområder, jordskred", "6": "6: Ikke farbart undtagen for de allerbedste mountainbikere" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Sværhedsgrad for IMBA-spor", - "placeholder": "Nemt, medium, svært", "options": { "0": "Nemmeste (hvid cirkel)", "1": "Let (grøn cirkel)", "2": "Medium (blå firkant)", "3": "Vanskelig (sort diamant)", "4": "Ekstremt vanskelig (dobbelt sort diamant)" - } + }, + "placeholder": "Nemt, medium, svært" }, "mtb/scale/uphill": { "label": "Sværhedsgrad for mountainbike op ad bakke", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Gennemsnitlig hældning < 10 %, grus / hård jord, ingen forhindringer", "1": "1: Gennemsnitlig hældning < 15 %, grus / hård jord, nogle små genstande", @@ -1006,7 +1028,8 @@ "3": "3: Gennemsnitlig hældning < 25 %, variabel overflade, klippestykker/træstykker", "4": "4: Gennemsnitlig hældning < 30 %, dårlige forhold, store sten/træstykker", "5": "5: Meget stejlt, cyklen skal for det meste skubbes eller bæres" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Navn", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Ensrettet", "options": { + "no": "Nej", "undefined": "Antages at være Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "oneway_yes": { "label": "Ensrettet", "options": { + "no": "Nej", "undefined": "Antages at være Ja", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Type", "options": { - "surface": "Overflade", - "multi-storey": "Multiniveau", - "underground": "Underjordisk", - "sheds": "Læskure", "carports": "Carporte", "garage_boxes": "Garagebokse", - "lane": "Vejsidespor" + "lane": "Vejsidespor", + "multi-storey": "Multiniveau", + "sheds": "Læskure", + "surface": "Overflade", + "underground": "Underjordisk" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Sværhedsgrad", - "placeholder": "Let, mellemsvær, avanceret...", "options": { - "novice": "Nybegynder (vejledning)", - "easy": "Nemt (grøn cirkel)", - "intermediate": "Mellemsvært (blå firkant)", "advanced": "Avanceret (sort diamant)", + "easy": "Nemt (grøn cirkel)", "expert": "Ekspert (dobbelt sort diamant)", + "extreme": "Ekstremt (klatreudstyr påkrævet)", "freeride": "Freeride (off-piste)", - "extreme": "Ekstremt (klatreudstyr påkrævet)" - } + "intermediate": "Mellemsvært (blå firkant)", + "novice": "Nybegynder (vejledning)" + }, + "placeholder": "Let, mellemsvær, avanceret..." }, "piste/grooming": { "label": "Sikkerhed", "options": { - "classic": "Klassisk", - "mogul": "Pukkelpist", "backcountry": "Offpiste", + "classic": "Klassisk", "classic+skating": "Klassisk og skiløb", + "mogul": "Pukkelpist", "scooter": "Snescooter", "skating": "Skøjteløb" } @@ -1097,14 +1120,14 @@ "label": "Type", "options": { "downhill": "Styrtløb", + "hike": "Skivandretur", + "ice_skate": "Skøjter", "nordic": "Nordisk", + "playground": "Legeplads", "skitour": "Skirute", "sled": "Slæde", - "hike": "Skivandretur", "sleigh": "Kælk", - "ice_skate": "Skøjter", - "snow_park": "Snepark", - "playground": "Legeplads" + "snow_park": "Snepark" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Type" }, + "power_supply": { + "label": "Eltransformator" + }, "railway": { "label": "Type" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Sværhedsgrad for vandrere", - "placeholder": "Bjergvandring, alpinvandring...", "options": { - "hiking": "T1: Vandring", - "mountain_hiking": "T2: Bjergvandring", - "demanding_mountain_hiking": "T3: Krævende bjergvandring", "alpine_hiking": "T4: Alpin vandring", "demanding_alpine_hiking": "T5: Udfordrende alpinvandring", - "difficult_alpine_hiking": "T6: Vanskelig alpinvandring" - } + "demanding_mountain_hiking": "T3: Krævende bjergvandring", + "difficult_alpine_hiking": "T6: Vanskelig alpinvandring", + "hiking": "T1: Vandring", + "mountain_hiking": "T2: Bjergvandring" + }, + "placeholder": "Bjergvandring, alpinvandring..." + }, + "sanitary_dump_station": { + "label": "Toilet funktionsmåde" }, "seasonal": { "label": " Sæsonpræget" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Kædeværktøj", "options": { + "no": "Nej", "undefined": "Antages at være Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "service/bicycle/pump": { "label": "Luftpumpe", "options": { + "no": "Nej", "undefined": "Antages at være Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "service_rail": { "label": "Servicetype", "options": { - "spur": "Firmaspor", - "yard": "Rangergård", + "crossover": "Kryds", "siding": "Langsomt spor", - "crossover": "Kryds" + "spur": "Firmaspor", + "yard": "Rangergård" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Rygning", - "placeholder": "Nej, adskilt, ja...", "options": { - "no": "Rygning forbudt overalt", - "separated": "I rygeområder, ikke fysisk adskilte", + "dedicated": "Dedikeret til rygere (fx rygerklub)", "isolated": "I rygeområder, fysisk adskilte", + "no": "Rygning forbudt overalt", "outside": "Tilladt udenfor", - "yes": "Tilladt alle steder", - "dedicated": "Dedikeret til rygere (fx rygerklub)" - } + "separated": "I rygeområder, ikke fysisk adskilte", + "yes": "Tilladt alle steder" + }, + "placeholder": "Nej, adskilt, ja..." }, "smoothness": { "label": "Glathed", - "placeholder": "Tynde hjul, hjul, offroad...", "options": { + "bad": "Robuste hjul: mountainbikecykel, bil, rickshaw", "excellent": "Tynde hjul: rulleskøjter, skateboard", "good": "Tynde hjul: racercykel", + "horrible": "Offroad: kraftigt terrængående køretøj", + "impassable": "Ufremkommeligt / intet køretøj på hjul", "intermediate": "Hjul: citybike, kørestol, scooter", - "bad": "Robuste hjul: mountainbikecykel, bil, rickshaw", "very_bad": "Høj frihøjde: lettere terrængående køretøj", - "horrible": "Offroad: kraftigt terrængående køretøj", - "very_horrible": "Specialiseret offroad: traktor, ATV", - "impassable": "Ufremkommeligt / intet køretøj på hjul" - } + "very_horrible": "Specialiseret offroad: traktor, ATV" + }, + "placeholder": "Tynde hjul, hjul, offroad..." }, "social_facility_for": { "label": "Klientel", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Struktur", - "placeholder": "Ukendt", "options": { "bridge": "Bro", - "tunnel": "Tunnel", - "embankment": "Forhøjning til tog, vej", "cutting": "Forsænkning", - "ford": "Vadested" - } + "embankment": "Forhøjning til tog, vej", + "ford": "Vadested", + "tunnel": "Tunnel" + }, + "placeholder": "Ukendt" }, "studio_type": { "label": "Type" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Takeaway", - "placeholder": "Ja, nej, kun takeaway...", "options": { - "yes": "Ja", "no": "Nej", - "only": "Kun Takeway" - } + "only": "Kun Takeway", + "yes": "Ja" + }, + "placeholder": "Ja, nej, kun takeaway..." }, "toilets/disposal": { "label": "Funktionsmåde", "options": { - "flush": "Træk & slip", - "pitlatrine": "Latrin", + "bucket": "Spand", "chemical": "Kemisk", - "bucket": "Spand" + "flush": "Træk & slip", + "pitlatrine": "Latrin" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Sportype", - "placeholder": "Fast, overvejende fast, blød …", "options": { "grade1": "Fast: hårdt vejbelagt eller stærkt komprimeret overflade", "grade2": "Overvejende fast: grus / småsten med nogle bløde materiale blandet i", "grade3": "En blanding af hårde og bløde materialer", "grade4": "Overvejende blød: jord / sand / græs med nogle hårde materialer blandet i", "grade5": "Blød: jord/sand/græs" - } + }, + "placeholder": "Fast, overvejende fast, blød …" }, "trail_visibility": { "label": "Synlighed af spor", - "placeholder": "Fremragende, god, dårlig...", "options": { + "bad": "Dårlig: ​​ingen markører, sti til tider usynlig / sporløs", "excellent": "Fremragende: entydig sti eller markører overalt", "good": "God: markører synlige, undertiden kræves søgning", - "intermediate": "Mellemsvær: kun få markører, sti for det meste synlig", - "bad": "Dårlig: ​​ingen markører, sti til tider usynlig / sporløs", "horrible": "Frygtelig: ofte sporløs, kræver visse orienteringsfærdigheder", + "intermediate": "Mellemsvær: kun få markører, sti for det meste synlig", "no": "Ingen: sporløs, kræver fremragende orienteringsfærdigheder" - } + }, + "placeholder": "Fremragende, god, dårlig..." }, "trees": { "label": "Træer" @@ -1334,6 +1363,9 @@ "water": { "label": "Type" }, + "water_point": { + "label": "Vandbrønd" + }, "waterway": { "label": "Type" }, @@ -1475,6 +1507,10 @@ "name": "Cykelværktøjlån", "terms": "Cykelværktøjlån, Cykelværktøj" }, + "amenity/biergarten": { + "name": "Ølhave", + "terms": "Ølhave, Ølstue" + }, "amenity/boat_rental": { "name": "Bådudlejning", "terms": "Bådudlejning, lystbådudlejning" @@ -1671,6 +1707,10 @@ "name": "Restaurant", "terms": "Restaurant, Spisested, Spisehus" }, + "amenity/sanitary_dump_station": { + "name": "Tør closettoilet funtionsområde", + "terms": "Tør closettoilet funtionsområde" + }, "amenity/school": { "name": "Skolegrund", "terms": "Skoleområde, Skolegrund" @@ -2631,10 +2671,18 @@ "name": "Fyr (navigation)", "terms": "Fyr (navigation)" }, + "man_made/mast": { + "name": "Radiomast", + "terms": "Radiomast" + }, "man_made/observation": { "name": "Observationstårn", "terms": "observationstårn, udkigstårn" }, + "man_made/petroleum_well": { + "name": "Oliebrønd", + "terms": "Oliebrønd" + }, "man_made/pier": { "name": "Bådebro", "terms": "Bådebro" @@ -2643,6 +2691,14 @@ "name": "Rørledning", "terms": "Rørledning" }, + "man_made/silo": { + "name": "Silo", + "terms": "Silo, Silotank" + }, + "man_made/storage_tank": { + "name": "Lagertank", + "terms": "Lagertank" + }, "man_made/survey_point": { "name": "Geografisk fixpunkt", "terms": "Geografisk fixpunkt" @@ -2863,6 +2919,10 @@ "name": "Storby", "terms": "Storby" }, + "place/farm": { + "name": "Gård", + "terms": "Gård, Bondegård" + }, "place/hamlet": { "name": "Mindre beboet område", "terms": "Mindre beboet område" @@ -3651,6 +3711,10 @@ "name": "Drænløb", "terms": "Drænløb" }, + "waterway/fuel": { + "name": "Søtankstation", + "terms": "Søtankstation" + }, "waterway/river": { "name": "Flod/å", "terms": "Flod, Å" @@ -3659,6 +3723,10 @@ "name": "Flodbred", "terms": "Flodbred" }, + "waterway/sanitary_dump_station": { + "name": "Søtoilet funktionsområde", + "terms": "Søtoilet funktionsområde" + }, "waterway/stream": { "name": "Bæk", "terms": "Bæk" diff --git a/vendor/assets/iD/iD/locales/de.json b/vendor/assets/iD/iD/locales/de.json index 4ac446d05..8e9bf7cb0 100644 --- a/vendor/assets/iD/iD/locales/de.json +++ b/vendor/assets/iD/iD/locales/de.json @@ -239,7 +239,7 @@ "commit": { "title": "Änderungen speichern", "description_placeholder": "Eine kurze Beschreibung deiner Beiträge", - "message_label": "Änderungskommentar", + "message_label": "Änderungssatzkommentar", "upload_explanation": "Änderungen, die du hoch lädst, werden auf allen Karten sichtbar, die OpenStreetMap nutzen.", "upload_explanation_with_user": "Änderungen, die du als {user} hoch lädst, werden auf allen Karten sichtbar, die OpenStreetMap nutzen.", "save": "Speichern", @@ -254,6 +254,22 @@ "list": "Bearbeitet von {users}", "truncated_list": "Bearbeitet von {users} und {count} anderen" }, + "infobox": { + "selected": "{n} ausgewählt", + "geometry": "Geometrie", + "closed": "geschlossen", + "length": "Länge", + "area": "Fläche", + "location": "Standort", + "metric": "Metrisch" + }, + "geometry": { + "point": "Punkt", + "vertex": "Vertex", + "line": "Linie", + "area": "Fläche", + "relation": "Relation" + }, "geocoder": { "search": "Weltweit suchen …", "no_results_visible": "Keine Ergebnisse im sichtbaren Kartenbereich", @@ -568,39 +584,39 @@ "fields": { "access": { "label": "Zugangsberechtigung", - "placeholder": "Unbekannt", - "types": { - "access": "Allgemein", - "foot": "zu Fuß", - "motor_vehicle": "Motorfahrzeuge", - "bicycle": "Fahrräder", - "horse": "Pferde" - }, "options": { - "yes": { - "title": "Erlaubt", - "description": "Zugang gesetzlich erlaubt; Wegerecht" + "designated": { + "description": "Zugang durch Schilder oder bestimmte lokale Gesetze erlaubt", + "title": "vorgesehen" + }, + "destination": { + "description": "Zugang nur erlaubt, um ein Ziel zu erreichen", + "title": "Ziel" }, "no": { - "title": "Verboten", - "description": "Zugang der Allgemeinheit nicht erlaubt" + "description": "Zugang der Allgemeinheit nicht erlaubt", + "title": "Verboten" }, "permissive": { - "title": "geduldet", - "description": "Zugang solange gewährt, bis der Besitzer seine Erlaubnis zurück nimmt." + "description": "Zugang solange gewährt, bis der Besitzer seine Erlaubnis zurück nimmt.", + "title": "geduldet" }, "private": { - "title": "Privat", - "description": "Zugang nur mit individueller Erlaubnis des Eigentümers" + "description": "Zugang nur mit individueller Erlaubnis des Eigentümers", + "title": "Privat" }, - "designated": { - "title": "vorgesehen", - "description": "Zugang durch Schilder oder bestimmte lokale Gesetze erlaubt" - }, - "destination": { - "title": "Ziel", - "description": "Zugang nur erlaubt, um ein Ziel zu erreichen" + "yes": { + "description": "Zugang gesetzlich erlaubt; Wegerecht", + "title": "Erlaubt" } + }, + "placeholder": "Unbekannt", + "types": { + "access": "Allgemein", + "bicycle": "Fahrräder", + "foot": "zu Fuß", + "horse": "Pferde", + "motor_vehicle": "Motorfahrzeuge" } }, "access_simple": { @@ -613,19 +629,19 @@ "address": { "label": "Adresse", "placeholders": { + "city": "Stadt", + "country": "Staat", + "district": "Kreis/Bezirk", + "hamlet": "Weiler", "housename": "Hausname", "housenumber": "123", - "street": "Straße", - "city": "Stadt", - "postcode": "Postleitzahl", "place": "Ort", - "hamlet": "Weiler", - "suburb": "Stadtteil", - "subdistrict": "Stadtbezirk", - "district": "Kreis/Bezirk", + "postcode": "Postleitzahl", "province": "Regierungsbezirk", "state": "Bundesland", - "country": "Staat" + "street": "Straße", + "subdistrict": "Stadtbezirk", + "suburb": "Stadtteil" } }, "admin_level": { @@ -637,9 +653,9 @@ "aerialway/access": { "label": "Zugang", "options": { + "both": "Beide", "entry": "Eingang", - "exit": "Ausgang", - "both": "Beide" + "exit": "Ausgang" } }, "aerialway/bubble": { @@ -663,9 +679,9 @@ "aerialway/summer/access": { "label": "Zugang (Sommer)", "options": { + "both": "Beide", "entry": "Eingang", - "exit": "Ausgang", - "both": "Beide" + "exit": "Ausgang" } }, "aeroway": { @@ -714,29 +730,29 @@ "cardinal_direction": { "label": "Richtung", "options": { - "N": "Nord", "E": "Ost", - "S": "Süd", - "W": "West", - "NE": "Nordost", - "SE": "Südost", - "SW": "Südwest", - "NW": "Nordwest", - "NNE": "Nord-Nordost", "ENE": "Ost-Nordost", "ESE": "Ost-Südost", + "N": "Nord", + "NE": "Nordost", + "NNE": "Nord-Nordost", + "NNW": "Nord-Nordwest", + "NW": "Nordwest", + "S": "Süd", + "SE": "Südost", "SSE": "Süd-Südost", "SSW": "Süd-Südwest", - "WSW": "West-Südwest", + "SW": "Südwest", + "W": "West", "WNW": "West-Nordwest", - "NNW": "Nord-Nordwest" + "WSW": "West-Südwest" } }, "clock_direction": { "label": "Richtung", "options": { - "clockwise": "im Uhrzeigersinn", - "anticlockwise": "gegen den Uhrzeigersinn" + "anticlockwise": "gegen den Uhrzeigersinn", + "clockwise": "im Uhrzeigersinn" } }, "collection_times": { @@ -780,13 +796,13 @@ }, "electrified": { "label": "Elektrifizierung", - "placeholder": "Fahrleitung, elektrifizierte Eisenbahn ...", "options": { "contact_line": "Fahrleitung", + "no": "Nein", "rail": "Elektrifizierte Eisenbahn", - "yes": "Ja (unspezifiziert)", - "no": "Nein" - } + "yes": "Ja (unspezifiziert)" + }, + "placeholder": "Fahrleitung, elektrifizierte Eisenbahn ..." }, "elevation": { "label": "Höhe über dem Meeresspiegel" @@ -811,9 +827,9 @@ "label": "Typ", "options": { "pillar": "Ständer/Oberirdisch", + "pond": "Teich", "underground": "Unterirdisch", - "wall": "Mauer", - "pond": "Teich" + "wall": "Mauer" } }, "fixme": { @@ -854,12 +870,12 @@ }, "gender": { "label": "Geschlecht", - "placeholder": "Unbekannt", "options": { - "male": "Männlich", "female": "Weiblich", + "male": "Männlich", "unisex": "Geschlechtsneutral" - } + }, + "placeholder": "Unbekannt" }, "generator/method": { "label": "Methode" @@ -900,8 +916,8 @@ "incline_steps": { "label": "Steigung", "options": { - "up": "Hinauf", - "down": "Hinunter" + "down": "Hinunter", + "up": "Hinauf" } }, "information": { @@ -910,11 +926,11 @@ "internet_access": { "label": "Internetzugang", "options": { - "yes": "Ja", "no": "Nein", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "kabelgebunden", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Ja" } }, "lamp_type": { @@ -933,20 +949,20 @@ "leaf_cycle": { "label": "Blätterzyklus", "options": { - "evergreen": "Immergrün", "deciduous": "Sommergrün", - "semi_evergreen": "Halbimmergrün", + "evergreen": "Immergrün", + "mixed": "Gemischt", "semi_deciduous": "Halbimmergrün", - "mixed": "Gemischt" + "semi_evergreen": "Halbimmergrün" } }, "leaf_type": { "label": "Blatttyp", "options": { "broadleaved": "Breitblättrig", - "needleleaved": "Nadelblätter", + "leafless": "Blattlos", "mixed": "Gemischt", - "leafless": "Blattlos" + "needleleaved": "Nadelblätter" } }, "leisure": { @@ -974,7 +990,6 @@ }, "mtb/scale": { "label": "MTB Schwierigkeitsgrad", - "placeholder": "0, 1, 2, 3 ...", "options": { "0": "0: Solider Kies/komprimierte Erde, keine Hindernisse, weite Kurven", "1": "1: Teilweise lockerer Untergrund, kleine Hindernisse, weite Kurve", @@ -983,22 +998,22 @@ "4": "4: Lockere Oberfläche oder Felsbrocken, gefährliche Haarnadelkurven", "5": "5: Maximale Schwierigkeit, Geröllfelder, Erdrutsche", "6": "6: Nicht befahrbar ausgenommen durch die allerbesten Mountain Biker" - } + }, + "placeholder": "0, 1, 2, 3 ..." }, "mtb/scale/imba": { "label": "IMBA Schwierigkeitsgrad", - "placeholder": "Einfach, Mittel, Schwierig ...", "options": { "0": "Am Einfachsten (weißer Kreis)", "1": "einfach (grüner Kreis)", "2": "Mittel (blaues Quadrat)", "3": "Schwierig (schwarze Raute)", "4": "Sehr schwierig (doppelte schwarze Raute)" - } + }, + "placeholder": "Einfach, Mittel, Schwierig ..." }, "mtb/scale/uphill": { "label": "Mountain Bike Bergauf-Hinderniss", - "placeholder": "0, 1, 2, 3 ...", "options": { "0": "0: Durschnittliche Steigung <10%, Kies/verdichtete Erde, keine Hindernisse", "1": "1: Durchschnittliche Steigung <15%, Kies/verdichtete Erde, wenige kleine Hindernisse", @@ -1006,7 +1021,8 @@ "3": "3: Durchschnittliche Steigung <25%, unterschiedliche Oberfläche, faustgroße Steine/Wurzeln", "4": "4: Durchschnittliche Steigung <30%, schlechter Zustand, große Steine/Zweige", "5": "5: sehr steig, Fahrrad muss generell geschoben oder getragen werden" - } + }, + "placeholder": "0, 1, 2, 3 ..." }, "name": { "label": "Name", @@ -1027,17 +1043,17 @@ "oneway": { "label": "Einbahnstraße", "options": { + "no": "Nein", "undefined": "Vermutlich Nein", - "yes": "Ja", - "no": "Nein" + "yes": "Ja" } }, "oneway_yes": { "label": "Einbahnstraße", "options": { + "no": "Nein", "undefined": "Vermutlich Ja", - "yes": "Ja", - "no": "Nein" + "yes": "Ja" } }, "opening_hours": { @@ -1056,13 +1072,13 @@ "parking": { "label": "Typ", "options": { - "surface": "Ebenerdig", - "multi-storey": "Parkhaus", - "underground": "Tiefgarage", - "sheds": "Schuppen", "carports": "Carport", "garage_boxes": "Garagen", - "lane": "Straßenrand" + "lane": "Straßenrand", + "multi-storey": "Parkhaus", + "sheds": "Schuppen", + "surface": "Ebenerdig", + "underground": "Tiefgarage" } }, "phone": { @@ -1071,24 +1087,24 @@ }, "piste/difficulty": { "label": "Schwierigkeit", - "placeholder": "Einfach, Mittel, Fortgeschritten ...", "options": { - "novice": "Anfänger (Unterricht)", - "easy": "Einfach (grüner Kreis)", - "intermediate": "Mittel (blaues Quadrat)", "advanced": "fortgeschritten (schwarze Raute)", + "easy": "Einfach (grüner Kreis)", "expert": "Experte (doppelte schwarze Raute)", + "extreme": "Extrem (Kletterausrüstung benötigt)", "freeride": "Variantenabfahrt (abseits der Piste)", - "extreme": "Extrem (Kletterausrüstung benötigt)" - } + "intermediate": "Mittel (blaues Quadrat)", + "novice": "Anfänger (Unterricht)" + }, + "placeholder": "Einfach, Mittel, Fortgeschritten ..." }, "piste/grooming": { "label": "Grooming", "options": { - "classic": "Klassisch", - "mogul": "Buckelpiste", "backcountry": "Hinterland-Skitouren", + "classic": "Klassisch", "classic+skating": "Klassisch oder Skating", + "mogul": "Buckelpiste", "scooter": "Roller/Schneemobil", "skating": "Skating" } @@ -1097,14 +1113,14 @@ "label": "Typ", "options": { "downhill": "Abfahrt", + "hike": "Wandern", + "ice_skate": "Eislaufen", "nordic": "Nordisch", + "playground": "Spielplatz", "skitour": "Skitour", "sled": "Rodeln", - "hike": "Wandern", "sleigh": "Schlitten fahren", - "ice_skate": "Eislaufen", - "snow_park": "Snowpark", - "playground": "Spielplatz" + "snow_park": "Snowpark" } }, "place": { @@ -1154,15 +1170,15 @@ }, "sac_scale": { "label": "Wanderweg Klassifizierung", - "placeholder": "Bergwandern, Bergsteigen ...", "options": { - "hiking": "T1: Wandern", - "mountain_hiking": "T2: Bergwandern", - "demanding_mountain_hiking": "T3: Anspruchsvolles Bergwandern", "alpine_hiking": "T4: Bergsteigen", "demanding_alpine_hiking": "T5: Anspruchsvolles Bergsteigen", - "difficult_alpine_hiking": "T6: Schwieriges Bergsteigen" - } + "demanding_mountain_hiking": "T3: Anspruchsvolles Bergwandern", + "difficult_alpine_hiking": "T6: Schwieriges Bergsteigen", + "hiking": "T1: Wandern", + "mountain_hiking": "T2: Bergwandern" + }, + "placeholder": "Bergwandern, Bergsteigen ..." }, "seasonal": { "label": "Saisonal" @@ -1173,26 +1189,26 @@ "service/bicycle/chain_tool": { "label": "Kettennietdrücker", "options": { + "no": "Nein", "undefined": "Vermutlich Nein", - "yes": "Ja", - "no": "Nein" + "yes": "Ja" } }, "service/bicycle/pump": { "label": "Luftpumpe", "options": { + "no": "Nein", "undefined": "Vermutlich Nein", - "yes": "Ja", - "no": "Nein" + "yes": "Ja" } }, "service_rail": { "label": "Diensttyp", "options": { - "spur": "Spur", - "yard": "Hof", + "crossover": "Gleiskreuzung", "siding": "Abstellgleis", - "crossover": "Gleiskreuzung" + "spur": "Spur", + "yard": "Hof" } }, "shelter": { @@ -1209,29 +1225,29 @@ }, "smoking": { "label": "Rauchen", - "placeholder": "Nein, Getrennt, Ja ...", "options": { - "no": "Rauchen überall verboten", - "separated": "In Raucherzonen, nicht baulich getrennt", + "dedicated": "Für Raucher bestimmt (z.B.: Raucherklub)", "isolated": "In Raucherzonen, baulich getrennt", + "no": "Rauchen überall verboten", "outside": "Im Freien erlaubt", - "yes": "Überall erlaubt", - "dedicated": "Für Raucher besteimmt (z.B.: Raucherklub)" - } + "separated": "In Raucherzonen, nicht baulich getrennt", + "yes": "Überall erlaubt" + }, + "placeholder": "Nein, Getrennt, Ja ..." }, "smoothness": { "label": "Gleichmäßigkeit", - "placeholder": "Schmale Reifen, Räder, Off-Road ...", "options": { + "bad": "Robuste Räder: Trekkingrad, Auto, Rikscha", "excellent": "Schmale Reifen: Rollerblade, Skateboard", "good": "Schmale Reifen: Rennrad", + "horrible": "Off-Road: Schweres Off-Road-Fahrzeug", + "impassable": "Unpassierbar / Keine Fahrzeuge mit Rädern", "intermediate": "Räder: Citybike, Rollstuhl, Roller", - "bad": "Robuste Räder: Trekkingrad, Auto, Rikscha", "very_bad": "Hoher Radstand: leichtes Off-Road-Fahrzeug", - "horrible": "Off-Road: Schweres Off-Road-Fahrzeug", - "very_horrible": "Spezialisiertes Off-Road: Traktor, Quad", - "impassable": "Unpassierbar / Keine Fahrzeuge mit Rädern" - } + "very_horrible": "Spezialisiertes Off-Road: Traktor, Quad" + }, + "placeholder": "Schmale Reifen, Räder, Off-Road ..." }, "social_facility_for": { "label": "Zielgruppe der Einrichtung", @@ -1251,14 +1267,14 @@ }, "structure": { "label": "Struktur", - "placeholder": "Unbekannt", "options": { "bridge": "Brücke", - "tunnel": "Tunnel", - "embankment": "Fahrdamm", "cutting": "Senke", - "ford": "Furt" - } + "embankment": "Fahrdamm", + "ford": "Furt", + "tunnel": "Tunnel" + }, + "placeholder": "Unbekannt" }, "studio_type": { "label": "Typ" @@ -1277,20 +1293,20 @@ }, "takeaway": { "label": "Takeaway", - "placeholder": "Ja, Nein, Nur Takeaway ...", "options": { - "yes": "Ja", "no": "Nein", - "only": "Nur Takeaway" - } + "only": "Nur Takeaway", + "yes": "Ja" + }, + "placeholder": "Ja, Nein, Nur Takeaway ..." }, "toilets/disposal": { "label": "Toiletten-Bauart", "options": { - "flush": "Spülung", - "pitlatrine": "Grube/Latrine", + "bucket": "Eimer", "chemical": "Chemisch", - "bucket": "Eimer" + "flush": "Spülung", + "pitlatrine": "Grube/Latrine" } }, "tourism": { @@ -1301,26 +1317,26 @@ }, "tracktype": { "label": "Feld-/Waldweg-Typ", - "placeholder": "fest, großteils fest, weich ...", "options": { "grade1": "Fest: befestigt oder sehr kompakte harte Oberfläche", "grade2": "Großteils Fest: Kies/Stein gemischt mit etwas weichem Material", "grade3": "Gleichmäßige Mischung von harten und weichem Material", "grade4": "Großteils weich: Erde/Sand/Gras gemischt mit etwas hartem Material", "grade5": "Weiche: Erde/Sand/Gras" - } + }, + "placeholder": "fest, großteils fest, weich ..." }, "trail_visibility": { "label": "Erkennbarkeit des Wanderweges", - "placeholder": "Ausgezeichnet, Gut, Schlecht ...", "options": { + "bad": "Schlecht: Keine Markierungen, Weg teilweise unsichtbar oder nicht vorhanden", "excellent": "Ausgezeichnet: unmissverständlicher Weg oder überall Markierungen", "good": "Gut: sicherbare Markierungen, müssen teilweise gesucht werden", - "intermediate": "Mittelmäßig: Wenige Markierungen, Weg großteils sichtbar", - "bad": "Schlecht: Keine Markierungen, Weg teilweise unsichtbar oder nicht vorhanden", "horrible": "Schrecklich: oft kein Weg, teilweise Orientierungserfahrung benötigt", + "intermediate": "Mittelmäßig: Wenige Markierungen, Weg großteils sichtbar", "no": "Nein: Kein Weg, ausgezeichnete Orientierungserfahrung benötigt" - } + }, + "placeholder": "Ausgezeichnet, Gut, Schlecht ..." }, "trees": { "label": "Bäume" @@ -1475,6 +1491,9 @@ "name": "Fahrradreperaturstation", "terms": "Fahrradreperaturstation, Fahrradreperaturbox" }, + "amenity/biergarten": { + "name": "Biergarten" + }, "amenity/boat_rental": { "name": "Bootvermietung", "terms": "Bootsverleih" @@ -2635,6 +2654,10 @@ "name": "Aussichtsturm", "terms": "Ausguck, Ausblick, Beobachtungsstand" }, + "man_made/petroleum_well": { + "name": "Erdölpumpe", + "terms": "Tiefpumpe" + }, "man_made/pier": { "name": "Steg", "terms": "Anleger, Pier" @@ -2643,6 +2666,12 @@ "name": "Pipeline", "terms": "Pipeline, Rohrleitung" }, + "man_made/silo": { + "name": "Silo" + }, + "man_made/storage_tank": { + "name": "Lagertank" + }, "man_made/survey_point": { "name": "Vermessungspunkt", "terms": "Trigonometrischer Punkt, Geodätischer Festpunkt" @@ -2863,6 +2892,9 @@ "name": "Großstadt", "terms": "Stadt" }, + "place/farm": { + "name": "Bauernhof" + }, "place/hamlet": { "name": "Siedlung", "terms": "Weiler, kleines Dorf" diff --git a/vendor/assets/iD/iD/locales/el.json b/vendor/assets/iD/iD/locales/el.json index e42e09e03..639f24139 100644 --- a/vendor/assets/iD/iD/locales/el.json +++ b/vendor/assets/iD/iD/locales/el.json @@ -191,7 +191,6 @@ "commit": { "title": "Αποθήκευση Αλλαγών", "description_placeholder": "Σύντομη περιγραφή των συνεισφορών σας", - "message_label": "Υποβολή μηνύματος", "upload_explanation": "ΟΙ αλλαγές που θα ανεβάσετε θα είναι ορατές σε όλους τους χάρτες που χρησιμοποιούν δεδομένα OpenStreetMap.", "upload_explanation_with_user": "ΟΙ αλλαγές που θα ανεβάσετε ως {user} θα είναι ορατές σε όλους τους χάρτες που χρησιμοποιούν δεδομένα OpenStreetMap.", "save": "Αποθήκευση", @@ -377,39 +376,39 @@ "fields": { "access": { "label": "Πρόσβαση", - "placeholder": "Άγνωστο", - "types": { - "access": "Γενική", - "foot": "Πεζοί", - "motor_vehicle": "Μηχανοκίνητα", - "bicycle": "Ποδήλατα", - "horse": "Άλογα" - }, "options": { - "yes": { - "title": "Επιτρέπεται", - "description": "Η πρόσβαση επιτρέπεται νόμιμα, Δικαίωμα διέλευσης" + "designated": { + "description": "Η πρόσβαση επιτρέπεται βάσει πινακίδων ή συγκεκριμένων τοπικών νόμων", + "title": "Καθορισμένο" + }, + "destination": { + "description": "Η πρόσβαση επιτρέπεται μόνο για για να φτάσετε σε κάποιο προορισμό", + "title": "Προορισμός" }, "no": { - "title": "Απαγορεύεται", - "description": "Η πρόσβαση δεν επιτρέπεται στο ευρύ κοινό" + "description": "Η πρόσβαση δεν επιτρέπεται στο ευρύ κοινό", + "title": "Απαγορεύεται" }, "permissive": { - "title": "Ανεκτική", - "description": "Η πρόσβαση επιτρέπεται μέχρι ο ιδιοκτήτης αναιρέσει την άδεια" + "description": "Η πρόσβαση επιτρέπεται μέχρι ο ιδιοκτήτης αναιρέσει την άδεια", + "title": "Ανεκτική" }, "private": { - "title": "Ιδιωτική", - "description": "Η πρόσβαση επιτρέπεται μόνο με άδεια από τον ιδιοκτήτη σε ατομική βάση" + "description": "Η πρόσβαση επιτρέπεται μόνο με άδεια από τον ιδιοκτήτη σε ατομική βάση", + "title": "Ιδιωτική" }, - "designated": { - "title": "Καθορισμένο", - "description": "Η πρόσβαση επιτρέπεται βάσει πινακίδων ή συγκεκριμένων τοπικών νόμων" - }, - "destination": { - "title": "Προορισμός", - "description": "Η πρόσβαση επιτρέπεται μόνο για για να φτάσετε σε κάποιο προορισμό" + "yes": { + "description": "Η πρόσβαση επιτρέπεται νόμιμα, Δικαίωμα διέλευσης", + "title": "Επιτρέπεται" } + }, + "placeholder": "Άγνωστο", + "types": { + "access": "Γενική", + "bicycle": "Ποδήλατα", + "foot": "Πεζοί", + "horse": "Άλογα", + "motor_vehicle": "Μηχανοκίνητα" } }, "access_simple": { @@ -422,16 +421,16 @@ "address": { "label": "Διεύθυνση", "placeholders": { + "city": "Πόλη", + "country": "Χώρα", + "hamlet": "Οικισμός", "housename": "Όνομα Σπιτιού", "housenumber": "123", - "street": "Οδός", - "city": "Πόλη", - "postcode": "Ταχ. Κώδικας", "place": "Τόπος", - "hamlet": "Οικισμός", - "suburb": "Προάστιο", + "postcode": "Ταχ. Κώδικας", "state": "Πολιτεία", - "country": "Χώρα" + "street": "Οδός", + "suburb": "Προάστιο" } }, "admin_level": { @@ -500,29 +499,29 @@ "cardinal_direction": { "label": "Κατεύθυνση", "options": { - "N": "Βοράς", "E": "Ανατολή", - "S": "Νότος", - "W": "Δύση", - "NE": "Βορειοανατολικά", - "SE": "Νοτιοανατολικά", - "SW": "Νοτιοδυτικά", - "NW": "Βορειοδυτικά", - "NNE": "Βόρεια-βορειοανατολικά", "ENE": "Ανατολικά-βορειοανατολικά", "ESE": "Ανατολικά-νοτιοανατολικά", + "N": "Βοράς", + "NE": "Βορειοανατολικά", + "NNE": "Βόρεια-βορειοανατολικά", + "NNW": "Βόρεια-βορειοδυτικά", + "NW": "Βορειοδυτικά", + "S": "Νότος", + "SE": "Νοτιοανατολικά", "SSE": "Νότια-νοτιοανατολικά", "SSW": "Νότια-νοτιοδυτικά", - "WSW": "Δυτικά-νοτιοδυτικά", + "SW": "Νοτιοδυτικά", + "W": "Δύση", "WNW": "Δυτικά-βορειοδυτικά", - "NNW": "Βόρεια-βορειοδυτικά" + "WSW": "Δυτικά-νοτιοδυτικά" } }, "clock_direction": { "label": "Κατεύθυνση", "options": { - "clockwise": "Δεξιόστροφα", - "anticlockwise": "Αριστερόστροφα" + "anticlockwise": "Αριστερόστροφα", + "clockwise": "Δεξιόστροφα" } }, "collection_times": { @@ -551,8 +550,8 @@ }, "electrified": { "options": { - "yes": "Ναι (ακαθόριστο)", - "no": "Όχι" + "no": "Όχι", + "yes": "Ναι (ακαθόριστο)" } }, "elevation": { @@ -577,9 +576,9 @@ "fire_hydrant/type": { "label": "Τύπος", "options": { + "pond": "Λιμνούλα", "underground": "Υπόγεια", - "wall": "Τοίχος", - "pond": "Λιμνούλα" + "wall": "Τοίχος" } }, "fixme": { @@ -621,11 +620,11 @@ "internet_access": { "label": "Πρόσβαση Στο Διαδίκτυο", "options": { - "yes": "Ναι", "no": "Όχι", - "wlan": "Ασύρματο Δίκτυο", + "terminal": "Τερματικό", "wired": "Ενσύρματο δύκτυο", - "terminal": "Τερματικό" + "wlan": "Ασύρματο Δίκτυο", + "yes": "Ναι" } }, "lamp_type": { @@ -686,15 +685,15 @@ "oneway": { "label": "Μονόδρομος", "options": { - "yes": "Ναι", - "no": "Όχι" + "no": "Όχι", + "yes": "Ναι" } }, "oneway_yes": { "label": "Μονόδρομος", "options": { - "yes": "Ναι", - "no": "Όχι" + "no": "Όχι", + "yes": "Ναι" } }, "opening_hours": { @@ -769,11 +768,11 @@ }, "smoking": { "label": "Κάπνισμα", - "placeholder": "Όχι, Ξεχωριστά, Ναι...", "options": { "outside": "Επιτρέπεται έξω", "yes": "Επιτρέπεται παντού" - } + }, + "placeholder": "Όχι, Ξεχωριστά, Ναι..." }, "source": { "label": "Πηγή" @@ -789,14 +788,14 @@ }, "structure": { "label": "Διάρθρωση", - "placeholder": "Άγνωστο", "options": { "bridge": "Γέφυρα", - "tunnel": "Σήραγγα", - "embankment": "Ανάχωμα", "cutting": "Ανασκαφή", - "ford": "Κοιτόστρωση" - } + "embankment": "Ανάχωμα", + "ford": "Κοιτόστρωση", + "tunnel": "Σήραγγα" + }, + "placeholder": "Άγνωστο" }, "studio_type": { "label": "Τύπος" diff --git a/vendor/assets/iD/iD/locales/en.json b/vendor/assets/iD/iD/locales/en.json index b2a888b68..d21a16cfb 100644 --- a/vendor/assets/iD/iD/locales/en.json +++ b/vendor/assets/iD/iD/locales/en.json @@ -254,6 +254,26 @@ "list": "Edits by {users}", "truncated_list": "Edits by {users} and {count} others" }, + "infobox": { + "selected": "{n} selected", + "geometry": "Geometry", + "closed": "closed", + "center": "Center", + "perimeter": "Perimeter", + "length": "Length", + "area": "Area", + "centroid": "Centroid", + "location": "Location", + "metric": "Metric", + "imperial": "Imperial" + }, + "geometry": { + "point": "point", + "vertex": "vertex", + "line": "line", + "area": "area", + "relation": "relation" + }, "geocoder": { "search": "Search worldwide...", "no_results_visible": "No results in visible map area", @@ -745,6 +765,9 @@ "construction": { "label": "Type" }, + "content": { + "label": "Contents" + }, "country": { "label": "Country" }, @@ -1116,6 +1139,9 @@ "power": { "label": "Type" }, + "power_supply": { + "label": "Power Supply" + }, "railway": { "label": "Type" }, @@ -1164,6 +1190,9 @@ "difficult_alpine_hiking": "T6: Difficult Alpine Hiking" } }, + "sanitary_dump_station": { + "label": "Toilet Disposal" + }, "seasonal": { "label": "Seasonal" }, @@ -1334,6 +1363,9 @@ "water": { "label": "Type" }, + "water_point": { + "label": "Water Point" + }, "waterway": { "label": "Type" }, @@ -1475,6 +1507,10 @@ "name": "Bicycle Repair Station", "terms": "bike" }, + "amenity/biergarten": { + "name": "Beer Garden", + "terms": "beer,bier,booze" + }, "amenity/boat_rental": { "name": "Boat Rental", "terms": "" @@ -1671,6 +1707,10 @@ "name": "Restaurant", "terms": "bar,breakfast,cafe,café,canteen,coffee,dine,dining,dinner,drive-in,eat,grill,lunch,table" }, + "amenity/sanitary_dump_station": { + "name": "RV Toilet Disposal", + "terms": "Motor Home,Camper,Sanitary,Dump Station,Elsan,CDP,CTDP,Chemical Toilet" + }, "amenity/school": { "name": "School Grounds", "terms": "academy,elementary school,middle school,high school" @@ -2651,6 +2691,14 @@ "name": "Pipeline", "terms": "" }, + "man_made/silo": { + "name": "Silo", + "terms": "grain,corn,wheat" + }, + "man_made/storage_tank": { + "name": "Storage Tank", + "terms": "water,oil,gas,petrol" + }, "man_made/survey_point": { "name": "Survey Point", "terms": "" @@ -3477,11 +3525,11 @@ }, "tourism/camp_site": { "name": "Camp Site", - "terms": "" + "terms": "Tent" }, "tourism/caravan_site": { "name": "RV Park", - "terms": "" + "terms": "Motor Home,Camper" }, "tourism/chalet": { "name": "Chalet", @@ -3663,6 +3711,10 @@ "name": "Drain", "terms": "" }, + "waterway/fuel": { + "name": "Marine Fuel Station", + "terms": "petrol,gas,diesel,boat" + }, "waterway/river": { "name": "River", "terms": "beck,branch,brook,course,creek,estuary,rill,rivulet,run,runnel,stream,tributary,watercourse" @@ -3671,6 +3723,10 @@ "name": "Riverbank", "terms": "" }, + "waterway/sanitary_dump_station": { + "name": "Marine Toilet Disposal", + "terms": "Boat,Watercraft,Sanitary,Dump Station,Pumpout,Pump out,Elsan,CDP,CTDP,Chemical Toilet" + }, "waterway/stream": { "name": "Stream", "terms": "beck,branch,brook,burn,course,creek,current,drift,flood,flow,freshet,race,rill,rindle,rivulet,run,runnel,rush,spate,spritz,surge,tide,torrent,tributary,watercourse" diff --git a/vendor/assets/iD/iD/locales/eo.json b/vendor/assets/iD/iD/locales/eo.json index 13e0c760a..edc1da906 100644 --- a/vendor/assets/iD/iD/locales/eo.json +++ b/vendor/assets/iD/iD/locales/eo.json @@ -168,18 +168,18 @@ }, "fields": { "access": { - "placeholder": "Nekonata", - "types": { - "bicycle": "Bicikloj", - "horse": "Ĉevaloj" - }, "options": { - "yes": { - "title": "Permesita" - }, "no": { "title": "Malpermesita" + }, + "yes": { + "title": "Permesita" } + }, + "placeholder": "Nekonata", + "types": { + "bicycle": "Bicikloj", + "horse": "Ĉevaloj" } }, "access_simple": { @@ -188,11 +188,11 @@ "address": { "label": "Adreso", "placeholders": { - "housenumber": "123", - "street": "Strato", "city": "Urbo", + "country": "Lando", + "housenumber": "123", "province": "Provinco", - "country": "Lando" + "street": "Strato" } }, "aerialway/capacity": { @@ -238,9 +238,9 @@ }, "internet_access": { "options": { - "yes": "Jes", "no": "Ne", - "wlan": "Wi-Fi" + "wlan": "Wi-Fi", + "yes": "Jes" } }, "lanes": { @@ -268,14 +268,14 @@ }, "oneway": { "options": { - "yes": "Jes", - "no": "Ne" + "no": "Ne", + "yes": "Jes" } }, "oneway_yes": { "options": { - "yes": "Jes", - "no": "Ne" + "no": "Ne", + "yes": "Jes" } }, "opening_hours": { diff --git a/vendor/assets/iD/iD/locales/es.json b/vendor/assets/iD/iD/locales/es.json index e466ce97f..8c67560ef 100644 --- a/vendor/assets/iD/iD/locales/es.json +++ b/vendor/assets/iD/iD/locales/es.json @@ -92,7 +92,7 @@ }, "straighten": { "title": "Enderezado", - "description": "Enderezar esta línea", + "description": "Enderezar esta línea.", "key": "S", "annotation": "Línea enderezada.", "too_bendy": "Esto no puede ser enderezado porque es demasiado sinuoso.", @@ -103,21 +103,21 @@ "description": "Objeto eliminado permanentemente.", "annotation": { "point": "Punto eliminado.", - "vertex": "Vértice elimnado de la ruta.", + "vertex": "Nodo eliminado de la vía.", "line": "Línea eliminada.", "area": "Área eliminada.", "relation": "Relación eliminada.", "multiple": "{n} objetos eliminados." }, - "incomplete_relation": "Está característica no puede ser borrada porque no se ha descargado completa.", - "part_of_relation": "Esta característica no se puede eliminar porque es parte de una relación más grande. Usted debe eliminarlo de la relación primero.", - "connected_to_hidden": "Esto no puede ser borrado porque está conectado a un elemento oculto." + "incomplete_relation": "Está característica no puede ser borrada porque no se ha descargado completamente.", + "part_of_relation": "Esta característica no puede ser eliminada porque es parte de una relación más grande. Usted debe quitarla de la relación primero.", + "connected_to_hidden": "Esto no puede ser borrado porque está conectado a una característica oculta." }, "add_member": { "annotation": "Añadir un miembro a la relación." }, "delete_member": { - "annotation": "Eliminar un miembro de una relación" + "annotation": "Quitar un miembro de una relación." }, "connect": { "annotation": { @@ -140,10 +140,10 @@ "description": "Combinar líneas.", "key": "C", "annotation": "{n} líneas combinadas.", - "not_eligible": "Estos elementos no pueden ser fusionados.", + "not_eligible": "Estas características no pueden ser combinadas.", "not_adjacent": "Estas líneas no pueden ser fusionadas porque no están conectadas", "restriction": "Estas líneas no se pueden combinar porque al menos una es miembro de una relación de \"{relation}\".", - "incomplete_relation": "Estos elementos no se pueden combinar porque al menos uno de ellos no se ha descargado por completo." + "incomplete_relation": "Estas características no pueden ser combinadas porque al menos una no ha sido descargado por completo." }, "move": { "title": "Mover", @@ -228,8 +228,8 @@ "loading_auth": "Conectando a OpenStreetMap...", "report_a_bug": "Informar de un error", "feature_info": { - "hidden_warning": "{count} elementos ocultos", - "hidden_details": "Estos elementos actualmente están ocultos: {details}" + "hidden_warning": "{count} características ocultas", + "hidden_details": "Estas características actualmente están ocultas: {details}" }, "status": { "error": "No se puede conectar con la API.", @@ -239,7 +239,7 @@ "commit": { "title": "Guardar cambios", "description_placeholder": "Breve descripción de tus contribuciones", - "message_label": "Mensaje del registro", + "message_label": "Comentario del conjunto de cambios", "upload_explanation": "Los cambios que sube serán visibles en todos los mapas que usen datos de OpenStreetMap.", "upload_explanation_with_user": "Los cambios que sube como {user} serán visibles en todos los mapas que usen datos de OpenStreetMap.", "save": "Guardar", @@ -254,6 +254,26 @@ "list": "Ediciones de {users}", "truncated_list": "Ediciones de {users} y {count} más" }, + "infobox": { + "selected": "{n} seleccionado", + "geometry": "Geometría", + "closed": "cerrado", + "center": "Centro", + "perimeter": "Perímetro", + "length": "Tamaño", + "area": "Área", + "centroid": "Centroide", + "location": "Ubicación", + "metric": "Métrica", + "imperial": "Imperial" + }, + "geometry": { + "point": "punto", + "vertex": "vértice", + "line": "línea", + "area": "área", + "relation": "relación" + }, "geocoder": { "search": "Buscar mundialmente…", "no_results_visible": "No hay resultados en el área visible", @@ -276,12 +296,12 @@ "results": "{n} resultados para {search}", "reference": "Ver más información en la wiki de OpenStreetMap", "back_tooltip": "Cambiar tipo de elemento", - "remove": "Eliminar", + "remove": "Quitar", "search": "Buscar", "multiselect": "Elementos seleccionados", "unknown": "Desconocido", "incomplete": "", - "feature_list": "Buscar elementos", + "feature_list": "Buscar características", "edit": "Editar elemento", "check": { "yes": "Si", @@ -310,8 +330,8 @@ "description": "Datos de mapa", "data_layers": "Capas de datos", "fill_area": "Pintar las áreas", - "map_features": "Elementos de la mapa", - "autohidden": "Estos objetos geográficos se han ocultado automáticamente porque existen demasiados representados en la pantalla. Puede acercarse con el zoom para editarlos." + "map_features": "Características del mapa", + "autohidden": "Estas características se han ocultado automáticamente porque existen demasiadas mostradas en la pantalla. Puede acercarse para editarlos." }, "feature": { "points": { @@ -335,7 +355,7 @@ "tooltip": "Edificios, garajes, cobertizos, etc." }, "landuse": { - "description": "Usos del suelo", + "description": "Características de usos del suelo", "tooltip": "Bosques, explotaciones agropecuarias, parques, zonas residenciales o comerciales, etc." }, "boundaries": { @@ -343,15 +363,15 @@ "tooltip": "Límites administrativos" }, "water": { - "description": "Elementos relacionados con el agua", + "description": "Características de agua", "tooltip": "Ríos, lagos, embalses, estanques, láminas de agua, etc." }, "rail": { - "description": "Elementos ferroviarios", + "description": "Características ferroviarias", "tooltip": "Ferrocarriles" }, "power": { - "description": "Elementos relacionados con la energía", + "description": "Características de energía", "tooltip": "Líneas eléctricas, plantas de energía, subestaciones, etc." }, "past_future": { @@ -388,7 +408,7 @@ "help": "Guardar los cambios en OpenStreetMap haciéndolos visibles a otros usuarios.", "no_changes": "No hay cambios que guardar.", "error": "Se han producido errores al tratar de guardar", - "status_code": "El servidor devolvió código de estado {code}", + "status_code": "El servidor devolvió el código de estado {code}", "unknown_error_details": "Asegúrese de que está conectado a Internet.", "uploading": "Subiendo cambios a OpenStreetMap.", "unsaved_changes": "Tiene cambios sin guardar", @@ -400,19 +420,19 @@ "keep_local": "Mantener el mío", "keep_remote": "Usar el suyo", "restore": "Restaurar", - "delete": "Dejar Borrado", - "download_changes": "O descargar los cambios.", + "delete": "Dejar borrado", + "download_changes": "O descargar tus cambios.", "done": "¡Todos los conflictos resueltos!", - "help": "Otro usuario cambió algunas de las características del mapa que usted modificó.\nHaga clic en cada ítem para más detalles sobre el conflicto, y elija si desea mantener\nsus cambios o los cambios del otro usuario.\n" + "help": "Otro usuario cambió algunas de las mismas características del mapa que cambió.\nHaga clic en cada ítem para más detalles sobre el conflicto, y elija si desea mantener\nsus cambios o los cambios de los otros usuarios.\n" } }, "merge_remote_changes": { "conflict": { "deleted": "Este objeto ha sido borrado por {user}.", - "location": "Este objeto fue movido por usted y por {user}.", - "nodelist": "Los nodos fueron cambiados por usted y por {user}.", - "memberlist": "Los miembros de la relación fueron cambiados por usted y por {user}.", - "tags": "Ha cambiado la etiqueta {tag} a \"{local}\" y {user} la cambió a \"{remote}\"." + "location": "Este objeto fue movido por ambos, usted y {user}.", + "nodelist": "Los nodos fueron cambiados por ambos, usted y {user}.", + "memberlist": "Los miembros de la relación fueron cambiados por ambos, usted y {user}.", + "tags": "Usted cambió la etiqueta {tag} a «{local}» y el {user} la cambió a «{remote}»." } }, "success": { @@ -448,7 +468,7 @@ "untagged_point": "Punto sin etiquetar", "untagged_line": "Línea sin etiquetar", "untagged_area": "Área sin etiquetar", - "many_deletions": "Está eliminando {n} objetos ¿Está seguro que quiere hacer esto? Esto los eliminará del mapa que todos ven en openstreetmap.org.", + "many_deletions": "Está eliminando {n} objetos. ¿Está seguro que quiere hacer esto? Esto eliminará del mapa que todo el mundo ve en openstreetmap.org.", "tag_suggests_area": "La etiqueta {tag} sugiere que esta línea debería ser una área, pero no es un área", "untagged_point_tooltip": "Seleccione un tipo de característica que describa lo que es este punto.", "untagged_line_tooltip": "Seleccione un tipo de característica que describa lo que es esta línea.", @@ -474,7 +494,7 @@ "help": { "title": "Ayuda", "help": "# Ayuda\n\nEste es un editor para [OpenStreetMap](http://www.openstreetmap.org/), el\nmapa libre y editable del mundo. Se puede utilizar para agregar y actualizar\ndatos en su área, haciendo el mapa de fuente abierto y de datos abiertos del mundo\nmejor para todos.\n\nLas ediciones que realice en este mapa serán visible a todos los que usen\nOpenStreetMap. Con el fin de hacer una edición, tendrá que\n[Iniciar sesión](https://www.openstreetmap.org/login).\n\n\nEl [editor iD](http://ideditor.com/) es un proyecto colaborativo con [código\nfuente disponible en GitHub](https://github.com/openstreetmap/iD).\n", - "editing_saving": "# Editar & Guardar\n\nEste editor está diseñado para trabajar en línea principalmente, ya que en estos momentos esta accediendo a través de un sitio web.\n\n### Seleccionar elementos gráficos\n\nPara seleccionar un elemento del mapa, como una carretera o un punto de interés, simplemente haz clic sobre él. Esto resaltará el elemento seleccionado, abriendo un panel con sus características, y mostrará un menú de cosas que puedes hacer con ese elemento.\n\nSe pueden seleccionar múltiples elementos de una vez manteniendo pulsada la tecla 'Mayús' y haciendo clic y arrastrando el ratón sobre el mapa. Esto seleccionará todas los elementos que están dentro del recuadro que se dibuja, lo que le permite realizar acciones con todos ellos al mismo tiempo.\n\n### Guardar ediciones\n\nCuando haga cambios -como editar carreteras, edificios o lugares- estos se almacenan localmente en tu ordenador hasta que decidas guardarlos en el servidor. No se preocupe si cometes un error - puede deshacer los cambios haciendo clic en el botón 'Deshacer', y rehacerlos de nuevo haciendo clic en el botón 'Rehacer'.\n\nHaga clic en 'Guardar' para finalizar un grupo de ediciones (por ejemplo, si ha completado una zona de la ciudad y quisiera empezar en una nueva área). Antes de subir los cambios al servidor tendrás oportunidad de revisar lo que has hecho, y el editor proporciona avisos y sugerencias útiles si algo parece que no es correcto en los cambios.\n\nSi ve que todo es correcto escriba un breve comentario explicando el cambio que ha hecho y haga clic en 'Guardar' de nuevo para registrar los cambios en [OpenStreetMap.org](http:\\/\\/www.openstreetmap.org\\/), donde serán visibles para todos los demás usuarios y estarán disponible para que otros colaboradores del proyecto puedan seguir construyendo y mejorando el mapa.\n\nSi aún no ha terminado sus ediciones en una sesión, puede dejar la ventana del editor abierta y volver más tarde (en el mismo navegador y ordenador), y el editor le permitirá retomar tu trabajo.\n", + "editing_saving": "# Editar & Guardar\n\nEste editor está diseñado para trabajar en línea principalmente, ya que en estos momentos esta accediendo a través de un sitio web.\n\n### Seleccionar características\n\nPara seleccionar una característica del mapa, como una carretera o un punto de interés, simplemente haz clic sobre él. Esto resaltará el elemento seleccionado, abriendo un panel con sus características, y mostrará un menú de cosas que puedes hacer con ese elemento.\n\nSe pueden seleccionar múltiples elementos de una vez manteniendo pulsada la tecla 'Mayús' y haciendo clic y arrastrando el ratón sobre el mapa. Esto seleccionará todas los elementos que están dentro del recuadro que se dibuja, lo que le permite realizar acciones con todos ellos al mismo tiempo.\n\n### Guardar ediciones\n\nCuando haga cambios -como editar carreteras, edificios o lugares- estos se almacenan localmente en tu ordenador hasta que decidas guardarlos en el servidor. No se preocupe si cometes un error - puede deshacer los cambios haciendo clic en el botón 'Deshacer', y rehacerlos de nuevo haciendo clic en el botón 'Rehacer'.\n\nHaga clic en 'Guardar' para finalizar un grupo de ediciones (por ejemplo, si ha completado una zona de la ciudad y quisiera empezar en una nueva área). Antes de subir los cambios al servidor tendrás oportunidad de revisar lo que has hecho, y el editor proporciona avisos y sugerencias útiles si algo parece que no es correcto en los cambios.\n\nSi ve que todo es correcto escriba un breve comentario explicando el cambio que ha hecho y haga clic en 'Guardar' de nuevo para registrar los cambios en [OpenStreetMap.org](http:\\/\\/www.openstreetmap.org\\/), donde serán visibles para todos los demás usuarios y estarán disponible para que otros colaboradores del proyecto puedan seguir construyendo y mejorando el mapa.\n\nSi aún no ha terminado sus ediciones en una sesión, puede dejar la ventana del editor abierta y volver más tarde (en el mismo navegador y ordenador), y el editor le permitirá retomar tu trabajo.\n", "roads": "# Carreteras\n\nPuede crear, corregir y borrar carreteras con este editor. Las vías pueden ser de todas las clases: caminos, carreteras, senderos, ciclovías, etc. A cualquier línea dibujada en el mapa se le debe indicar el tipo de elemento lineal que es.\n\n### Seleccionar\n\nHaga clic sobre una vía para seleccionarla. Verá sobre ella como se visualiza su esquema, formada por nodos y segmentos, junto con un menú de herramientas que aparece sobre el mapa y una barra lateral que muestra más información sobre la vía.\n\n### Modificar\n\nA menudo verá viales que no están alineados correctamente con la imagen aérea de fondo o con la traza GPS. Puede ajustar esas vías para situarlas en el lugar exacto.\n\nPrimero haga clic sobre la vía que desea cambiar. Esto la resaltará y mostrará los nodos o puntos de control a lo largo de la vía que la forman. A continuación simplemente arrastre esos puntos a la posición correcta. Si desea añadir nuevos puntos de control para dibujar la carretera con mayor detalle haga doble clic sobre la parte de la vía donde quiere añadir el nuevo nodo y este será creado en la vía. \n\nSi la vía conecta con otra carretera o camino pero esta conexión no aparece correctamente en el mapa puede arrastrar uno de los puntos de la vía hasta la otra carretera y se unirá automáticamente a ella mediante un nodo común. Es muy importante tener las carreteras conectadas en el mapa, ya que es esencial para proporcionar instrucciones correctas para la conducción si queremos que la cartografía se útil, por ejemplo, para los navegadores GPS.\n\n### Eliminar\n\nSi un camino es totalmente incorrecto -ha observado que no aparece en las imágenes de satélite y de manera ideal lo ha confirmado en campo- puede eliminarlo, lo cual lo borrará del mapa. Sea precavido al eliminar elementos del mapa. Como cualquier otra edición que haga este cambio será visto por todo el mundo y las imágenes de satélite a menudo no están actualizadas, por lo que una carretera que no existe en ellas pero sí en el mapa simplemente puede aparecer porque es de reciente construcción y otro usuario la ha añadido. \n\n### Crear\n\n¿Ha encontrado un lugar donde debería existir una carretera pero no aparece? Haga clic con el ratón sobre el icono 'Línea' situado en la parte superior izquierda del editor o simplemente presione la tecla '2' de su teclado que es el acceso rápido para comenzar a dibujar una línea. \n\nHaga clic sobre el mapa en el inicio de la carretera para comenzar a dibujar. Si la vía se ramifica a partir de una carretera ya existente empiece haciendo clic sobre el lugar donde ambas conectan.\n\nHaga clic en puntos a lo largo de la vía para definir el trazado correcto de la carretera. La densidad de puntos dependerá de la complejidad del recorrido, por lo que es aconsejable dibujar desde un nivel de zoom apropiado. Si la vía que está dibujando atraviesa otra carretera conéctela con esta haciendo clic sobre el punto de intersección. Una vez haya terminado el dibujo haga doble clic con el ratón o presiones la tecla 'Return' o 'Intro' de su teclado para finalizar.\n", "gps": "# GPS\n\nLos datos provenientes de un GPS son la fuente de información más fiable para OpenStreetMap. Este editor soporta el uso de trazas GPS locales: archivos con la extensión \".gpx\" ubicados en su equipo. Usted puede capturar este tipo de trazas GPS mediante numerosas aplicaciones que existen para teléfonos inteligentes, así como con dispositivos GPS de uso personal.\n\nPara obtener información sobre cómo realizar un levantamiento de información mediante GPS lea [Tomando datos con un GPS] (http://learnosm.org/es/beginner/using-gps/) .\n\nPara utilizar una traza GPX que le ayude a cartografiar, arrastre y suelte el archivo GPX sobre el editor del mapa editor. Si se reconoce el tipo de archivo la traza aparecerá en el mapa en un color púrpura brillante. Haga clic en el menú \"Configuración del fondo\" del lado derecho para activar, desactivar o poder hacer zoom sobre esta nueva capa GPX.\n\nTenga en cuenta que el archivo GPX no está subido a OpenStreetMap. La mejor manera de utilizar esta traza es dibujar en el mapa usándola como guía para añadir nuevas características al mapa, así como [subirla a los servidores de OpenStreetMap] (http://www.openstreetmap.org/trace/create) para que otros usuarios puedan también utilizarla en sus ediciones.\n", "imagery": "# imágenes\n\nimágenes aéreas es un importante recurso para el trazado de mapas. Una combinación\nde vuelos aéreos, vistas de satélite, y compilaciones grátis están disponibles\nen el editor bajo el menú 'Ajustes de Fondo' a la derecha.\n\nPor defecto [Bing Maps](http://www.bing.com/maps/) capa satelital es\npresentado en el editor, pero mientras se mueve y hace zoom a nuevas áreas\ngeográficas, nuevas fuentes estarán disponibles. Algunos Países, como los Estados\nUnidos, Francia, y Dinamarca poseen imágenes de muy alta calidad disponible\npara algunas áreas.\n\nImágenes aveces están desplazadas de la data del mapa por un error en el\nproveedor de imágenes. Si observa muchos caminos desplazados del fondo,\nno los mueva inmediatamente para emparejarlos. En cambio puede ajustar\nlas imágenes para que ella se empareje con los datos existentes dando click\nen 'Corregir Alineación' en el botón de Ajustes de Fondo.\n", @@ -501,35 +521,35 @@ "close": "El editor de elementos se puede cerrar haciendo clic en el botón 'X' de la esquina superior derecha. **Cierre el editor de elementos**", "reselect": "A menudo los puntos ya existirán, pero tendrán errores o estarán incompletos. Podemos editar puntos ya presentes en el mapa. **Seleccione el punto que acaba de crear.**", "fixname": "**Cambie el nombre y cierre el editor de elementos.**", - "reselect_delete": "Todos los elementos en el mapa pueden ser eliminados. **Haga clic en el punto que creó.**", - "delete": "El menú que aparece alrededor del punto sugiere acciones que se pueden aplicar al elemento seleccionado, incluyendo la opción de eliminar. **Elimine el punto.**" + "reselect_delete": "Todos las características en el mapa pueden ser eliminadas. **Haga clic en el punto que creó.**", + "delete": "El menú alrededor del punto contiene operaciones que pueden ser aplicadas a esta, incluyendo eliminar. **Elimine el punto.**" }, "areas": { "title": "Áreas", - "add": "Las áreas se utilizan para mostrar los límites de características como lagos, edificios y zonas residenciales. Ellos también pueden ser utilizados para la cartografía más detallada de las muchas características que usted puede ser que normalmente mapa como puntos. ** Haga clic en el botón Área para agregar una nueva zona. **", + "add": "Las áreas son utilizadas para mostrar los límites de características como lagos, edificios y zonas residenciales. Estas también pueden ser utilizadas para mapear con más detalle las diversas características que pondría normalmente en el mapa como puntos. ** Haga clic en el botón «área» para añadir una nueva área.**", "corner": "Las áreas son dibujadas ubicando nodos que marcan los límites del área. **Sitúe el nodo inicial en una de las esquinas de la zona de juegos.**", "place": "Dibuje el área ubicando más nodos. Termine el área haciendo clic en el punto inicial. **Dibuje un área para la zona de juegos.**", "search": "**Busque por '{name}'.**", - "choose": "**Elija 'Parque infantil' de la lista.**", - "describe": "**Agregue un nombre y cierre el editor de elementos**" + "choose": "**Elija «zona de juegos» de la lista.**", + "describe": "**De un nombre y cierre el editor de características**" }, "lines": { "title": "Líneas", - "add": "Las líneas son utilizadas para representar elementos como caminos, líneas férreas y ríos. **Haga clic en el botón Línea para agregar una nueva línea.**", - "start": "**Inicie la línea haciendo clic al final de la vía.**", - "intersect": "Haga clic para añadir más puntos a la línea. Si es necesario, puede arrastrar el mapa mientras dibuja. Los caminos, y muchos otros tipos de líneas, son parte de una red más grande. Es importante que estas líneas estén conectadas apropiadamente para que las aplicaciones de enrutamiento, como los navegadores de automóvil, puedan funcionar correctamente. **Haga clic en la calle 'Flower Street' para crear una intersección conectando las dos líneas.** ", - "finish": "Las líneas pueden finalizarse haciendo clic nuevamente en el ultimo punto. **Termine de dibujar la vía.** ", - "road": "**Seleccione 'Carretera sin categoría conocida' de la lista**", - "residential": "Existen diferentes tipos de vías, la más común de las cuales es la de calle urbana. **Elija el tipo 'Calle urbana'**", - "describe": "**Asigne un nombre a la vía y cierre el editor de elementos.**", - "restart": "El vía debe intersectar con la calle Flower Street..", - "wrong_preset": "No ha seleccionado el tipo 'Calle urbana'. **Haga clic aquí para elegir de nuevo**" + "add": "Las líneas son utilizadas para representar características como vías, líneas férreas y ríos. **Haga clic en el botón «línea» para agregar una nueva línea.**", + "start": "**Comience la línea haciendo clic al final de la vía.**", + "intersect": "Haga clic para añadir más nodos a la línea. Puede arrastrar el mapa mientras dibuja si fuese necesario. Las vías, y muchos otros tipos de líneas, son parte de una red más grande. Es importante que estas líneas estén conectadas apropiadamente para que las aplicaciones de navegación funcionen correctamente. **Haga clic en «Flower Street» para crear una intersección conectando las dos líneas.**", + "finish": "Puede terminar las líneas haciendo clic nuevamente en el ultimo nodo. **Termine de dibujar la vía.**", + "road": "**Seleccione la «vía» de la lista**", + "residential": "Existen diferentes tipos de vías, la más común es «residencial». **Elija el tipo de vía «residencial»**", + "describe": "**De un nombre a la vía y cierre el editor de características.**", + "restart": "La vía tiene que intersectar con Flower Street.", + "wrong_preset": "No ha seleccionado el tipo de vía «residencial». **Haga clic aquí para elegir de nuevo**" }, "startediting": { "title": "Empezar a editar", - "help": "Para ver más documentación y este tutorial pulse aquí.", + "help": "Más documentación y este tutorial están disponibles aquí.", "save": "¡No olvide guardar sus cambios regularmente!", - "start": "¡Empezar a editar el mapa!" + "start": "¡Comience a mapear!" } }, "presets": { @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Acceso", - "placeholder": "Desconocido", - "types": { - "access": "General", - "foot": "A pie", - "motor_vehicle": "Automóviles", - "bicycle": "Bicicletas", - "horse": "Caballos" - }, "options": { - "yes": { - "title": "Permitido", - "description": "Acceso permitido por ley; un derecho de paso" + "designated": { + "description": "Acceso permitido según señales u ordenanzas locales específicas", + "title": "Designado" + }, + "destination": { + "description": "Acceso permitido sólo para llegar a un destino concreto", + "title": "Destino" }, "no": { - "title": "Prohibido", - "description": "Acceso no permitido al público en general" + "description": "Acceso no permitido al público en general", + "title": "Prohibido" }, "permissive": { - "title": "Permisivo", - "description": "Acceso permitido hasta el momento en que el propietario revoque el permiso" + "description": "Acceso permitido hasta el momento en que el propietario revoque el permiso", + "title": "Permisivo" }, "private": { - "title": "Privado", - "description": "Acceso permitido sólo con permiso del propietario de manera individual" + "description": "Acceso permitido sólo con permiso del propietario de manera individual", + "title": "Privado" }, - "designated": { - "title": "Designado", - "description": "Acceso permitido según señales u ordenanzas locales específicas" - }, - "destination": { - "title": "Destino", - "description": "Acceso permitido sólo para llegar a un destino concreto" + "yes": { + "description": "Acceso permitido por ley; un derecho de paso", + "title": "Permitido" } + }, + "placeholder": "Desconocido", + "types": { + "access": "General", + "bicycle": "Bicicletas", + "foot": "A pie", + "horse": "Caballos", + "motor_vehicle": "Automóviles" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Dirección", "placeholders": { + "city": "Ciudad", + "country": "País", + "district": "Distrito", + "hamlet": "Aldea", "housename": "Nombre de casa", "housenumber": "123", - "street": "Calle", - "city": "Ciudad", - "postcode": "Código postal", "place": "Lugar", - "hamlet": "Aldea", - "suburb": "Suburbio", - "subdistrict": "Subdistrito", - "district": "Distrito", + "postcode": "Código postal", "province": "Provincia", "state": "Estado", - "country": "País" + "street": "Calle", + "subdistrict": "Subdistrito", + "suburb": "Suburbio" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Acceso", "options": { + "both": "Ambas", "entry": "Entrada", - "exit": "Salida", - "both": "Ambas" + "exit": "Salida" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Acceso (verano)", "options": { + "both": "Ambas", "entry": "Entrada", - "exit": "Salida", - "both": "Ambas" + "exit": "Salida" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Dirección", "options": { - "N": "Norte", "E": "Este", - "S": "Sur", - "W": "Oeste", - "NE": "Noreste", - "SE": "Sureste", - "SW": "Suroeste", - "NW": "Noroeste", - "NNE": "Norte-Noreste", "ENE": "Este-Noreste", "ESE": "Este-Sureste", + "N": "Norte", + "NE": "Noreste", + "NNE": "Norte-Noreste", + "NNW": "Norte-Noroeste", + "NW": "Noroeste", + "S": "Sur", + "SE": "Sureste", "SSE": "Sur-Sureste", "SSW": "Sur-Suroeste", - "WSW": "Oeste-Sureste", + "SW": "Suroeste", + "W": "Oeste", "WNW": "Oeste-Noroeste", - "NNW": "Norte-Noroeste" + "WSW": "Oeste-Sureste" } }, "clock_direction": { "label": "Dirección", "options": { - "clockwise": "En sentido horario", - "anticlockwise": "En sentido antihorario" + "anticlockwise": "En sentido antihorario", + "clockwise": "En sentido horario" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Tipo" }, + "content": { + "label": "Contenido" + }, "country": { "label": "País" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Electrificación", - "placeholder": "Línea de contacto, Riel electrificada...", "options": { "contact_line": "Línea de contacto", + "no": "No", "rail": "Riel electrificada", - "yes": "Sí (sin especificar)", - "no": "No" - } + "yes": "Sí (sin especificar)" + }, + "placeholder": "Línea de contacto, Riel electrificada..." }, "elevation": { "label": "Altitud" @@ -811,9 +834,9 @@ "label": "Tipo", "options": { "pillar": "Pilar/Sobre la tierra", + "pond": "Estanque", "underground": "Subterráneo", - "wall": "Pared", - "pond": "Estanque" + "wall": "Pared" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Género", - "placeholder": "Desconocido", "options": { - "male": "Masculino", "female": "Femenino", + "male": "Masculino", "unisex": "Unisex" - } + }, + "placeholder": "Desconocido" }, "generator/method": { "label": "Método" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Pendiente", "options": { - "up": "Arriba", - "down": "Abajo" + "down": "Abajo", + "up": "Arriba" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Acceso a Internet", "options": { - "yes": "Sí", "no": "No", - "wlan": "Wi-Fi", + "terminal": "Terminal", "wired": "Por cable", - "terminal": "Terminal" + "wlan": "Wi-Fi", + "yes": "Sí" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Ciclo hoja", "options": { - "evergreen": "Perenne", "deciduous": "Caduco", - "semi_evergreen": "Semi-perenne", + "evergreen": "Perenne", + "mixed": "Mixta", "semi_deciduous": "Semi-caduco", - "mixed": "Mixta" + "semi_evergreen": "Semi-perenne" } }, "leaf_type": { "label": "Tipo hoja", "options": { "broadleaved": "Hoja ancha", - "needleleaved": "Hoja angosta", + "leafless": "Sin hojas", "mixed": "Mixta", - "leafless": "Sin hojas" + "needleleaved": "Hoja angosta" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Dificultad de bicicleta de montaña", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: grava sólida/tierra compactada, sin obstáculos, curvas amplias", "1": "1: Poca superficie suleta, pequeños obstáculos, curvas amplias", @@ -983,22 +1005,22 @@ "4": "4: Superficie suelta o rocosa, giros en U peligrosos", "5": "5: Dificultad máxima, campo rocoso, derrumbes", "6": "6: No manejable, excepto por los mejores ciclistas de montaña" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Dificultad de pista IMBA", - "placeholder": "Fácil, medio, difícil...", "options": { "0": "Más fácil (círculo blanco)", "1": "Fácil (círculo verde)", "2": "Media (círculo azul)", "3": "Difícil (diamante negro)", "4": "Extremadamente difícil (doble diamante negro)" - } + }, + "placeholder": "Fácil, medio, difícil..." }, "mtb/scale/uphill": { "label": "Dificultad de ciclismo de montaña cuesta arriba", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Promedio de pendiente <10%, grava/tierra apisonada, sin obstáculos", "1": "1: Promedio de pendiente <15%, grava/tierra compactada, pocos objetos pequeños", @@ -1006,7 +1028,8 @@ "3": "3: Promedio de pendiente <25%, superficie variable, rocas del tamaño del puño/ramas", "4": "4: Promedio de pendiente <30%, mal estado, rocas grandes/ramas", "5": "5: Muy empinado, la bicicleta generalmente necesita ser empujada o llevada" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nombre", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Sentido único", "options": { + "no": "No", "undefined": "Se asume que es No", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "oneway_yes": { "label": "Sentido único", "options": { + "no": "No", "undefined": "Se asume que es Sí", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Tipo", "options": { - "surface": "Superficie", - "multi-storey": "Multinivel", - "underground": "Subterráneo", - "sheds": "Galpones", "carports": "Cocheras", "garage_boxes": "Garaje en cubículos", - "lane": "Carril al borde del camino" + "lane": "Carril al borde del camino", + "multi-storey": "Multinivel", + "sheds": "Galpones", + "surface": "Superficie", + "underground": "Subterráneo" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Dificultad", - "placeholder": "Fácil, Intermedio, Avanzado...", "options": { - "novice": "Novato (instrucción)", - "easy": "Fácil (círculo verde)", - "intermediate": "Intermedio (cuadrado azul)", "advanced": "Avanzado (diamante negro)", + "easy": "Fácil (círculo verde)", "expert": "Experto (doble diamante negro)", + "extreme": "Extremo (necesario equipo de escalada)", "freeride": "Paseo libre (fuera de pista)", - "extreme": "Extremo (necesario equipo de escalada)" - } + "intermediate": "Intermedio (cuadrado azul)", + "novice": "Novato (instrucción)" + }, + "placeholder": "Fácil, Intermedio, Avanzado..." }, "piste/grooming": { "label": "Adiestramiento", "options": { - "classic": "Clásico", - "mogul": "Mogul", "backcountry": "Campo abierto", + "classic": "Clásico", "classic+skating": "Clásico y patinaje", + "mogul": "Mogul", "scooter": "Ciclomotor/Motonieve", "skating": "Patinaje" } @@ -1097,14 +1120,14 @@ "label": "Tipo", "options": { "downhill": "Cuesta abajo", + "hike": "Caminata", + "ice_skate": "Patín sobre hielo", "nordic": "Nórdico", + "playground": "Parque infantil", "skitour": "Esquí turístico", "sled": "Trineo", - "hike": "Caminata", "sleigh": "Trineo", - "ice_skate": "Patín sobre hielo", - "snow_park": "Parque de nieve", - "playground": "Jardín de juegos" + "snow_park": "Parque de nieve" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Tipo" }, + "power_supply": { + "label": "Fuente de energía" + }, "railway": { "label": "Tipo" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Dificultad de senderismo", - "placeholder": "Caminata de montaña, caminata alpina...", "options": { - "hiking": "T1: Senderismo", - "mountain_hiking": "T2: Senderismo de montaña", - "demanding_mountain_hiking": "T3: Senderismo de montaña exigente", "alpine_hiking": "T4: Senderismo alpino", "demanding_alpine_hiking": "T5: Senderismo alpino exigente", - "difficult_alpine_hiking": "T6: Senderismo alpino difícil" - } + "demanding_mountain_hiking": "T3: Senderismo de montaña exigente", + "difficult_alpine_hiking": "T6: Senderismo alpino difícil", + "hiking": "T1: Senderismo", + "mountain_hiking": "T2: Senderismo de montaña" + }, + "placeholder": "Caminata de montaña, caminata alpina..." + }, + "sanitary_dump_station": { + "label": "Desecho del inodoro" }, "seasonal": { "label": "Estacional" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Trochacadena", "options": { + "no": "No", "undefined": "Asume que es No", - "yes": "Si", - "no": "No" + "yes": "Si" } }, "service/bicycle/pump": { "label": "Bomba de aire", "options": { + "no": "No", "undefined": "Se asume que es Si", - "yes": "Sí", - "no": "No" + "yes": "Sí" } }, "service_rail": { "label": "Tipo de servicio", "options": { - "spur": "Ramal corto", - "yard": "Patio de maniobra", + "crossover": "Ramal de cruce", "siding": "Ramal paralelo", - "crossover": "Ramal de cruce" + "spur": "Ramal corto", + "yard": "Patio de maniobra" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Fumar", - "placeholder": "No, Separado, Sí...", "options": { - "no": "No fumar en todas partes", - "separated": "En zonas de fumadores, no físicamente aislado", + "dedicated": "Dedicado a los fumadores (ej: el club de los fumadores)", "isolated": "En zonas de fumadores, físicamente aislados", + "no": "No fumar en todas partes", "outside": "Permitido fuera", - "yes": "Permitido en todas partes", - "dedicated": "Dedicado a los fumadores (ej: el club de los fumadores)" - } + "separated": "En zonas de fumadores, no físicamente aislado", + "yes": "Permitido en todas partes" + }, + "placeholder": "No, Separado, Sí..." }, "smoothness": { "label": "Rugosidad", - "placeholder": "Ruedas delgadas, todo terreno...", "options": { + "bad": "Ruedas robustas: bicicleta de montaña, automóvil, carreta", "excellent": "Ruedas delgadas: patines, monotopatín", "good": "Ruedas finas: bicicletas de competición", + "horrible": "Todo terreno: vehículo todo terreno de trabajo pesado", + "impassable": "Impasable / Ningún vehículo con ruedas", "intermediate": "Ruedas: bicicleta urbana, silla de ruedas, ciclomotor", - "bad": "Ruedas robustas: bicicleta de montaña, automóvil, carreta", "very_bad": "Gran despeje: vehículo todo terreno de trabajo livianos", - "horrible": "Todo terreno: vehículo todo terreno de trabajo pesado", - "very_horrible": "Todo terreno especializado: tractor, vehículo todo terreno", - "impassable": "Impasable / Ningún vehículo con ruedas" - } + "very_horrible": "Todo terreno especializado: tractor, vehículo todo terreno" + }, + "placeholder": "Ruedas delgadas, todo terreno..." }, "social_facility_for": { "label": "Personas atendidas", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Estructura", - "placeholder": "Desconocido", "options": { "bridge": "Puente", - "tunnel": "Túnel", - "embankment": "Dique", "cutting": "Desmonte", - "ford": "Vado" - } + "embankment": "Dique", + "ford": "Vado", + "tunnel": "Túnel" + }, + "placeholder": "Desconocido" }, "studio_type": { "label": "Tipo" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Para llevar", - "placeholder": "Si, no, sólo para llevar...", "options": { - "yes": "Si", "no": "No", - "only": "Sólo para llevar" - } + "only": "Sólo para llevar", + "yes": "Si" + }, + "placeholder": "Si, no, sólo para llevar..." }, "toilets/disposal": { - "label": "Disponible", + "label": "Desecho", "options": { - "flush": "Descarga", - "pitlatrine": "Pozo/Letrina", + "bucket": "Bucket", "chemical": "Chemical", - "bucket": "Bucket" + "flush": "Descarga", + "pitlatrine": "Pozo/Letrina" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Tipo de pista", - "placeholder": "Sólido, mayormente sólido, suave...", "options": { "grade1": "Pavimentada o de superficie compacta y dura", "grade2": "Mayormente sólido: grava/roca con algún material suave mezclado", "grade3": "De áridos con vegetación entre rodaduras", "grade4": "De tierra con vegetación entre rodaduras", "grade5": "De tierra o hierba con rodaduras apenas visibles" - } + }, + "placeholder": "Sólido, mayormente sólido, suave..." }, "trail_visibility": { "label": "Visibilidad de la senda", - "placeholder": "Excelente, bueno, malo...", "options": { + "bad": "Malo: no hay marcadores, sendero a veces invisible / sin caminos", "excellent": "Excelente: sendero sin ambigüedades o marcadores en todas partes", "good": "Bueno: marcadores visibles, a veces requiere buscar", - "intermediate": "Intermedio: pocos marcadores, sendero mayormente visible", - "bad": "Malo: no hay marcadores, sendero a veces invisible / sin caminos", "horrible": "Horrible: a menudo sin camino, requiere algunas habilidades de orientación", + "intermediate": "Intermedio: pocos marcadores, sendero mayormente visible", "no": "No: sin caminos, requiere excelentes habilidades de orientación" - } + }, + "placeholder": "Excelente, bueno, malo..." }, "trees": { "label": "Árboles" @@ -1334,6 +1363,9 @@ "water": { "label": "Tipo" }, + "water_point": { + "label": "Punto de agua" + }, "waterway": { "label": "Tipo" }, @@ -1475,6 +1507,10 @@ "name": "Estación de reparación de bicicletas", "terms": "bicicletería pública, reparación de bicicletas pública, bicicleta" }, + "amenity/biergarten": { + "name": "Bar al aire libre", + "terms": "cerveza, bar, terraza, jardín, al aire libre" + }, "amenity/boat_rental": { "name": "Alquiler de barcos", "terms": "alquiler de botes" @@ -1671,6 +1707,10 @@ "name": "Restaurante", "terms": "restaurante, restorán, comedor, ambigú, bufé, mesón, taberna, comida, bebida, plaza de comida" }, + "amenity/sanitary_dump_station": { + "name": "Desecho de inodoro RV", + "terms": "desecho, inodoro, taza, letrina, servicio, baño, aseo, lavabo" + }, "amenity/school": { "name": "Terreno Escuela", "terms": "recinto escolar, terreno escolar, escuela, colegio, instituto" @@ -1717,7 +1757,7 @@ }, "amenity/toilets": { "name": "Baños", - "terms": "baños, baño, aseo, letrina, lavabo, servicio, tocador, ducha" + "terms": "baño, inodoro, taza, letrina, servicio, baño, aseo, lavabo, tocador" }, "amenity/townhall": { "name": "Ayuntamiento", @@ -1956,8 +1996,8 @@ "terms": "almacén, depósito, bodega, lonja, nave" }, "craft": { - "name": "Artesanía", - "terms": "arte, oficio, trabajo" + "name": "Oficio", + "terms": "oficio, trabajo, artesanal" }, "craft/basket_maker": { "name": "Fabricante de cestas", @@ -1973,55 +2013,55 @@ }, "craft/boatbuilder": { "name": "Constructor de barco", - "terms": "barco, bote, lancha" + "terms": "barco, bote, lancha, canoa" }, "craft/bookbinder": { "name": "Encuadernador", - "terms": "encuadernador" + "terms": "encuadernador, empastador" }, "craft/brewery": { "name": "Cervecería", - "terms": "cervecería, fábrica de cerveza" + "terms": "cervecería, fábrica de cerveza, cerveza" }, "craft/carpenter": { "name": "Carpintero", - "terms": "carpintería, carpintero, ebanistería, ebanista, madera, madedero" + "terms": "carpintería, carpintero, ebanistería, ebanista, madera, maderero" }, "craft/carpet_layer": { "name": "Tapizador de alfombras", - "terms": "alfombra, moqueta, tapiz, tapicero" + "terms": "alfombra, tapete, moqueta, tapiz, tapicero" }, "craft/caterer": { - "name": "Proveedor", - "terms": "abastecedor, proveedor, catering, cáterin" + "name": "Catering", + "terms": "abastecedor, proveedor, catering, cáterin, comida" }, "craft/clockmaker": { "name": "Relojero", "terms": "relojero, reloj, relojería" }, "craft/confectionery": { - "name": "Confitería", - "terms": "confitería, dulces, repostería, golosina, bombones, tienda de dulces, pastelería, dulcería" + "name": "Repostero", + "terms": "confitería, dulces, repostería, repostero, golosina, bombones, pastelería, dulcería" }, "craft/dressmaker": { "name": "Modista", - "terms": "modista, costurera" + "terms": "modista, costurera, sastre, diseñador, moda" }, "craft/electrician": { "name": "Electricista", - "terms": "electricista, iluminista, trabajo de electricidad" + "terms": "electricista, iluminista, electricidad" }, "craft/gardener": { "name": "Jardinero", - "terms": "Jardinero, Jardinería" + "terms": "jardinero, jardinería, jardín" }, "craft/glaziery": { "name": "Vidriería", - "terms": "Vidriería" + "terms": "vidriería, cristalero" }, "craft/handicraft": { - "name": "Artesanía", - "terms": "artesanía, destreza manual, trabajos manuales" + "name": "Artesano", + "terms": "artesano, artesanía, destreza manual, trabajos manuales" }, "craft/hvac": { "name": "Aire acondicionado", @@ -2577,7 +2617,7 @@ }, "leisure/playground": { "name": "Parque infantil", - "terms": "parque infantil, columpios, zona de juegos, juegos, niños" + "terms": "parque infantil, jardín infantil, área de juegos, zona de juegos, juegos, infantil, niños, niñas" }, "leisure/running_track": { "name": "Pista de atletismo", @@ -2631,10 +2671,18 @@ "name": "Faro", "terms": "faro, fanal" }, + "man_made/mast": { + "name": "Mástil de radio", + "terms": "mástil, torre, estructura, radio, telefonía, telecomunicación" + }, "man_made/observation": { "name": "Torre de Observación", "terms": "Torre de observación" }, + "man_made/petroleum_well": { + "name": "Pozo de petróleo", + "terms": "pozo, petróleo, aceite" + }, "man_made/pier": { "name": "Embarcadero", "terms": "Pilote, Embarcadero" @@ -2643,6 +2691,14 @@ "name": "Tubería", "terms": "tubería, cañería, caño, conducto, red" }, + "man_made/silo": { + "name": "Silo", + "terms": "silo" + }, + "man_made/storage_tank": { + "name": "Tanque de Almacenamiento", + "terms": "tanque" + }, "man_made/survey_point": { "name": "Punto geodésico", "terms": "Vértice geodésico" @@ -2863,6 +2919,10 @@ "name": "Ciudad", "terms": "urbe, capital, metrópoli, ciudad, núcleo urbano, localidad, villa" }, + "place/farm": { + "name": "Granja", + "terms": "granja, rancho, hacienda, finca, estancia, chacra" + }, "place/hamlet": { "name": "Aldea", "terms": "aldea, caserío, poblado, pueblo, aldehuela, aldeorrio, villorrio, localidad, barrio, vecindario" @@ -3651,6 +3711,10 @@ "name": "Desagüe", "terms": "Desagüe, Sumidero" }, + "waterway/fuel": { + "name": "Estación de combustible marino", + "terms": "estación, combustible, carburante, gasolina, mar, río, fluvial, marino" + }, "waterway/river": { "name": "Río", "terms": "río, torrente, arroyo, torrentera, riachuelo, riacho, afluente, regato" @@ -3659,6 +3723,10 @@ "name": "Ribera de río", "terms": "borde, orilla, ribazo, riba, ribera" }, + "waterway/sanitary_dump_station": { + "name": "Desecho de inodoro marino", + "terms": "desecho, inodoro, taza, letrina, servicio, baño, aseo, lavabo, mar, río, fluvial, marino" + }, "waterway/stream": { "name": "Arroyo", "terms": "torrente, riachuelo, arroyuelo, regato, reguero, torrentera, rivera, corriente, afluente, brazo, toma, río, arroyo" diff --git a/vendor/assets/iD/iD/locales/et.json b/vendor/assets/iD/iD/locales/et.json index 2b06fc7e8..5047c88ce 100644 --- a/vendor/assets/iD/iD/locales/et.json +++ b/vendor/assets/iD/iD/locales/et.json @@ -212,7 +212,6 @@ "commit": { "title": "Salvesta muudatused", "description_placeholder": "Muudatuste lühikirjeldus", - "message_label": "Salvestuse kommentaar", "upload_explanation": "Su salvestatavad muudatused on nähtaval kõikidel kaartidel mis kasutavad OpenStreetMap-i andmeid.", "upload_explanation_with_user": "Su kasutajana {user} salvestatavad muudatused on nähtaval kõikidel kaartidel, mis kasutavad OpenStreetMap-i andmeid.", "save": "Salvesta", @@ -395,37 +394,37 @@ "fields": { "access": { "label": "Juurdepääs", - "placeholder": "Teadmata", - "types": { - "access": "Üldine", - "foot": "Jalg", - "motor_vehicle": "Mootorsõidukid", - "bicycle": "Jalgrattad", - "horse": "Hobused" - }, "options": { - "yes": { - "title": "Lubatud", - "description": "Juurdepääs seaduse alusel; igameheõigus" + "designated": { + "title": "Määratud" + }, + "destination": { + "title": "Sihtkoht" }, "no": { - "title": "Keelatud", - "description": "Avalik juurdepääs puudub" + "description": "Avalik juurdepääs puudub", + "title": "Keelatud" }, "permissive": { - "title": "Soovituslik", - "description": "Juurdepääs on lubatud ajani, mil omanik tühistab loa" + "description": "Juurdepääs on lubatud ajani, mil omanik tühistab loa", + "title": "Soovituslik" }, "private": { - "title": "Era", - "description": "Juurdepääs lubatud ainult omaniku eriloal" - }, - "designated": { - "title": "Määratud" + "description": "Juurdepääs lubatud ainult omaniku eriloal", + "title": "Era" }, - "destination": { - "title": "Sihtkoht" + "yes": { + "description": "Juurdepääs seaduse alusel; igameheõigus", + "title": "Lubatud" } + }, + "placeholder": "Teadmata", + "types": { + "access": "Üldine", + "bicycle": "Jalgrattad", + "foot": "Jalg", + "horse": "Hobused", + "motor_vehicle": "Mootorsõidukid" } }, "access_simple": { @@ -438,13 +437,13 @@ "address": { "label": "Aadress", "placeholders": { + "city": "Linn", + "country": "Riik", "housename": "Maja nimetus", "housenumber": "123", - "street": "Tänav", - "city": "Linn", - "postcode": "Sihtnumber", "place": "Koht", - "country": "Riik" + "postcode": "Sihtnumber", + "street": "Tänav" } }, "aerialway/access": { @@ -479,8 +478,8 @@ "clock_direction": { "label": "Suund", "options": { - "clockwise": "Päripäeva", - "anticlockwise": "Vastupäeva" + "anticlockwise": "Vastupäeva", + "clockwise": "Päripäeva" } }, "collection_times": { @@ -516,9 +515,9 @@ }, "internet_access": { "options": { - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Juhtmega", - "terminal": "Terminal" + "wlan": "Wifi" } }, "lanes": { @@ -578,8 +577,8 @@ "structure": { "options": { "bridge": "Sild", - "tunnel": "Tunnel", - "embankment": "Tamm" + "embankment": "Tamm", + "tunnel": "Tunnel" } }, "surface": { diff --git a/vendor/assets/iD/iD/locales/fa.json b/vendor/assets/iD/iD/locales/fa.json index 386c9e2fa..3a3c2bee0 100644 --- a/vendor/assets/iD/iD/locales/fa.json +++ b/vendor/assets/iD/iD/locales/fa.json @@ -213,7 +213,6 @@ "commit": { "title": "ذخیره تغییرات", "description_placeholder": "شرح مختصری از کمک های شما", - "message_label": "پیام تعهد", "upload_explanation": "تغییراتی که بارگذاری میکنید در همه ی نقشه هایی که از داده های OpenStreetMap استفاده میکنند پدیدار میشوند.", "upload_explanation_with_user": "تفییراتی که شما به عنوان {user} بارگذاری میکنید در همه ی نقشه هایی که از داده های OpenStreetMap استفاده میکنند پدیدار میشوند.", "save": "ذخیره", @@ -451,39 +450,39 @@ "fields": { "access": { "label": "دسترسي", - "placeholder": "ناشناخته", - "types": { - "access": "عمومی", - "foot": "پیاده", - "motor_vehicle": "وسایل نقلیه موتوری", - "bicycle": "دوچرخه ها", - "horse": "اسب ها" - }, "options": { - "yes": { - "title": "مجاز", - "description": "دسترسی مجاز طبق قانون: حق از راه" + "designated": { + "description": "دسترسی با توجه به علائم و قوانین محلی مجاز است", + "title": "تعیین شده" + }, + "destination": { + "description": "دسترسی فقط برای رسیدن به مقصدی مجاز است", + "title": "مقصد" }, "no": { - "title": "ممنوع", - "description": "دسترسی برای عموم مردم مجاز نیست" + "description": "دسترسی برای عموم مردم مجاز نیست", + "title": "ممنوع" }, "permissive": { - "title": "مجاز", - "description": "دسترسی تا وقتی صاحبش مجوز را لغو نکند مجاز است" + "description": "دسترسی تا وقتی صاحبش مجوز را لغو نکند مجاز است", + "title": "مجاز" }, "private": { - "title": "خصوصی", - "description": "دسترسی فقط با اجازه از صاحب بصورت انفرادی مجاز است" - }, - "designated": { - "title": "تعیین شده", - "description": "دسترسی با توجه به علائم و قوانین محلی مجاز است" + "description": "دسترسی فقط با اجازه از صاحب بصورت انفرادی مجاز است", + "title": "خصوصی" }, - "destination": { - "title": "مقصد", - "description": "دسترسی فقط برای رسیدن به مقصدی مجاز است" + "yes": { + "description": "دسترسی مجاز طبق قانون: حق از راه", + "title": "مجاز" } + }, + "placeholder": "ناشناخته", + "types": { + "access": "عمومی", + "bicycle": "دوچرخه ها", + "foot": "پیاده", + "horse": "اسب ها", + "motor_vehicle": "وسایل نقلیه موتوری" } }, "access_simple": { @@ -492,8 +491,8 @@ "address": { "label": "ادرس", "placeholders": { - "street": "خيابان", - "city": "شهر" + "city": "شهر", + "street": "خيابان" } }, "admin_level": { @@ -569,8 +568,8 @@ "clock_direction": { "label": "جهت", "options": { - "clockwise": "ساعتگرد", - "anticlockwise": "پاد ساعتگرد" + "anticlockwise": "پاد ساعتگرد", + "clockwise": "ساعتگرد" } }, "collection_times": { @@ -675,9 +674,9 @@ "internet_access": { "label": "دسترسی اینترنت", "options": { - "wlan": "واي فاي", + "terminal": "پايانه", "wired": "سيمي", - "terminal": "پايانه" + "wlan": "واي فاي" } }, "landuse": { @@ -820,13 +819,13 @@ }, "structure": { "label": "ساختاری", - "placeholder": "ناشناخته", "options": { "bridge": "پل", - "tunnel": "تونل", + "cutting": "برش", "embankment": "خاکریز", - "cutting": "برش" - } + "tunnel": "تونل" + }, + "placeholder": "ناشناخته" }, "studio_type": { "label": "نوع" diff --git a/vendor/assets/iD/iD/locales/fi.json b/vendor/assets/iD/iD/locales/fi.json index c426d14fb..910b58d56 100644 --- a/vendor/assets/iD/iD/locales/fi.json +++ b/vendor/assets/iD/iD/locales/fi.json @@ -239,7 +239,7 @@ "commit": { "title": "Tallenna muutokset", "description_placeholder": "Kuvaile lyhyesti karttaan tehtyjä muutoksia", - "message_label": "Yhteenveto", + "message_label": "Muutossarjan kommentti", "upload_explanation": "Palvelimelle lähetettävät muutokset tulevat pian näkyviin kaikkiin OpenStreetMap-kartta-aineistoa käyttäviin palveluihin.", "upload_explanation_with_user": "Palvelimelle lähetetään muutokset käyttäjätunnisteella {user}. Muutokset tulevat pian näkyviin kaikkiin OpenStreetMap-kartta-aineistoa käyttäviin palveluihin.", "save": "Tallenna", @@ -254,6 +254,15 @@ "list": "Muokkaajat {users}", "truncated_list": "Muokkaajat {users} ja {count} muuta" }, + "infobox": { + "selected": "{n} valittu", + "geometry": "Geometria", + "closed": "suljettu", + "length": "Pituus", + "location": "Sijainti", + "metric": "Metrinen järjestelmä", + "imperial": "Brittiläinen järjestelmä" + }, "geocoder": { "search": "Etsi maailmanlaajuisesti...", "no_results_visible": "Ei tuloksia näkyvällä kartalla", @@ -298,7 +307,7 @@ "title": "Tausta", "description": "Taustan asetukset", "percent_brightness": "{opacity}% kirkkaus", - "none": "Ei kohteita", + "none": "Ei taustaa", "custom": "Mukautettu", "custom_button": "Muokkaa omaa taustaa", "custom_prompt": "Kirjoita tiilen verkko-osoitemallinne. Kelvollisia merkkejä ovat {z}, {x}, {y} Z/X/Y-skeemalle ja {u} quadtile-skeemalle.", @@ -446,7 +455,7 @@ "validations": { "untagged_point": "Piste ilman tageja", "untagged_line": "Viiva ilman tageja", - "untagged_area": "Alue, jolla ei ole tageja", + "untagged_area": "Alue ilman tageja", "many_deletions": "Haluatko varmasti poistaa {n} kohdetta? Kohteet poistetaan kaikkien näkyviltä OpenStreetMap-palvelussa.", "tag_suggests_area": "Tagin {tag} mukaan viiva on alue, vaikka se ei sitä ole.", "untagged_point_tooltip": "Valitse ominaisuustyyppi, joka kuvaa tämän pisteen tarkoitusta.", @@ -461,7 +470,7 @@ "cannot_zoom": "Nykyisessä tilassa ei voi loitontaa enempää.", "gpx": { "local_layer": "Oma GPX-tiedosto", - "drag_drop": "Vedä ja pudota GPX-tiedosto tähän tai selaa tiedostoja napsauttamalla oikean yläreunan painiketta", + "drag_drop": "Vedä ja pudota GPX-tiedosto tähän tai selaa tiedostoja napsauttamalla oikealla olevaa painiketta", "zoom": "Lähennä GPX-reittiin", "browse": "Selaa GPX-tiedostoja" }, @@ -472,13 +481,13 @@ }, "help": { "title": "Ohje", - "help": "# Ohje\n\nTämä on ohjelma [OpenStreetMap](http://www.openstreetmap.org/)-kartan\nvapaasti muokattavan kartan muokkaamiseen. Voit käyttää ja muokata sillä\nalueellasi vapaasti ja osallistua ihmisten tekemän maailmankartan luomiseen.\n\nKarttaan tehtävät muutokset ovat näkyvillä kaikille OpenStreetMapin käyttäjille.\nKartan muokkaaminen edellyttää ilmaista [OpenStreetMap-käyttäjätiliä](https://www.openstreetmap.org/login).\n\n[iD-muokkausohjelma](http://ideditor.com/) on yhteistyöprojekti, jonka\n[lähdekoodi on saatavilla GitHubista](https://github.com/openstreetmap/iD).\n\n", + "help": "# Ohje\n\nTämä on ohjelma vapaasti muokattavan \n[OpenStreetMap](http://www.openstreetmap.org/)-kartan\nmuokkaamiseen. Voit käyttää sitä vapaasti alueesi muokkaamiseen ja osallistua ihmisten tekemän \nmaailmankartan luomiseen.\n\nKarttaan tehtävät muutokset ovat näkyvillä kaikille OpenStreetMapin käyttäjille.\nKartan muokkaaminen edellyttää ilmaista [OpenStreetMap-käyttäjätiliä](https://www.openstreetmap.org/login).\n\n[iD-muokkausohjelma](http://ideditor.com/) on yhteistyöprojekti, jonka\n[lähdekoodi on saatavilla GitHubista](https://github.com/openstreetmap/iD).\n\n\n", "editing_saving": "# Muokkaaminen ja tallentaminen\n\nTätä muokkausohjelmaa tulisi ensisijaisesti käyttää toimivalla\n Internet-yhteydellä, kuten nyt verkkoselaimella.\n\n### Karttakohteiden valitseminen\n\nValitse karttakohde, kuten tie tai ravintola napsauttamalla\nsitä kerran kartalla. Tällöin karttakohde korostetaan ja vasemmalle\navautuu kohteen muokkausnäkymä.\n\nValitse useita karttakohteita kerralla napsauttamalla niitä\nja pitämällä Shiht-näppäin pohjassapohjassa tai vetämällä kartalle valintaikkunan.\nKaikki valintaikkunan sisällä olevat kohteet valitaan.\n\n### Muokkausten tallentaminen\n\nKartalle tehtävät muutokset tallennetaan tietokoneelle,\nkunnes ne tallennetaan palvelimelle. Älä pelkää virheiden\ntekemistä - muutoksen voi perua napsauttamalla Kumoa ja tuoda\ntakaisin napsauttamalla Tee uudelleen.\n\nTallenna kaikki karttaan tehdyt muutokset napsauttamalla\n\"Tallenna\" - muista toimia näin säännöllisesti. Karttalaadun varmistamiseksi\niD tarkistaa muutokset tyypillisten huolimattomuusvirheiden varalta\nja varoittaa, jos osa muutoksista edellyttää toimenpiteitä ennen tallennusta.\n\nJos huomautettavaa ei ole, lisää pieni kommentti tehdyistä muutoksista\nja tallenna muutokset palvelimelle napsauttamalla jälleen \"Tallenna\".\nMuutokset tulevat näkyviin [OpenStreetMap.orgiin](http://www.openstreetmap.org/), missä ne ovat\nkaikkien käyttäjien nähtävissä ja tarkasteltavissa.\n\nJos muutokset meinaavat jäädä kesken ja et halua vielä tallentaa niitä,\nvoit sulkea selainikkunan. Seuraavalla kerralla iD-muokkain\nmahdollistaa viime kerran muokkausten palauttamisten.\n", "roads": "# Tiet\n\nTällä muokkausohjelmalla voi lisätä, muokata ja poistaa teitä. Tie-sanalla\ntarkoitetaan kaikkia väyliä, kuten moottoriteitä, latuja, polkuja, pyöräteitä\nja monia muita.\n\n### Valitseminen\n\nValitse tie kartalta napsauttamalla sitä. Tien ulkoreuna korostuu, sen viereen\navautuu pikatoimintopalkki ja sivupalkkiin ilmestyy tien kohdemuokkain.\n\n### Siirtäminen ja muotoileminen\n\nKartalta voi löytää usein teitä, jotka eivät täsmää taustalla olevan ilmakuvan\ntai GPS-jäljen kanssa. Tällaiset tiet tulisi siirtää nopeasti oikealle paikalleen.\n\nAloita napsauttamalla siirrettävää tietä. Tien ulkoreunat korostuvat ja sen\nviivapisteet korostuvat. Tien muotoa voi muuttaa vetämällä viivapisteitä\nuusiin paikkoihin. Uuden viivapisteen voi luoda kaksoisnapsauttamalla\nmitä tahansa tien kohtaa, jossa ei jo ole viivapistettä.\n\nJos oikeassa maailmassa on kahden tien risteys, mutta ne eivät risteä\nkartalla, vedä joku viivapiste toiseen tiehen, jolloin niiden välille tulee\nristeys. Ei riitä, että tiet vain näyttävät risteävän kartalla, vaan niillä tulee\nolla yhteinen viivapiste. Tämä on erityisen tärkeää navigaattoreiden\nreititysohjelmistojen toimivuuden vuoksi.\n\nSiirrä koko tietä kerralla pikatoimintopalkin Siirrä-toiminnolla tai painamalla\nnäppäimistöstä M-näppäintä. Siirrä tie uudelle paikalleen ja lukitse siirto\nnapsauttamalla.\n\n### Poistaminen\n\nJos tie on täysin virheellinen - se esimerkiksi puuttuu satelliittikuvasta\nkokonaan tai se ei varmasti ole enää olemassa - se tulee poistaa\nkartalta. Mieti tarkkaan ennen karttakohteiden poistamispäätöstä -\nmuutos näkyy kartalla kaikille ja lisäksi satelliittikuvat ovat usein\nvanhentuneita, joten tie on jo voitu ehtiä rakentaa uudelleen.\n\nPoista tie valitsemalla se ja napsauttamalla sitten roskakorin\nkuvaketta tai napsauttamalla näppäimistön Delete-näppäintä.\n\n### Luominen\n\nPuuttuuko tie kartalta? Aloita tien piirtäminen napsauttamalla yläpalkista\nViiva tai paina pikanäppäintä `2` näppäimistöstä.\n\nNapsauta seuraavaksi tien lähtöpistettä. Jos tie lähtee jo kartalla olevan tien\nristeyksestä, napsauta risteyskohtaa.\n\nJatka napsauttelemalla tielle viivapisteitä säännöllisin välimatkoin\nseuraamalla ilmakuvaa tai GPS-jälkeä. Jos tie risteää jonkun muun tien kanssa, muodosta risteys napsauttamalla risteyskohtaa ja jatka taas normaaliin tapaan. Lopeta piirtäminen ja viimeistele tie\nkaksoisnapsauttamalla tai painamalla Enter-näppäintä. Peru tien piirtäminen ja poista tie painamalla näppäimistön askelpalautinta.\n", "gps": "# GPS \n\nGPS-mittaukset ovat tärkein OpenStreetMapin aineiston lähde. Tämä \nmuokkausohjelma tukee omalta tietokoneeltasi ladattavia `.gpx`-tiedostoja. \nGPS-mittauksia voi tehdä useilla älypuhelinsovelluksilla ja tietysti myös erillisillä \nGPS-mittalaitteilla. \n\nLisätietoja GPS-mittausten tekemisestä on sivuilla [Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/) ja [Aloittelijan opas](http://wiki.openstreetmap.org/wiki/Fi:Beginners_Guide_1.1).\n\nKäytä GPX-tiedostoa kartoittamisen apuna vetämällä ja pudottamalla tiedosto kartanmuokkausohjelmaan. Jos se toimii, GPS-jälki ilmestyy karttapohjalle \nkirkkaanviolettina viivana. Piilota, näytä uudelleen tai muuta tämän GPX-tason \nlähennystasoa Karttatiedot-valikosta oikeasta reunasta.\n\nTällä tavalla kartoittamisen apuna käytettyä GPX-tiedostoa ei tallenneta OpenStreetMapiin - tiedosto tulee hyödynnettyä parhaiten tallentamalla tiedosto myös muiden [karttakehittäjien käyttöön](http://www.openstreetmap.org/trace/create).\n", "imagery": "# Ilmakuvat\n\nIlmakuvat ovat tärkeä kartoittamisen apuväline. Lentokuvien,\nsatelliittikuvien ja vapaasti koottujen materiaalien kokoelma on\nkäytettävissä Taustan asetukset -valikosta oikean reunan sivupalkista.\n\nOletuksena taustalla näytetään [Bing-karttojen](http://www.bing.com/maps/) satelliittikuvat,\nmutta karttaa lähentämällä vaihtoehtoja tulee lisää.\nJoissakin maissa, kuten Suomessa, Ranskassa ja Tanskassa\non saatavilla korkealaatuisia lentokoneesta kuvattuja ilmakuvia.\n\nIlmakuva voi näyttää virheelliseltä palveluntarjoajan sivuston\nvirheen vuoksi. Jos tiestön sijainti heittää ilmakuvasta, älä ala heti\nsiirtämään niitä vastaamaan taustakuvaa, vaan siirrä ilmakuvataustaa\nvastaamaan tiestöä asetuksella \"Korjaa ilmakuvavirhe\"\nTaustan asetusten alaosassa.\n", "addresses": "# Osoitteet\n\nOsoitteet ovat yksi tärkeimmistä kartalla olevasta tiedosta.\n\nSen lisäksi että osoitetiedot ovat myös katujen nimiä,\nOpenStreetMapissa ne ovat olennaisia myös rakennusten\nja muiden kadunvarsikohteiden tiedoissa.\n\nOsoitetietoja voi katujen lisäksi lisätä rakennuksien ulkoreunoille\nja paikkapisteille. Paras osoitetietojen lähde on jalkautuminen tai\noma paikallistuntemus. Kuten kaikessa muussakin muokkaamisessa,\ntietojen kopioiminen kaupallisista lähteistä kuten Google Kartoista\non ehdottomasti kielletty.\n", - "inspector": "# Kohdemuokkaimen käyttö\n\nKohdemuokkain on näytön vasemmassa reunassa oleva osio,\njolla muutetaan valitun kohteen ominaisuuksia.\n\n### Kohteen tyypin valitseminen\n\nPisteen, viivan tai alueen lisäämisen jälkeen tulee valita, millainen kohde\nse on - kuten kahvila, moottoritie, joki tai leikkipuisto. Kohdemuokkain\nnäyttää painikkeet yleisimmille kohteille. Jos kohde ei näy listalla, hae\npaikkaa hakusanalla ja valitse se sitten luettelosta. Haku ymmärtää myös\nsynonyymit ja englanninkieliset nimet, joten kokeile sitä rohkeasti.\n\nTarkastele kohdetyypin lisätietoja tarkemmin napsauttamalla i-kirjainta\nsen reunassa. Valitse kohdetyyppi muokattavalle kohteelle napsauttamalla.\n\n### Kohteen tagien muokkaaminen\n\nKun kohdetyyppi on valittu, kohdemuokkain näyttää tietokenttiä, joilla\nvoidaan kuvailla kohteen ominaisuuksia, kuten nimi ja osoite.\n\nKenttäjoukon alapuolella on rivi painikkeita, joilla voi avata lisäkenttiä,\nkuten [Wikipedia-sivun](http://fi.wikipedia.org/), esteettömyystiedot\nja paljon muuta.\n\nKohdemuokkaimen alaosassa on Kaikki tagit -kohta, jossa voi lisätä\nkohteelle mitä tahansa tageja eli ominaisuustietoja. [Taginfosta](http://taginfo.openstreetmap.org/)\nlöytää lisätietoja erilaisista tageista ja niiden käyttömahdollisuuksista.\n\nKohdemuokkaimella tehtävät muutokset päivittyvät muokkauskartalle.\nreaaliaikaisesti. Muutoksen voi kuitenkin aina perua napsauttamalla\nKumoa-painiketta.\n", + "inspector": "# Kohdemuokkaimen \nkäyttö\n\nKohdemuokkain on näytön vasemmassa reunassa oleva osio,\njolla muutetaan valitun kohteen ominaisuuksia.\n\n### Kohteen tyypin valitseminen\n\nPisteen, viivan tai alueen lisäämisen jälkeen valitaan, millainen kohde\non kyseessä - kuten kahvila, moottoritie, joki tai leikkipuisto. Kohdemuokkain\nnäyttää painikkeet yleisimmille kohteille. Jos kohde ei näy listalla, hae\npaikkaa hakusanalla ja valitse se sitten luettelosta. Haku ymmärtää myös\nsynonyymit ja paikkaan liittyviä sanoja, joten kokeile sitä rohkeasti.\n\nTarkastele kohdetyypin lisätietoja tarkemmin napsauttamalla i-kirjainta\nsen reunassa. Valitse kohdetyyppi muokattavalle kohteelle napsauttamalla sitä hakutuloslistassa.\n\n### Kohteen tagien muokkaaminen\n\nKun kohdetyyppi on valittu, kohdemuokkain näyttää tietokenttiä, joilla\nvoidaan kuvailla kohteen ominaisuuksia, kuten nimi ja osoite.\n\nKenttäjoukon alapuolella on rivi painikkeita, joilla voi avata lisätietokenttiä,\nkuten [Wikipedia-sivun](http://fi.wikipedia.org/), esteettömyystiedot\nja paljon muuta.\n\nKohdemuokkaimen alaosassa on Kaikki tagit -kohta, jossa voi lisätä\nkohteelle mitä tahansa tageja eli ominaisuustietoja. [Taginfosta](http://taginfo.openstreetmap.org/)\nlöytää lisätietoja erilaisista tageista ja niiden käyttömahdollisuuksista.\n\nKohdemuokkaimella tehtävät muutokset päivittyvät muokkauskartalle.\nreaaliaikaisesti. Muutoksen voi kuitenkin aina perua napsauttamalla\nKumoa-painiketta.\n", "buildings": "# Rakennukset\n\nOpenStreetMap sisältää maailman laajimman rakennustietokannan.\nVoit osallistua tämän tietokannan luomiseen ja kehittämiseen.\n\n### Valitseminen\n\nValitse rakennus napsauttamalla sen seinää. Rakennus korostuu,\nrakennuksen viereen tulee pikatoiminto palkki ja rakennuksen\nmuokkausnäkymä avautuu.\n\n### Muokkaaminen\n\nJoskus rakennukset ovat väärin sijoitettuja tai niiden tiedot ovat virheellisiä.\n\nSiirrä rakennusta valitsemalla se ja napsauttamalla Muokkaa. Liikuta\nrakennusta hiirellä ja aseta se uudelle paikalleen napsauttamalla.\n\nMuuta rakennuksen muotoa napsauttamalla ja vetämällä\nsen rajojen pisteitä oikeille kohdille.\n\n### Piirtäminen\n\nYksi yleisimmistä rakennusten piirtämiseen liittyvistä kysymyksistä on se,\nettä OpenStreetMapissa rakennus voidaan piirtää tai merkitä vain pisteellä.\nNyrkkisääntö on, että rakennusten ulkomuodot tulisi aina pyrkiä piirtämään\nmahdollisimman tarkasti ja sijoittaa mahdolliset sisällä toimivat yritykset paikkapisteinä sen sisään.\n\nAloita rakennuksen piirtäminen napsauttamalla yläpalkista Alue.\nPeruuta piirtäminen painamalla näppäimistön askelpalautinta.\nViimeistele rakennus sulkemalla se napsauttamalla lähtöpistettä uudelleen.\n\n### Poistaminen\n\nJos rakennus on täysin virheellinen - se esimerkiksi puuttuu satelliittikuvasta\nkokonaan tai se ei varmasti ole enää olemassa - se tulee poistaa\nkartalta. Mieti tarkkaan ennen karttakohteiden poistamispäätöstä -\nmuutos näkyy kartalla kaikille ja lisäksi satelliittikuvat ovat usein\nvanhentuneita, joten rakennus on jo voitu ehtiä rakentaa uudelleen.\n\nPoista rakennus valitsemalla se ja napsauttamalla sitten roskakorin\nkuvaketta tai napsauttamalla näppäimistön Delete-näppäintä.\n", "relations": "# Suhteet\n\nSuhde on erityistyyppinen OpenStreetMap-ominaisuus, joka ryhmittää yhteen muita\nominaisuuksia. Esimerkiksi kaksi yleistä suhdetyyppiä ovat *route relations*,\njotka ryhmittävät yhteen tienosat, jotka kuuluvat tiettyyn moottoritiehen tai\npäätiehen, ja *multipolygons*, jotka ryhmittävät yhteen useita viivoja, jotka määrittävät\nmutkikkaita alueita (sellaisia, joissa on useita kappaleita tai reikiä, kuten donitsissa).\n\nOminaisryhmää suhteessa kutsutaan *members*. Sivupalkissa voit nähdä\nminkä suhteiden jäsenenä ominaisuus on, ja napsauttaa suhdetta siellä\nsen valitsemiseksi. Kun suhde on valittu, voit nähdä kaikki sen jäsenet\nlueteltuina sivupalkissa ja korostettuna kartalla.\n\nEnimmäkseen iD huolehtii suhteiden ylläpidosta automaattisesti muokkauksen\naikana. Tärkein seikka, josta sinun pitäisi olla tietoinen, on että jos poistat\ntienpätkän piirtääksesi sen tarkempaa, sinun pitäisi varmistua, että uusi pätkä on\nsaman suhteen jäsen kuin alkuperäinen.\n\n## Suhteiden muokkaus\n\nJos haluat muokata suhteita, tässä ovat perusasiat.\n\nOminaisuuden lisäämiseksi suhteeseen, valitse ominaisuus, napsauta ”+”-painiketta\nsivupalkin ”All relations”-kappaleessa, ja valitse tai kirjoita suhteen nimi.\n\nUuden suhteen luomisesksi valitse ensin ominaisuus, jonka pitäisi olla jäsen,\nnapsauta ”+”-painiketta ”All relations”-kappaleessa ja valitse ”New relation...”.\n\nOminaisuuden poistamiseksi suhteesta valitse ominaisuus ja napsauta\nroskakoripainiketta sen suhteen vieressä, josta haluat sen poistaa.\n\nVoit luoda monikulmioita rei'illä käyttäen ”Merge”-työkalua. Piirrä kaksi aluetta (sisempi\nja ulompi), pidä Vaihto-näppäin alhaalla ja napsauta niistä kumpaakin molempien\nvalitsemiseksi, ja napsauta sitten ”Merge” (+)-painiketta.\n" }, @@ -567,39 +576,39 @@ "fields": { "access": { "label": "Käyttöoikeus", - "placeholder": "Tuntematon", - "types": { - "access": "Yleinen", - "foot": "Kävely", - "motor_vehicle": "Moottoriajoneuvot", - "bicycle": "Pyöräily", - "horse": "Hevoset" - }, "options": { - "yes": { - "title": "Sallittu", - "description": "Laki sallii pääsyn alueelle" + "designated": { + "description": "Liikennemerkki, erityislaki tai muu vastaava sallii pääsyn", + "title": "Ilmoitettu" + }, + "destination": { + "description": "Pääsy sallittu vain, jos kohde on alueella", + "title": "Läpikulku" }, "no": { - "title": "Kielletty", - "description": "Ei pääsyä ilman erityislupaa" + "description": "Ei pääsyä ilman erityislupaa", + "title": "Kielletty" }, "permissive": { - "title": "Luvanvarainen", - "description": "Pääsy sallittu, kunnes omistaja peruuttaa luvan" + "description": "Pääsy sallittu, kunnes omistaja peruuttaa luvan", + "title": "Luvanvarainen" }, "private": { - "title": "Yksityinen", - "description": "Pääsy sallittu vain omistajan erityisluvalla" + "description": "Pääsy sallittu vain omistajan erityisluvalla", + "title": "Yksityinen" }, - "designated": { - "title": "Ilmoitettu", - "description": "Liikennemerkki, erityislaki tai muu vastaava sallii pääsyn" - }, - "destination": { - "title": "Läpikulku", - "description": "Pääsy sallittu vain, jos kohde on alueella" + "yes": { + "description": "Laki sallii pääsyn alueelle", + "title": "Sallittu" } + }, + "placeholder": "Tuntematon", + "types": { + "access": "Yleinen", + "bicycle": "Pyöräily", + "foot": "Kävely", + "horse": "Hevoset", + "motor_vehicle": "Moottoriajoneuvot" } }, "access_simple": { @@ -612,18 +621,18 @@ "address": { "label": "Osoite", "placeholders": { + "city": "Paikkakunta", + "country": "Valtio", + "district": "Seutu", "housename": "Talon nimi", "housenumber": "123", - "street": "Kadunnimi", - "city": "Paikkakunta", - "postcode": "Postinumero", "place": "Paikka", - "suburb": "Lähiö", - "subdistrict": "Aliseutu", - "district": "Seutu", + "postcode": "Postinumero", "province": "Maakunta", "state": "Osavaltio", - "country": "Valtio" + "street": "Kadunnimi", + "subdistrict": "Aliseutu", + "suburb": "Lähiö" } }, "admin_level": { @@ -635,9 +644,9 @@ "aerialway/access": { "label": "Käyttöoikeus", "options": { + "both": "Molemmat", "entry": "Sisäänkäynti", - "exit": "Uloskäynti", - "both": "Molemmat" + "exit": "Uloskäynti" } }, "aerialway/bubble": { @@ -661,9 +670,9 @@ "aerialway/summer/access": { "label": "Käyttöoikeus kesällä", "options": { + "both": "Molemmat", "entry": "Sisäänkäynti", - "exit": "Uloskäynti", - "both": "Molemmat" + "exit": "Uloskäynti" } }, "aeroway": { @@ -712,29 +721,29 @@ "cardinal_direction": { "label": "Suunta", "options": { - "N": "Pohjoinen", "E": "Itä", - "S": "Etelä", - "W": "Länsi", - "NE": "Koillinen", - "SE": "Kaakko", - "SW": "Lounas", - "NW": "Luode", - "NNE": "Pohjois-koillinen", "ENE": "Itä-koillinen", "ESE": "Itä-kaakko", + "N": "Pohjoinen", + "NE": "Koillinen", + "NNE": "Pohjois-koillinen", + "NNW": "Pohjois-luode", + "NW": "Luode", + "S": "Etelä", + "SE": "Kaakko", "SSE": "Etelä-kaakko", "SSW": "Etelä-lounas", - "WSW": "Länsilounas", + "SW": "Lounas", + "W": "Länsi", "WNW": "Länsiluode", - "NNW": "Pohjois-luode" + "WSW": "Länsilounas" } }, "clock_direction": { "label": "Suunta", "options": { - "clockwise": "Myötäpäivään", - "anticlockwise": "Vastapäivään" + "anticlockwise": "Vastapäivään", + "clockwise": "Myötäpäivään" } }, "collection_times": { @@ -752,12 +761,18 @@ "craft": { "label": "Tyyppi" }, + "crop": { + "label": "Rajaa" + }, "crossing": { "label": "Tyyppi" }, "cuisine": { "label": "Ruokakulttuuri" }, + "delivery": { + "label": "Kotiinkuljetus" + }, "denomination": { "label": "Suuntaus" }, @@ -767,14 +782,18 @@ "description": { "label": "Kuvaus" }, + "drive_through": { + "label": "Autokaista" + }, "electrified": { "label": "Sähköistys", "options": { - "contact_line": "Sähkojohtimet", + "contact_line": "Sähköjohtimet", + "no": "Ei", "rail": "Sähkökisko", - "yes": "Kyllä (määrittelemätön)", - "no": "Ei" - } + "yes": "Kyllä (tarkemmin määrittelemätön)" + }, + "placeholder": "Sähköjohtimet, sähkökisko..." }, "elevation": { "label": "Korkeus" @@ -799,9 +818,9 @@ "label": "Tyyppi", "options": { "pillar": "Ilmajohto", + "pond": "Lampi", "underground": "Maakaapeli", - "wall": "Seinä", - "pond": "Lampi" + "wall": "Seinä" } }, "fixme": { @@ -830,12 +849,12 @@ }, "gender": { "label": "Sukupuolirajoitus", - "placeholder": "Ei tiedossa", "options": { - "male": "Miehet", "female": "Naiset", + "male": "Miehet", "unisex": "Sukupuolirajoitukseton" - } + }, + "placeholder": "Ei tiedossa" }, "generator/method": { "label": "Metodi" @@ -861,6 +880,7 @@ "label": "Tyypp" }, "hoops": { + "label": "Koritelineet", "placeholder": "1, 2, 4..." }, "iata": { @@ -873,9 +893,10 @@ "label": "Kaltevuus" }, "incline_steps": { + "label": "Kulkusuunta", "options": { - "up": "Ylös", - "down": "Alas" + "down": "Alas", + "up": "Ylös" } }, "information": { @@ -884,11 +905,11 @@ "internet_access": { "label": "Internet-yhteys", "options": { - "yes": "Kyllä", "no": "Ei", - "wlan": "WLAN", + "terminal": "Terminaali", "wired": "Ethernet-yhteys", - "terminal": "Terminaali" + "wlan": "WLAN", + "yes": "Kyllä" } }, "lamp_type": { @@ -907,20 +928,20 @@ "leaf_cycle": { "label": "Lehtien pudotuskierto", "options": { - "evergreen": "Ei pudota lehtiä", "deciduous": "Pudottaa kaikki lehtensä", - "semi_evergreen": "Pudottaa suurimman osan lehdistään", + "evergreen": "Ei pudota lehtiä", + "mixed": "Sekoitus", "semi_deciduous": "Pudottaa kaikki lehtensä hyvin lyhyeksi ajaksi", - "mixed": "Sekoitus" + "semi_evergreen": "Pudottaa suurimman osan lehdistään" } }, "leaf_type": { "label": "Lehtilajike", "options": { "broadleaved": "Leveälehtinen", - "needleleaved": "Neulaset", + "leafless": "Lehdetön", "mixed": "Sekoitus", - "leafless": "Lehdetön" + "needleleaved": "Neulaset" } }, "leisure": { @@ -948,7 +969,6 @@ }, "mtb/scale": { "label": "Maastopyöräilyn haastavuus", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Tasainen sora/pakattu maa-aines, ei esteitä, laajakaariset käännökset", "1": "1: Hieman irtomaata, pieniä esteitä, laajakaariset käännökset", @@ -957,22 +977,22 @@ "4": "4: Irtomaapäällyste tai -kalliot, vaarralliset käännökset", "5": "5: Vaikein mahdollinen, kivikkoa, jyrkänteitä", "6": "6: Ei ajokelpoinen huippuammattilaisia lukuunottamatta" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBA-polkuluokitus", - "placeholder": "Helppo, keskivaikea, Vaikea...", "options": { "0": "Helpoin (valkoinen ympyrä)", "1": "Helppo (vihreä ympyrä)", "2": "Keskivaikea (sininen nelikulmio)", "3": "Vaikea (musta vinoneliö)", "4": "Äärimmäisen vaikea (kaksinkertainen musta vinoneliö)" - } + }, + "placeholder": "Helppo, keskivaikea, Vaikea..." }, "mtb/scale/uphill": { "label": "Ylämäkipyöräilyn haastavuus", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Nousu keskimäärin <10%, sorapohja, ei esteitä", "1": "1: Nousu keskimäärin <15%, sorapohja, satunnaisia pieniä esteitä", @@ -980,7 +1000,8 @@ "3": "3: Nousu keskimäärin <25%, vaihteleva pinta, kiviä, runsasta juurikkoa", "4": "4: Nousu keskimäärin <30%, huonokuntoinen, suuria kiviä ja erittäin runsasta juurikkoa", "5": "5: Todella jyrkkä, pyörän taluttaminen tai kantaminen suositeltavaa" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nimi", @@ -1001,17 +1022,17 @@ "oneway": { "label": "Yksisuuntaisuus", "options": { + "no": "Ei", "undefined": "Oletettavasti ei", - "yes": "Kyllä", - "no": "Ei" + "yes": "Kyllä" } }, "oneway_yes": { "label": "Yksisuuntaisuus", "options": { + "no": "Ei", "undefined": "Oletettavasti kyllä", - "yes": "Kyllä", - "no": "Ei" + "yes": "Kyllä" } }, "opening_hours": { @@ -1030,13 +1051,13 @@ "parking": { "label": "Tyyppi", "options": { - "surface": "Pysäköintikenttä", - "multi-storey": "Monikerroksinen", - "underground": "Maanalainen", - "sheds": "Metallikatos", "carports": "Autokatos", "garage_boxes": "Autotallipaikka", - "lane": "Kadunvarren pysäköintikaista" + "lane": "Kadunvarren pysäköintikaista", + "multi-storey": "Monikerroksinen", + "sheds": "Metallikatos", + "surface": "Pysäköintikenttä", + "underground": "Maanalainen" } }, "phone": { @@ -1045,24 +1066,24 @@ }, "piste/difficulty": { "label": "Haastavuus", - "placeholder": "Helppo, keskivaikea, vaikea...", "options": { - "novice": "Vasta-alkaja (ohjeellinen)", - "easy": "Erittäin helppo (vihreä ympyrä)", - "intermediate": "Helppo (sininen neliö)", "advanced": "Keskivaikea (punainen timantti)", + "easy": "Erittäin helppo (vihreä ympyrä)", "expert": "Vaikea (musta timantti)", + "extreme": "Extreme (edellyttää kiipeilyvarusteet)", "freeride": "Merkitsemätön (off-rinne)", - "extreme": "Extreme (edellyttää kiipeilyvarusteet)" - } + "intermediate": "Helppo (sininen neliö)", + "novice": "Vasta-alkaja (ohjeellinen)" + }, + "placeholder": "Helppo, keskivaikea, vaikea..." }, "piste/grooming": { "label": "Rinne/latupohja", "options": { - "classic": "Tasainen", - "mogul": "Kumpare", "backcountry": "Maaseutuhiihto", + "classic": "Tasainen", "classic+skating": "Perinteinen ja vapaa hiihtotyyli", + "mogul": "Kumpare", "scooter": "Lumikelkka", "skating": "Vapaa hiihtotyyli" } @@ -1071,8 +1092,14 @@ "label": "Tyyppi", "options": { "downhill": "Laskettelu", + "hike": "Vaeltaminen", + "ice_skate": "Luistelu", "nordic": "Murtomaahiihto", - "playground": "Leikkipuisto" + "playground": "Leikkipuisto", + "skitour": "Erämaahiihto", + "sled": "Pulkkamäki/kelkkailu", + "sleigh": "Hevos- tai koiravetoinen reki", + "snow_park": "Lumihuvipuisto" } }, "place": { @@ -1122,15 +1149,18 @@ }, "sac_scale": { "label": "Patikointireitin vaikeustaso", - "placeholder": "Vuoristopatikointi, alppipatikointi...", "options": { - "hiking": "T1: Patikointi", - "mountain_hiking": "T2: Vuoristopatikointi", - "demanding_mountain_hiking": "T3: Vaativa vuoristopatikointi", "alpine_hiking": "T4: Alppipatikointi", "demanding_alpine_hiking": "T5: Vaativa alppipatikointi", - "difficult_alpine_hiking": "T6: Vaikea alppipatikointi" - } + "demanding_mountain_hiking": "T3: Vaativa vuoristopatikointi", + "difficult_alpine_hiking": "T6: Vaikea alppipatikointi", + "hiking": "T1: Patikointi", + "mountain_hiking": "T2: Vuoristopatikointi" + }, + "placeholder": "Vuoristopatikointi, alppipatikointi..." + }, + "sanitary_dump_station": { + "label": "Tyhjennystekniikka" }, "seasonal": { "label": "Kausiluonteisuus" @@ -1141,17 +1171,26 @@ "service/bicycle/chain_tool": { "label": "Ketjutyökalu", "options": { + "no": "Ei", "undefined": "Oletettavasti ei", - "yes": "Kyllä", - "no": "Ei" + "yes": "Kyllä" } }, "service/bicycle/pump": { "label": "Rengaspainepumppu", "options": { + "no": "Ei", "undefined": "Oletettavasti ei", - "yes": "Kyllä", - "no": "Ei" + "yes": "Kyllä" + } + }, + "service_rail": { + "label": "Käyttötarkoitus", + "options": { + "crossover": "Raiteenvaihtoraide", + "siding": "Ohitusraide", + "spur": "Teollisuuden pistoraide", + "yard": "Ratapiharaide" } }, "shelter": { @@ -1168,15 +1207,15 @@ }, "smoking": { "label": "Tupakointi", - "placeholder": "Ei, eristettynä, kyllä...", "options": { - "no": "Ei tupakointia lainkaan", - "separated": "Eristämättömillä tupakointialueilla", + "dedicated": "Erityisesti tupakoijille (esim. tupakointikerho)", "isolated": "Eristetyillä tupakointialueilla", + "no": "Ei tupakointia lainkaan", "outside": "Sallittu ulkona", - "yes": "Sallittu kaikkialla", - "dedicated": "Erityisesti tupakoijille (esim. tupakointikerho)" - } + "separated": "Eristämättömillä tupakointialueilla", + "yes": "Sallittu kaikkialla" + }, + "placeholder": "Ei, eristettynä, kyllä..." }, "social_facility_for": { "label": "Kohderyhmä", @@ -1188,15 +1227,21 @@ "sport": { "label": "Urheilulaji" }, + "sport_ice": { + "label": "Urheilulaji" + }, + "sport_racing": { + "label": "Urheilulaji" + }, "structure": { "label": "Rakenne", - "placeholder": "Tuntematon", "options": { "bridge": "Silta", - "tunnel": "Tunneli", + "cutting": "Kallioleikkaus", "embankment": "Penger", - "cutting": "Kallioleikkaus" - } + "tunnel": "Tunneli" + }, + "placeholder": "Tuntematon" }, "studio_type": { "label": "Tyyppi" @@ -1212,19 +1257,19 @@ }, "takeaway": { "label": "Noutoateria (takeaway)", - "placeholder": "Kyllä, ei, vain noutoateriat...", "options": { - "yes": "Kyllä", "no": "Ei", - "only": "Vain noutoateriat" - } + "only": "Vain noutoateriat", + "yes": "Kyllä" + }, + "placeholder": "Kyllä, ei, vain noutoateriat..." }, "toilets/disposal": { "label": "Tyhjennystekniikka", "options": { + "chemical": "Kemikaalinen", "flush": "Huuhtelu", - "pitlatrine": "Peittoaines", - "chemical": "Kemikaalinen" + "pitlatrine": "Peittoaines" } }, "tourism": { @@ -1235,15 +1280,15 @@ }, "trail_visibility": { "label": "Havaittavuus", - "placeholder": "Erinomainen, hyvä, huono...", "options": { + "bad": "Huono: ei viitoitusta, polku on satunnaisesti heikosti havaittavissa/puuttuu kokonaan", "excellent": "Erinomainen: selkeästi erottuva tai viitoitettu polku", "good": "Hyvä: viitoitettu hyvin, vaatii satunnaisesti polun hakemista", - "intermediate": "Keskinkertainen: viitoitettu satunnaisesti, polku pääosin näkyvissä", - "bad": "Huono: ei viitoitusta, polku on satunnaisesti heikosti havaittavissa/puuttuu kokonaan", "horrible": "Surkea: pääosin ei polkua ollenkaan, suunnistustaidot välttämättömiä", + "intermediate": "Keskinkertainen: viitoitettu satunnaisesti, polku pääosin näkyvissä", "no": "Ei: ei minkäänlaista polkua, edistyneet suunnistustaidot välttämättömiä" - } + }, + "placeholder": "Erinomainen, hyvä, huono..." }, "trees": { "label": "Puut" @@ -1286,28 +1331,34 @@ "name": "Köysirata" }, "aerialway/chair_lift": { - "name": "Tuolihissi" + "name": "Tuolihissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, penkki, tuoli, istuin" }, "aerialway/gondola": { - "name": "Gondolihissi" + "name": "Gondolihissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, gondoli, koppi, koppihissi" }, "aerialway/magic_carpet": { - "name": "Mattohissi" + "name": "Mattohissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, liukuhihna, hihna, hihnahissi, liukuhihnahissi" }, "aerialway/platter": { - "name": "Sompahissi" + "name": "Sompahissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, sompa, tutti, tuttihissi" }, "aerialway/pylon": { "name": "Ilmaradan pylväs" }, "aerialway/rope_tow": { - "name": "Naruhissi" + "name": "Naruhissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, naru, köysi, köysihissi" }, "aerialway/station": { "name": "Ilmarata-asema" }, "aerialway/t-bar": { - "name": "Ankkurihissi" + "name": "Ankkurihissi", + "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, ankkuri, parihissi" }, "aeroway": { "name": "Kiitorata", @@ -1532,6 +1583,10 @@ "amenity/pub": { "name": "Pubi" }, + "amenity/public_bookcase": { + "name": "Julkinen kirjahylly", + "terms": "avoin, kirja, kirjoja, kirjat, vapaa, kirjan, kirjanjakelupiste, kirjapiste, jako, jakaa, jakelu, ilmainen, kädestä käteen, kirjanvaihto" + }, "amenity/recycling": { "name": "Kierrätyspiste", "terms": "kierrättäminen, kierrätys, lajittelu, uudelleenkäyttö, uudelleenkäyttäminen, ympäristö, lajittelupiste, lajitteluasema, jäte, jätteet, roskat, roska, roskikset, roskis, säiliö, roskasäiliö" @@ -2046,7 +2101,7 @@ "name": "Kuja" }, "highway/service/drive-through": { - "name": "Läpiajo" + "name": "Autokaista" }, "highway/service/driveway": { "name": "Ajoväylä" @@ -2148,7 +2203,8 @@ "name": "Liiketoiminta-alue" }, "landuse/construction": { - "name": "Rakennustyömaa" + "name": "Rakennustyömaa", + "terms": "rakennustyö, työmaa, työ, raksa, tietyö, tietyömaa" }, "landuse/farm": { "name": "Maatila" @@ -2236,7 +2292,7 @@ }, "leisure/pitch/soccer": { "name": "Jalkapallokenttä", - "terms": "jalkapallo, urheilu, liikunta, kenttä, areena, futis" + "terms": "jalkapallo, urheilu, liikunta, kenttä, areena, futis, futiskenttä" }, "leisure/pitch/tennis": { "name": "Tenniskenttä" @@ -2249,7 +2305,8 @@ "terms": "leikkipuisto, leikkipaikka, leikki, leikkiä, lapsipuisto, leikkipiste" }, "leisure/running_track": { - "name": "Juoksupolku" + "name": "Juoksupolku", + "terms": "juoksu, juokseminen, polku, rata, reitti, juoksupolku, juoksurata, juoksureitti, liikunta, urheilu, kuntoilu, yleisurheilu" }, "leisure/slipway": { "name": "Veneramppi", @@ -2291,10 +2348,16 @@ "man_made/lighthouse": { "name": "Majakka" }, + "man_made/mast": { + "name": "Radiomasto" + }, "man_made/observation": { "name": "Näkötorni", "terms": "observatorio, näköalatasanne, näköala, maisema, maisematorni" }, + "man_made/petroleum_well": { + "name": "Öljylähde" + }, "man_made/pier": { "name": "Laituri" }, @@ -2470,7 +2533,8 @@ "name": "Matkatoimisto" }, "piste": { - "name": "Laskettelurinne/hiihtolatu" + "name": "Laskettelurinne/hiihtolatu", + "terms": "laskettelu, alamäki, mäki, laskettelumäki, rinne, latu, hiihtolatu, urheilu, kuntoilu, liikunta, talvi, talviliikunta, talviurheilu, talvikuntoilu" }, "place": { "name": "Paikka" @@ -2479,6 +2543,9 @@ "name": "Kaupunki", "terms": "kaupunki, suurkaupunki, pääkaupunki" }, + "place/farm": { + "name": "Maatila" + }, "place/hamlet": { "name": "Pikkukylä" }, @@ -2803,12 +2870,20 @@ "name": "Optikko", "terms": "optikko, optiikko, optometristi, optometri, optometria, silmälasi, silmälasit, aurinkolasi, aurinkolasit, silmälasiliike" }, + "shop/paint": { + "name": "Maalikauppa", + "terms": "maalaaminen, maali, maalit, maalaus, rautakauppa, maalimyymälä, maaliliike" + }, "shop/pet": { "name": "Lemmikkiliike" }, "shop/photo": { "name": "Valokuvausliike" }, + "shop/radiotechnics": { + "name": "Elektroniikkakomponenttimyymälä", + "terms": "radio, elektroniikka, komponentti, tekninen, tekniikka, osa, osat, varaosa" + }, "shop/scuba_diving": { "name": "Sukellusliike", "terms": "laitesukellus, sukellus, sukeltaminen, laitesukeltaminen, sukelluskauppa, sukellusliike" @@ -2866,10 +2941,22 @@ "shop/video": { "name": "Videovuokraamo" }, + "shop/video_games": { + "name": "Videopeliliike", + "terms": "konsoli, konsolipeli, pelikonsoli, xbox, playstation, nintendo, peli, pelaaminen, videopeli, pc, tietokone, tietotekniikka" + }, "shop/water_sports": { "name": "Vesiurheiluliike", "terms": "uinti, uiminen, sukellus, sukeltaminen, laitesukellus, laitesukeltaminen, vesi, vesiurheilu, kauppa, liike, myymälä" }, + "shop/weapons": { + "name": "Aseliike", + "terms": "ase, pyssy, ampuma-ase, ampuminen, ammunta, starttipistooli, pistooli" + }, + "shop/window_blind": { + "name": "Kaihdinmyymälä", + "terms": "verho, ikkuna, ikkunaverho, ikkunakaihdin, kaihdin, verhot, kaihtimet, rullaverho, rullakaihdin, rullakaihtimet, rullaverhot" + }, "shop/wine": { "name": "Viinikauppa" }, @@ -2927,6 +3014,15 @@ "tourism/zoo": { "name": "Eläintarha" }, + "traffic_calming/bump": { + "name": "Hidastustöyssy" + }, + "traffic_calming/hump": { + "name": "Lievä hidastustöyssy" + }, + "traffic_calming/rumble_strip": { + "name": "Väristysviivahidaste" + }, "traffic_calming/table": { "name": "Korotettu suojatie" }, @@ -3027,6 +3123,9 @@ "waterway/riverbank": { "name": "Joentörmä" }, + "waterway/sanitary_dump_station": { + "name": "Satama-WC:n tyhjennystekniikka" + }, "waterway/stream": { "name": "Puro" }, diff --git a/vendor/assets/iD/iD/locales/fr.json b/vendor/assets/iD/iD/locales/fr.json index c8f5883e5..f4b50ec16 100644 --- a/vendor/assets/iD/iD/locales/fr.json +++ b/vendor/assets/iD/iD/locales/fr.json @@ -239,7 +239,7 @@ "commit": { "title": "Sauvegarder vos modifications", "description_placeholder": "Description succinte de vos contributions", - "message_label": "Description des changements", + "message_label": "Commentaire de changeset", "upload_explanation": "Les modifications envoyées seront visibles sur toutes les cartes qui utilisent les données d'OpenStreetMap.", "upload_explanation_with_user": "Les modifications envoyées en tant que {user} seront visibles sur toutes les cartes qui utilisent les données d'OpenStreetMap.", "save": "Sauvegarder", @@ -254,6 +254,26 @@ "list": "Editions de {users}", "truncated_list": "Editions de {users} et de {count} autres" }, + "infobox": { + "selected": "{n} selectionné s", + "geometry": "Géométrie", + "closed": "fermé", + "center": "Centre", + "perimeter": "Périmètre", + "length": "Longueur", + "area": "Polygone", + "centroid": "Centroïde", + "location": "Emplacement", + "metric": "Métrique", + "imperial": "Impérial" + }, + "geometry": { + "point": "point", + "vertex": "sommet", + "line": "ligne", + "area": "polygone", + "relation": "relation" + }, "geocoder": { "search": "Rechercher dans le monde entier...", "no_results_visible": "Aucun résultat sur la zone visible de la carte", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Accès", - "placeholder": "Inconnu", - "types": { - "access": "Général", - "foot": "À pied", - "motor_vehicle": "Véhicules motorisés", - "bicycle": "Vélos", - "horse": "Cavaliers" - }, "options": { - "yes": { - "title": "Autorisé", - "description": "Accès autorisé par servitude de passage" + "designated": { + "description": "Accès autorisé par des panneaux ou par une réglementation locale", + "title": "Restreint à certains types de véhicules" + }, + "destination": { + "description": "Circulation interdite, sauf pour accéder aux zones desservies", + "title": "Interdit sauf riverains" }, "no": { - "title": "Interdit", - "description": "Accès interdit au public" + "description": "Accès interdit au public", + "title": "Interdit" }, "permissive": { - "title": "Accès permis", - "description": "Accès laissé libre par le propriétaire, révocable à tout moment" + "description": "Accès laissé libre par le propriétaire, révocable à tout moment", + "title": "Accès permis" }, "private": { - "title": "Privé", - "description": "Accès autorisé sur demande au propriétaire" - }, - "designated": { - "title": "Restreint à certains types de véhicules", - "description": "Accès autorisé par des panneaux ou par une réglementation locale" + "description": "Accès autorisé sur demande au propriétaire", + "title": "Privé" }, - "destination": { - "title": "Interdit sauf riverains", - "description": "Circulation interdite, sauf pour accéder aux zones desservies" + "yes": { + "description": "Accès autorisé par servitude de passage", + "title": "Autorisé" } + }, + "placeholder": "Inconnu", + "types": { + "access": "Général", + "bicycle": "Vélos", + "foot": "À pied", + "horse": "Cavaliers", + "motor_vehicle": "Véhicules motorisés" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adresse", "placeholders": { + "city": "Ville", + "country": "Pays", + "district": "District", + "hamlet": "Hameau", "housename": "Nom de la maison", "housenumber": "123", - "street": "Rue", - "city": "Ville", - "postcode": "Code postal", "place": "Place", - "hamlet": "Hameau", - "suburb": "Banlieue", - "subdistrict": "Sous-district", - "district": "District", + "postcode": "Code postal", "province": "Province", "state": "État", - "country": "Pays" + "street": "Rue", + "subdistrict": "Sous-district", + "suburb": "Banlieue" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Accès", "options": { + "both": "Les deux", "entry": "Entrée", - "exit": "Sortie", - "both": "Les deux" + "exit": "Sortie" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Accès (été)", "options": { + "both": "Les deux", "entry": "Entrée", - "exit": "Sortie", - "both": "Les deux" + "exit": "Sortie" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Sens", "options": { - "N": "Nord", "E": "Est", - "S": "Sud", - "W": "Ouest", - "NE": "Nord-Est", - "SE": "Sud-Est", - "SW": "Sud-Ouest", - "NW": "Nord-Ouest", - "NNE": "Nord-Nord-Est", "ENE": "Est-Nord-Est", "ESE": "Est-Sud-Est", + "N": "Nord", + "NE": "Nord-Est", + "NNE": "Nord-Nord-Est", + "NNW": "Nord-Nord-Ouest", + "NW": "Nord-Ouest", + "S": "Sud", + "SE": "Sud-Est", "SSE": "Sud-Sud-Est", "SSW": "Sud-Sud-Ouest", - "WSW": "Ouest-Sud-Ouest", + "SW": "Sud-Ouest", + "W": "Ouest", "WNW": "Ouest-Nord-Ouest", - "NNW": "Nord-Nord-Ouest" + "WSW": "Ouest-Sud-Ouest" } }, "clock_direction": { "label": "Sens", "options": { - "clockwise": "Sens horaire", - "anticlockwise": "Sens anti-horaire" + "anticlockwise": "Sens anti-horaire", + "clockwise": "Sens horaire" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Type" }, + "content": { + "label": "Contenu" + }, "country": { "label": "Pays" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Électrification", - "placeholder": "Ligne de contact, Lignes électriques", "options": { "contact_line": "Ligne de contact", + "no": "Non", "rail": "Rails électrifiés", - "yes": "Oui (non spécifié)", - "no": "Non" - } + "yes": "Oui (non spécifié)" + }, + "placeholder": "Ligne de contact, Lignes électriques" }, "elevation": { "label": "Altitude" @@ -811,9 +834,9 @@ "label": "Type", "options": { "pillar": "Pilier / hors sol", + "pond": "Étang", "underground": "Sous-terrain", - "wall": "Mur", - "pond": "Étang" + "wall": "Mur" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Genre", - "placeholder": "Inconnu", "options": { - "male": "Homme", "female": "Femme", + "male": "Homme", "unisex": "Unisexe" - } + }, + "placeholder": "Inconnu" }, "generator/method": { "label": "Méthode" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Inclinaison", "options": { - "up": "En haut", - "down": "En bas" + "down": "En bas", + "up": "En haut" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Accès internet", "options": { - "yes": "Oui", "no": "Non", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Par câble", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Oui" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Phénologie des feuilles", "options": { - "evergreen": "Sempervirent", "deciduous": "Caduc", - "semi_evergreen": "Semi-Sempervirent", + "evergreen": "Sempervirent", + "mixed": "Mélangé", "semi_deciduous": "Semi-Caduc", - "mixed": "Mélangé" + "semi_evergreen": "Semi-Sempervirent" } }, "leaf_type": { "label": "Type de feuille", "options": { "broadleaved": "Feuillus", - "needleleaved": "Arbres à aiguilles", + "leafless": "Sans feuilles", "mixed": "Mélangé", - "leafless": "Sans feuilles" + "needleleaved": "Arbres à aiguilles" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Difficulté VTT", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0 : Gravier/terre battue, pas d'obstacles, de grandes courbes", "1": "1 : Quelques graviers, de petits obstacles, de grandes courbes", @@ -983,22 +1005,22 @@ "4": "4 : Surface avec des rochers, des épingles à cheveux dangereuses", "5": "5 : Difficulté maximale, champs de blocs, glissements de terrain", "6": "6 : Non praticable, que par les meilleurs vététistes" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBA Trail Difficulté", - "placeholder": "Facile, Intermédiaire, Difficile...", "options": { "0": "Simplissime (ronds blancs)", "1": "Facile (ronds verts)", "2": "Intermédiaire (carrés bleus)", "3": "Difficile (losanges noirs)", "4": "Extrèmement difficile (doubles losanges noirs)" - } + }, + "placeholder": "Facile, Intermédiaire, Difficile..." }, "mtb/scale/uphill": { "label": "Difficulté VTT en montée", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Inclinaison <10% , sol consistent, pas d'obstacles", "1": "1: Inclinaison < 15%, sol consistant, quelques menus obstacles", @@ -1006,7 +1028,8 @@ "3": "3: Inclinaison <25%, différents types de terrains, pierres/branches", "4": "4: Inclinaison <30%, conditions difficiles, rochers/branches", "5": "5: Abrupt, le vélo doit généralement être porté ou poussé" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nom", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Sens unique", "options": { + "no": "Non", "undefined": "Supposément Non", - "yes": "Oui", - "no": "Non" + "yes": "Oui" } }, "oneway_yes": { "label": "Sens unique", "options": { + "no": "Non", "undefined": "Supposément Oui", - "yes": "Oui", - "no": "Non" + "yes": "Oui" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Type", "options": { - "surface": "Surface", - "multi-storey": "Multiples niveaux", - "underground": "Souterrain", - "sheds": "Cabanes", "carports": "Abris de voiture", "garage_boxes": "Boxes de garage", - "lane": "Route" + "lane": "Route", + "multi-storey": "Multiples niveaux", + "sheds": "Cabanes", + "surface": "Surface", + "underground": "Souterrain" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Difficulté", - "placeholder": "Facile, Intermédiaire, Avancé...", "options": { - "novice": "Novice (enseignement)", - "easy": "Facile (ronds verts)", - "intermediate": "Intermédiaire (carrés bleus)", "advanced": "Avancé (losanges noirs)", + "easy": "Facile (ronds verts)", "expert": "Expert (doubles losanges noirs)", + "extreme": "Extrème (matériel d'escalade requis)", "freeride": "Freeride (hors piste)", - "extreme": "Extrème (matériel d'escalade requis)" - } + "intermediate": "Intermédiaire (carrés bleus)", + "novice": "Novice (enseignement)" + }, + "placeholder": "Facile, Intermédiaire, Avancé..." }, "piste/grooming": { "label": "Damage", "options": { - "classic": "Classique", - "mogul": "Piste de ski de bosses", "backcountry": "Arrière pays", + "classic": "Classique", "classic+skating": "Damage classique et pour pas de patineur", + "mogul": "Piste de ski de bosses", "scooter": "Scooter des neiges", "skating": "Patinage" } @@ -1097,14 +1120,14 @@ "label": "Type", "options": { "downhill": "Aval", + "hike": "Randonnée", + "ice_skate": "Patin à glace", "nordic": "Nordique", + "playground": "Aire de jeux", "skitour": "Randonnée à ski ", "sled": "Luge", - "hike": "Randonnée", "sleigh": "Traîneau", - "ice_skate": "Patin à glace", - "snow_park": "Parc à neige", - "playground": "Aire de jeux" + "snow_park": "Parc à neige" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Type" }, + "power_supply": { + "label": "Source de courant" + }, "railway": { "label": "Type" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Difficulté de la randonnée", - "placeholder": "Randonnée de Montagne, Randonnée Alpine", "options": { - "hiking": "T1 : Randonnée", - "mountain_hiking": "T2 : Randonnée de Montagne", - "demanding_mountain_hiking": "T3 : Randonnée de Montagne Exigeante", "alpine_hiking": "T4 : Randonnée Alpine", "demanding_alpine_hiking": "T5 : Randonnée Alpine Exieante", - "difficult_alpine_hiking": "T6 : Randonnée Alpine Difficile" - } + "demanding_mountain_hiking": "T3 : Randonnée de Montagne Exigeante", + "difficult_alpine_hiking": "T6 : Randonnée Alpine Difficile", + "hiking": "T1 : Randonnée", + "mountain_hiking": "T2 : Randonnée de Montagne" + }, + "placeholder": "Randonnée de Montagne, Randonnée Alpine" + }, + "sanitary_dump_station": { + "label": "Station de vidange sanitaire" }, "seasonal": { "label": "Saisonnier" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Outil de réparation de chaînes de vélo", "options": { + "no": "Non", "undefined": "Supposé être Non", - "yes": "Oui", - "no": "Non" + "yes": "Oui" } }, "service/bicycle/pump": { "label": "Pompe à air", "options": { + "no": "Non", "undefined": "Supposé être Non", - "yes": "Oui", - "no": "Non" + "yes": "Oui" } }, "service_rail": { "label": "Type de voie de service", "options": { - "spur": "Embranchement particulier court permettant à une compagnie ou une entité d'accéder au réseau principal.", - "yard": "Voie interne à la compagnie utilisée pour le triage ou la maintenance.", + "crossover": "Voie de traversée", "siding": "Voie parallèle", - "crossover": "Voie de traversée" + "spur": "Embranchement particulier court permettant à une compagnie ou une entité d'accéder au réseau principal.", + "yard": "Voie interne à la compagnie utilisée pour le triage ou la maintenance." } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Fumeur", - "placeholder": "Non, Séparé, Oui", "options": { - "no": "Interdiction de fumer, quel que soit l'endroit", - "separated": "Dans des endroits fumeurs, non isolés physiquement", + "dedicated": "Dédié aux fumeurs (ex : club de fumeurs)", "isolated": "Dans des endroits fumeurs, isolés physiquement", + "no": "Interdiction de fumer, quel que soit l'endroit", "outside": "Autorisé dehors", - "yes": "Autorisé partout", - "dedicated": "Dédié aux fumeurs (ex : club de fumeurs)" - } + "separated": "Dans des endroits fumeurs, non isolés physiquement", + "yes": "Autorisé partout" + }, + "placeholder": "Non, Séparé, Oui" }, "smoothness": { "label": "Douceur", - "placeholder": "Petites Roulettes, Roues, Hors-Piste", "options": { + "bad": "Grandes Roues : VTT, voiture, pousse-pousse", "excellent": "Petites Roulettes : rollers, planche à roulettes", "good": "Petites Roues : Vélo de course", + "horrible": "Hors-Piste : Gros véhicule hors-piste", + "impassable": "Infranchissable / Pas de véhicules à roues", "intermediate": "Roues : vélo de ville, fauteuil roulant, scooter", - "bad": "Grandes Roues : VTT, voiture, pousse-pousse", "very_bad": "Garde au sol élevée : véhicule léger tout terrain", - "horrible": "Hors-Piste : Gros véhicule hors-piste", - "very_horrible": "Spécialisé tout-terrain : tracteur, véhicule tout-terrain", - "impassable": "Infranchissable / Pas de véhicules à roues" - } + "very_horrible": "Spécialisé tout-terrain : tracteur, véhicule tout-terrain" + }, + "placeholder": "Petites Roulettes, Roues, Hors-Piste" }, "social_facility_for": { "label": "Personnes desservies", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Structure", - "placeholder": "Inconnu", "options": { "bridge": "Pont", - "tunnel": "Tunnel", - "embankment": "Remblai", "cutting": "Tranchée", - "ford": "Gué" - } + "embankment": "Remblai", + "ford": "Gué", + "tunnel": "Tunnel" + }, + "placeholder": "Inconnu" }, "studio_type": { "label": "Type" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "À emporter", - "placeholder": "Oui, Non, À emporter seulement...", "options": { - "yes": "Oui", "no": "Non", - "only": "À emporter seulement" - } + "only": "À emporter seulement", + "yes": "Oui" + }, + "placeholder": "Oui, Non, À emporter seulement..." }, "toilets/disposal": { "label": "Élimination", "options": { - "flush": "Toilettes publiques", - "pitlatrine": "Latrines", + "bucket": "Seau", "chemical": "Chimique", - "bucket": "Seau" + "flush": "Toilettes publiques", + "pitlatrine": "Latrines" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Type de piste", - "placeholder": "Dur, Majoritairement Dur, Mou...", "options": { "grade1": "Dur : pavé ou surface très compacte", "grade2": "Majoritairement dur : gravier/pierre avec quelque matériaux mous mélangés dedans", "grade3": "Mélange à égalité entre matériaux mous et durs", "grade4": "Majoritairement mou : terre/sable/herbe avec quelque matériaux durs mélangés dedans", "grade5": "Mou : terre/sable/herbe" - } + }, + "placeholder": "Dur, Majoritairement Dur, Mou..." }, "trail_visibility": { "label": "Visibilité du sentier", - "placeholder": "Excellent, Bon, Mauvais...", "options": { + "bad": "Mauvais: pas de balisage, sentier inconsistent", "excellent": "Excellent: chemin clairement identifiable ou balisage fréquent", "good": "Bon: balisage globalement visible", - "intermediate": "Intermédiaire: peu de balisage, sentier identifiable", - "bad": "Mauvais: pas de balisage, sentier inconsistent", "horrible": "Horrible: sentier disaraît fréquemment, nécessite de s'orienter", + "intermediate": "Intermédiaire: peu de balisage, sentier identifiable", "no": "Non: sans sentier, nécessite de bonnes compétences d'orientation" - } + }, + "placeholder": "Excellent, Bon, Mauvais..." }, "trees": { "label": "Arbres" @@ -1334,6 +1363,9 @@ "water": { "label": "Type" }, + "water_point": { + "label": "Point d'eau" + }, "waterway": { "label": "Type" }, @@ -1475,6 +1507,10 @@ "name": "Station de réparation de vélos", "terms": "Borne de réparation de vélos,Point de réparation de vélos" }, + "amenity/biergarten": { + "name": "Brasserie de plein air", + "terms": "Brasserie, bière, boissons alcolisées" + }, "amenity/boat_rental": { "name": "Location de bateau", "terms": "Location de bateaux" @@ -1671,6 +1707,10 @@ "name": "Restaurant", "terms": "Restaurant" }, + "amenity/sanitary_dump_station": { + "name": "Station de vidange sanitaire", + "terms": "Station de vidange, sanitaires, mobilehome ,camping, toilettes chimiques" + }, "amenity/school": { "name": "Terrains d'école primaire, collège, lycée, Cycles primaires et secondaires", "terms": "Terrains d'école primaire, collège, lycée, Cycles primaires et secondaires" @@ -2631,10 +2671,18 @@ "name": "Phare", "terms": "Phare" }, + "man_made/mast": { + "name": "Mât d'émission radio", + "terms": "Émetteur de téléphonie mobile, émetteur de téléphonie cellulaire, mât de transmission, pylône de transmission, tour haubanée, émetteur radio, émetteur de télévision, tour de télévision, tour de télédiffusion, ..." + }, "man_made/observation": { "name": "Tour d'observation", "terms": "Tour d'observation, Mirador" }, + "man_made/petroleum_well": { + "name": "Puits de pétrole", + "terms": "Puits de forage, derrick, chevalet de pompage, ..." + }, "man_made/pier": { "name": "Jetée", "terms": "Quai" @@ -2643,6 +2691,14 @@ "name": "Pipeline", "terms": "Pipeline, Gazoduc, Oleoduc" }, + "man_made/silo": { + "name": "Silo", + "terms": "Réservoir, emplacement de stockage, ..." + }, + "man_made/storage_tank": { + "name": "Réservoir de stockage", + "terms": "Silo de stockage" + }, "man_made/survey_point": { "name": "Poteau de triangulation", "terms": "Borne géodésique, monument géodésique, repère géodésique" @@ -2863,6 +2919,10 @@ "name": "Grande ville (>100.000 habitants)", "terms": "Ville" }, + "place/farm": { + "name": "Ferme isolée", + "terms": "Écart" + }, "place/hamlet": { "name": "Hameau (Moins de 100 habitants)", "terms": "Hameau" @@ -3651,6 +3711,10 @@ "name": "Canal d'évacuation d'eau pluviale", "terms": "Drain" }, + "waterway/fuel": { + "name": "Station-service marine", + "terms": "Station-service nautique, nautisme, bateaux, essence" + }, "waterway/river": { "name": "Rivière", "terms": "Rivière" @@ -3659,6 +3723,10 @@ "name": "Berge", "terms": "Berge" }, + "waterway/sanitary_dump_station": { + "name": "Station de vidange sanitaire marine", + "terms": "Station de vidange sanitaire nautique" + }, "waterway/stream": { "name": "Ruisseau", "terms": "Ruisseau" diff --git a/vendor/assets/iD/iD/locales/gl.json b/vendor/assets/iD/iD/locales/gl.json index fdc04bd93..aa36f60e3 100644 --- a/vendor/assets/iD/iD/locales/gl.json +++ b/vendor/assets/iD/iD/locales/gl.json @@ -226,7 +226,6 @@ "commit": { "title": "Gardar Cambios", "description_placeholder": "Breve descrición das túas contribucións", - "message_label": "Mensaxe de envío", "upload_explanation": "Os cambios que subas serán visibles en tódolos mapas que usen os datos de OpenStreetMap.", "upload_explanation_with_user": "Os cambios que subas como {user} serán visibles en tódolos mapas que usen os datos de OpenStreetMap.", "save": "Gardar", @@ -441,39 +440,39 @@ "fields": { "access": { "label": "Acceso", - "placeholder": "Descoñecido", - "types": { - "access": "Xeral", - "foot": "A pé", - "motor_vehicle": "Automóbiles", - "bicycle": "Bicicletas", - "horse": "Cabalos" - }, "options": { - "yes": { - "title": "Permitido", - "description": "Acceso permitido pola lei; un dereito de paso" + "designated": { + "description": "Acceso permitido segundo sinais ou ordenanzas locais específicas", + "title": "Designado" + }, + "destination": { + "description": "Acceso permitido só para chegar a un destino determinado", + "title": "Destino" }, "no": { - "title": "Prohibido", - "description": "Acceso non permitido ao público en xeral" + "description": "Acceso non permitido ao público en xeral", + "title": "Prohibido" }, "permissive": { - "title": "Permisivo", - "description": "Acceso permitido ata que o propietario revogue o permiso" + "description": "Acceso permitido ata que o propietario revogue o permiso", + "title": "Permisivo" }, "private": { - "title": "Privado", - "description": "Acceso permitido só coa autorización do propietario de forma individual" + "description": "Acceso permitido só coa autorización do propietario de forma individual", + "title": "Privado" }, - "designated": { - "title": "Designado", - "description": "Acceso permitido segundo sinais ou ordenanzas locais específicas" - }, - "destination": { - "title": "Destino", - "description": "Acceso permitido só para chegar a un destino determinado" + "yes": { + "description": "Acceso permitido pola lei; un dereito de paso", + "title": "Permitido" } + }, + "placeholder": "Descoñecido", + "types": { + "access": "Xeral", + "bicycle": "Bicicletas", + "foot": "A pé", + "horse": "Cabalos", + "motor_vehicle": "Automóbiles" } }, "access_simple": { @@ -486,15 +485,15 @@ "address": { "label": "Enderezo", "placeholders": { + "city": "Cidade", + "country": "País", + "hamlet": "Aldea", "housename": "Nome da casa", "housenumber": "123", - "street": "Rúa", - "city": "Cidade", - "postcode": "Código postal", "place": "Lugar", - "hamlet": "Aldea", - "suburb": "Barrio", - "country": "País" + "postcode": "Código postal", + "street": "Rúa", + "suburb": "Barrio" } }, "admin_level": { @@ -540,29 +539,29 @@ "cardinal_direction": { "label": "Sentido", "options": { - "N": "Norte", "E": "Leste", - "S": "Sur", - "W": "Oeste", - "NE": "Nordeste", - "SE": "Sueste", - "SW": "Suroeste", - "NW": "Noroeste", - "NNE": "Nor-nordeste", "ENE": "Les-nordeste", "ESE": "Les-sueste", + "N": "Norte", + "NE": "Nordeste", + "NNE": "Nor-nordeste", + "NNW": "Nor-noroeste", + "NW": "Noroeste", + "S": "Sur", + "SE": "Sueste", "SSE": "Sur-sueste", "SSW": "Sur-suroeste", - "WSW": "Oés-suroeste", + "SW": "Suroeste", + "W": "Oeste", "WNW": "Oés-noroeste", - "NNW": "Nor-noroeste" + "WSW": "Oés-suroeste" } }, "clock_direction": { "label": "Sentido", "options": { - "clockwise": "Sentido horario", - "anticlockwise": "Sentido antihorario" + "anticlockwise": "Sentido antihorario", + "clockwise": "Sentido horario" } }, "collection_times": { @@ -644,11 +643,11 @@ "internet_access": { "label": "Acceso a internet", "options": { - "yes": "Si", "no": "Non", - "wlan": "Wi-Fi", + "terminal": "Terminal", "wired": "Por cable", - "terminal": "Terminal" + "wlan": "Wi-Fi", + "yes": "Si" } }, "lamp_type": { @@ -710,17 +709,17 @@ "oneway": { "label": "Sentido único", "options": { + "no": "Non", "undefined": "Suponse Non", - "yes": "Si", - "no": "Non" + "yes": "Si" } }, "oneway_yes": { "label": "Sentido único", "options": { + "no": "Non", "undefined": "Suponse Si", - "yes": "Si", - "no": "Non" + "yes": "Si" } }, "opening_hours": { @@ -786,13 +785,13 @@ }, "structure": { "label": "Estructura", - "placeholder": "Descoñecido", "options": { "bridge": "Ponte", - "tunnel": "Túnel", + "cutting": "Desmonte", "embankment": "Terraplén", - "cutting": "Desmonte" - } + "tunnel": "Túnel" + }, + "placeholder": "Descoñecido" }, "supervised": { "label": "Vixiado" diff --git a/vendor/assets/iD/iD/locales/hr.json b/vendor/assets/iD/iD/locales/hr.json index 5179a8efe..db10fceeb 100644 --- a/vendor/assets/iD/iD/locales/hr.json +++ b/vendor/assets/iD/iD/locales/hr.json @@ -239,7 +239,7 @@ "commit": { "title": "Spremi promjene", "description_placeholder": "Kratki opis tvojih doprinosa", - "message_label": "Predaj poruku", + "message_label": "Komentar promjene", "upload_explanation": "Promjene koje postaviš biti će vidljive na svim kartama koje koriste podatke OpenStreetMap-a.", "upload_explanation_with_user": "Promjene koje postaviš kao {user} biti će vidljive na svim kartama koje koriste podatke OpenStreetMap-a.", "save": "Spremi", @@ -254,6 +254,26 @@ "list": "Uređivali {users}", "truncated_list": "Uređivali {users} i {count} drugih" }, + "infobox": { + "selected": "{n} selektiranih", + "geometry": "Geometrija", + "closed": "zatvoreno", + "center": "Centar", + "perimeter": "Opseg", + "length": "Duljina", + "area": "Područje", + "centroid": "Centroid", + "location": "Lokacija", + "metric": "Metrički", + "imperial": "Imperijalni" + }, + "geometry": { + "point": "točka", + "vertex": "čvor", + "line": "linija", + "area": "područje", + "relation": "relacija" + }, "geocoder": { "search": "Globalna pretraga...", "no_results_visible": "Nema rezultata na vidljivom dijelu karte", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Pristup", - "placeholder": "Nepoznat", - "types": { - "access": "Općeniti pristup", - "foot": "Pješacima", - "motor_vehicle": "Motornim vozilima", - "bicycle": "Biciklima", - "horse": "Konjima" - }, "options": { - "yes": { - "title": "Dozvoljeno", - "description": "Regulirano zakonom, pravilo desne strane" + "designated": { + "description": "Pristup dozvoljen prema znakovima ili prema lokalnom zakonu", + "title": "Označeno" + }, + "destination": { + "description": "Pristup dozvoljen samo za pristup destinaciji", + "title": "Destinacija" }, "no": { - "title": "Zabranjeno", - "description": "Pristup nije dozvoljen javnosti" + "description": "Pristup nije dozvoljen javnosti", + "title": "Zabranjeno" }, "permissive": { - "title": "Dopustivo", - "description": "Pristup dozvoljen dok vlasnik ne zabrani" + "description": "Pristup dozvoljen dok vlasnik ne zabrani", + "title": "Dopustivo" }, "private": { - "title": "Privatno", - "description": "Pristup dozvoljen samo s dozvolom vlasnika na pojedinačnoj bazi" - }, - "designated": { - "title": "Označeno", - "description": "Pristup dozvoljen prema znakovima ili prema lokalnom zakonu" + "description": "Pristup dozvoljen samo s dozvolom vlasnika na pojedinačnoj bazi", + "title": "Privatno" }, - "destination": { - "title": "Destinacija", - "description": "Pristup dozvoljen samo za pristup destinaciji" + "yes": { + "description": "Regulirano zakonom, pravilo desne strane", + "title": "Dozvoljeno" } + }, + "placeholder": "Nepoznat", + "types": { + "access": "Općeniti pristup", + "bicycle": "Biciklima", + "foot": "Pješacima", + "horse": "Konjima", + "motor_vehicle": "Motornim vozilima" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adresa", "placeholders": { + "city": "Grad", + "country": "Država", + "district": "Oblast", + "hamlet": "Zaseok", "housename": "Naziv kuće", "housenumber": "123", - "street": "Ulica", - "city": "Grad", - "postcode": "Poštanski broj", "place": "Mjesto", - "hamlet": "Zaseok", - "suburb": "Predgrađe", - "subdistrict": "Okrug", - "district": "Oblast", + "postcode": "Poštanski broj", "province": "Pokrajina", "state": "Savezna država, republika", - "country": "Država" + "street": "Ulica", + "subdistrict": "Okrug", + "suburb": "Predgrađe" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Pristup", "options": { + "both": "Oba", "entry": "Ulaz", - "exit": "Izlaz", - "both": "Oba" + "exit": "Izlaz" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Pristup (ljeto)", "options": { + "both": "Oba", "entry": "Ulaz", - "exit": "Izlaz", - "both": "Oba" + "exit": "Izlaz" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Smijer", "options": { - "N": "Sjever", "E": "Istok", - "S": "Jug", - "W": "Zapad", - "NE": "Sjeveroistok", - "SE": "Jugoistok", - "SW": "Jugozapad", - "NW": "Sjeverozapad", - "NNE": "Sjever-sjeveroistok", "ENE": "Istok-sjeveroistok", "ESE": "Istok-jugoistok", + "N": "Sjever", + "NE": "Sjeveroistok", + "NNE": "Sjever-sjeveroistok", + "NNW": "Sjever-sjeverozapad", + "NW": "Sjeverozapad", + "S": "Jug", + "SE": "Jugoistok", "SSE": "Jug-jugoistok", "SSW": "Jug-jugozapad", - "WSW": "Zapad-jugozapad", + "SW": "Jugozapad", + "W": "Zapad", "WNW": "Zapad-sjeverozapad", - "NNW": "Sjever-sjeverozapad" + "WSW": "Zapad-jugozapad" } }, "clock_direction": { "label": "Smjer", "options": { - "clockwise": "U smijeru kazaljke za satu", - "anticlockwise": "U suprotnom smijeru od kazaljke na satu" + "anticlockwise": "U suprotnom smijeru od kazaljke na satu", + "clockwise": "U smijeru kazaljke za satu" } }, "collection_times": { @@ -777,13 +797,13 @@ }, "electrified": { "label": "Elektrifikacija", - "placeholder": "Dodirna crta, elektrificirana željeznica", "options": { "contact_line": "Dodirna crta", + "no": "Ne", "rail": "Elektrificirana željeznica", - "yes": "Da (nedefinirano)", - "no": "Ne" - } + "yes": "Da (nedefinirano)" + }, + "placeholder": "Dodirna crta, elektrificirana željeznica" }, "elevation": { "label": "Nadmorska visina" @@ -808,9 +828,9 @@ "label": "Vrsta", "options": { "pillar": "Stub/nadzemni", + "pond": "Jezerce", "underground": "Podzemni", - "wall": "Zid", - "pond": "Jezerce" + "wall": "Zid" } }, "fixme": { @@ -851,12 +871,12 @@ }, "gender": { "label": "Spol", - "placeholder": "Nepoznato", "options": { - "male": "Muško", "female": "Žensko", + "male": "Muško", "unisex": "Unisex" - } + }, + "placeholder": "Nepoznato" }, "generator/method": { "label": "Metoda" @@ -897,8 +917,8 @@ "incline_steps": { "label": "Nagib", "options": { - "up": "Gore", - "down": "Dolje" + "down": "Dolje", + "up": "Gore" } }, "information": { @@ -907,11 +927,11 @@ "internet_access": { "label": "Dostupan internet", "options": { - "yes": "Da", "no": "Ne", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Žično", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Da" } }, "lamp_type": { @@ -952,7 +972,6 @@ }, "mtb/scale": { "label": "Težina brdske biciklističke staze", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Tvrd tucanik/nabijena zemlja, bez prepreka, blage krivine", "1": "1: Malo neravna površina, male prepreke, blage krivine", @@ -961,22 +980,22 @@ "4": "4: Neravna površina ili veliko kamenje, opasne krivine", "5": "5: Maksimalno težak teren, polja kamenih gromada, odroni", "6": "6: Nije za vožnju osim za najbolje brdske bicikliste" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Težina staze po IMBA", - "placeholder": "Lagano, srednje, teško...", "options": { "0": "Najlakše (bijeli krug)", "1": "Lagano (plava staza)", "2": "Srednje (plavi kvadrat)", "3": "Teško (crni dijamant)", "4": "Izuzetno teško (dupli crni dijamant)" - } + }, + "placeholder": "Lagano, srednje, teško..." }, "mtb/scale/uphill": { "label": "Težina uspona staze za brdski biciklizam", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Prosječan nagib <10%, tucanik/nabijena zemlja, bez prepreka", "1": "1: Prosječan nagib <15%, tucanik/nabijena zemlja, manje prepreke", @@ -984,7 +1003,8 @@ "3": "3: Prosječan nagib <25%, raznolika površina, kamenje veličine šake/granje", "4": "4: Prosječan nagib <30%, loši uvjeti, veliko kamenje/granje", "5": "5: Jako strmo, bicikl je uglavnom potrebno gurati ili nositi" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Ime", @@ -1005,17 +1025,17 @@ "oneway": { "label": "Jednosmjerna", "options": { + "no": "Ne", "undefined": "Pretpostavlja se da je Ne", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "oneway_yes": { "label": "Jednosmjerno", "options": { + "no": "Ne", "undefined": "Pretpostavlja se da je Da", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "opening_hours": { @@ -1034,13 +1054,13 @@ "parking": { "label": "Vrsta", "options": { - "surface": "Površinski", - "multi-storey": "Višerazinski", - "underground": "Podzemni", - "sheds": "Šupe", "carports": "Nastrešnica", "garage_boxes": "Boks garaža", - "lane": "Parking uz prometnicu" + "lane": "Parking uz prometnicu", + "multi-storey": "Višerazinski", + "sheds": "Šupe", + "surface": "Površinski", + "underground": "Podzemni" } }, "phone": { @@ -1049,24 +1069,24 @@ }, "piste/difficulty": { "label": "Težina", - "placeholder": "Lagano, srednje, napredno...", "options": { - "novice": "Za početnike (baby staza)", - "easy": "Lagano (zeleni krug)", - "intermediate": "Srednje (crvena staza)", "advanced": "Napredno (crna staza)", + "easy": "Lagano (zeleni krug)", "expert": "Ekspert (dupli crni dijamant)", + "extreme": "Ekstremno (potrebna oprema za penjanje)", "freeride": "Slobodna vožnja (izvan staze)", - "extreme": "Ekstremno (potrebna oprema za penjanje)" - } + "intermediate": "Srednje (crvena staza)", + "novice": "Za početnike (baby staza)" + }, + "placeholder": "Lagano, srednje, napredno..." }, "piste/grooming": { "label": "Uređenje staze", "options": { - "classic": "Klasično", - "mogul": "Hupseri", "backcountry": "Neuređeno, \"off piste\"", + "classic": "Klasično", "classic+skating": "Klasično i riblja kost", + "mogul": "Hupseri", "scooter": "Za snježni skuter ili motorne sanjke", "skating": "Riblja kost" } @@ -1075,14 +1095,14 @@ "label": "Vrsta", "options": { "downhill": "Alpsko skijanje", + "hike": "Pješačenje", + "ice_skate": "Klizanje na ledu", "nordic": "Nordijsko skijanje", + "playground": "Igralište za djecu", "skitour": "Ski obilazak", "sled": "Sanjkanje", - "hike": "Pješačenje", "sleigh": "Zaprežne sanjke", - "ice_skate": "Klizanje na ledu", - "snow_park": "Snježni park", - "playground": "Igralište za djecu" + "snow_park": "Snježni park" } }, "place": { @@ -1132,12 +1152,12 @@ }, "sac_scale": { "options": { - "hiking": "T1: Pješačenje", - "mountain_hiking": "T2: Planinarenje", - "demanding_mountain_hiking": "T3: Zahtjevno planinarenje", "alpine_hiking": "T4: Alpinističko planinarenje", "demanding_alpine_hiking": "T5: Zahtjevno alpinističko planinarenje", - "difficult_alpine_hiking": "T6: Teško alpinističko planinarenje" + "demanding_mountain_hiking": "T3: Zahtjevno planinarenje", + "difficult_alpine_hiking": "T6: Teško alpinističko planinarenje", + "hiking": "T1: Pješačenje", + "mountain_hiking": "T2: Planinarenje" } }, "service": { @@ -1145,16 +1165,16 @@ }, "service/bicycle/chain_tool": { "options": { + "no": "Ne", "undefined": "Pretpostavlja se da je Ne", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "service/bicycle/pump": { "options": { + "no": "Ne", "undefined": "Pretpostavlja se da je Ne", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "shelter": { @@ -1165,28 +1185,28 @@ }, "smoking": { "label": "Pušenje", - "placeholder": "Ne, odvojeno, da...", "options": { - "no": "Nedozvoljeno svugdje", - "separated": "U djelovima za pušenje koji nisu fizički odvojeni", "isolated": "U prostorijama za pušenje fizički odvojenima", + "no": "Nedozvoljeno svugdje", "outside": "Dopušteno vani", + "separated": "U djelovima za pušenje koji nisu fizički odvojeni", "yes": "Dopušteno svugdje" - } + }, + "placeholder": "Ne, odvojeno, da..." }, "smoothness": { "label": "Glatkost", - "placeholder": "Mali kotačići, kotači, off-road", "options": { + "bad": "Jači kotači: trekking bicikl, automobil, rikša", "excellent": "Tanki kotačići: role, skejtbord", "good": "Tanki kotači: bicikli trkačice", + "horrible": "Off road: prava off-road vozila", + "impassable": "Neprolazno / nijedno vozilo sa kotačima", "intermediate": "Kotači: gradski bicikl, kolica za invalide, skuteri", - "bad": "Jači kotači: trekking bicikl, automobil, rikša", "very_bad": "Visoko podvozje: gradski terenci, SUV-ovi", - "horrible": "Off road: prava off-road vozila", - "very_horrible": "Specijalizirana off-road vozila: traktori, quad vozila", - "impassable": "Neprolazno / nijedno vozilo sa kotačima" - } + "very_horrible": "Specijalizirana off-road vozila: traktori, quad vozila" + }, + "placeholder": "Mali kotačići, kotači, off-road" }, "source": { "label": "Izvor" @@ -1196,13 +1216,13 @@ }, "structure": { "label": "Konstrukcija", - "placeholder": "Nepoznat", "options": { "bridge": "Most", - "tunnel": "Tunel", + "cutting": "Usjek", "embankment": "Nasip", - "cutting": "Usjek" - } + "tunnel": "Tunel" + }, + "placeholder": "Nepoznat" }, "supervised": { "label": "Pod nadzorom" diff --git a/vendor/assets/iD/iD/locales/hu.json b/vendor/assets/iD/iD/locales/hu.json index 440b3f1b9..16687f856 100644 --- a/vendor/assets/iD/iD/locales/hu.json +++ b/vendor/assets/iD/iD/locales/hu.json @@ -239,7 +239,6 @@ "commit": { "title": "Módosítások Mentése", "description_placeholder": "A közreműködésed rövid összefoglalója", - "message_label": "Módosítási üzenet", "upload_explanation": "Az általad feltöltött változtatások minden OpenStreetMapet használó térképen láthatóak lesznek.", "upload_explanation_with_user": "Az általad {user} néven feltöltött változtatások minden OpenStreetMapet használó térképen láthatóak lesznek.", "save": "Mentés", @@ -565,39 +564,39 @@ "fields": { "access": { "label": "Behajtás", - "placeholder": "Ismeretlen", - "types": { - "access": "Általános", - "foot": "Gyalog", - "motor_vehicle": "Gépjárművek", - "bicycle": "Kerékpár", - "horse": "Ló" - }, "options": { - "yes": { - "title": "Engedélyezett", - "description": "Jogilag engedélyezett; szolgalmi jog" + "designated": { + "description": "Behajtást engedélyező tábla, vagy helyi jogszabály", + "title": "Kijelölt" + }, + "destination": { + "description": "A behajtás csak a célpont eléréséhez engedélyezett", + "title": "Célforgalom" }, "no": { - "title": "Tiltott", - "description": "Behajtás semmilyen forgalomnak nem engedélyezett" + "description": "Behajtás semmilyen forgalomnak nem engedélyezett", + "title": "Tiltott" }, "permissive": { - "title": "Megengedett.", - "description": "Behajtás engedélyezett, amíg a tulajdonos vissza nem vonja az engedélyt" + "description": "Behajtás engedélyezett, amíg a tulajdonos vissza nem vonja az engedélyt", + "title": "Megengedett." }, "private": { - "title": "Privát", - "description": "Behajtás csak a tulajdonos engedélyével, vagy egyedi elbírálás alapján" - }, - "designated": { - "title": "Kijelölt", - "description": "Behajtást engedélyező tábla, vagy helyi jogszabály" + "description": "Behajtás csak a tulajdonos engedélyével, vagy egyedi elbírálás alapján", + "title": "Privát" }, - "destination": { - "title": "Célforgalom", - "description": "A behajtás csak a célpont eléréséhez engedélyezett" + "yes": { + "description": "Jogilag engedélyezett; szolgalmi jog", + "title": "Engedélyezett" } + }, + "placeholder": "Ismeretlen", + "types": { + "access": "Általános", + "bicycle": "Kerékpár", + "foot": "Gyalog", + "horse": "Ló", + "motor_vehicle": "Gépjárművek" } }, "access_simple": { @@ -610,19 +609,19 @@ "address": { "label": "Cím", "placeholders": { + "city": "város", + "country": "Ország", + "district": "Kerület", + "hamlet": "Falucska", "housename": "Háznév", "housenumber": "123", - "street": "utca", - "city": "város", - "postcode": "írányítószám", "place": "Hely", - "hamlet": "Falucska", - "suburb": "Külváros", - "subdistrict": "Városrész", - "district": "Kerület", + "postcode": "írányítószám", "province": "Tartomány", "state": "Régió", - "country": "Ország" + "street": "utca", + "subdistrict": "Városrész", + "suburb": "Külváros" } }, "admin_level": { @@ -634,9 +633,9 @@ "aerialway/access": { "label": "Be- és kiszállás", "options": { + "both": "Mindkettő", "entry": "Bejárat", - "exit": "Kijárat", - "both": "Mindkettő" + "exit": "Kijárat" } }, "aerialway/bubble": { @@ -660,9 +659,9 @@ "aerialway/summer/access": { "label": "Be- és kiszállás (nyáron)", "options": { + "both": "Mindkettő", "entry": "Bejárat", - "exit": "Kijárat", - "both": "Mindkettő" + "exit": "Kijárat" } }, "aeroway": { @@ -711,29 +710,29 @@ "cardinal_direction": { "label": "Irány", "options": { - "N": "Észak", "E": "Kelet", - "S": "Dél", - "W": "Nyugat", - "NE": "Északkelet", - "SE": "Délkelet", - "SW": "Délnyugat", - "NW": "Északnyugat", - "NNE": "Észak-északkelet", "ENE": "Kelet-északkelet", "ESE": "Kelet-délkelet", + "N": "Észak", + "NE": "Északkelet", + "NNE": "Észak-északkelet", + "NNW": "Észak-északnyugat", + "NW": "Északnyugat", + "S": "Dél", + "SE": "Délkelet", "SSE": "Dél-délkelet", "SSW": "Dél-délnyugat", - "WSW": "Nyugat-délnyugat", + "SW": "Délnyugat", + "W": "Nyugat", "WNW": "Nyugat-északnyugat", - "NNW": "Észak-északnyugat" + "WSW": "Nyugat-délnyugat" } }, "clock_direction": { "label": "Irány", "options": { - "clockwise": "Óramutató szerint", - "anticlockwise": "Óramutatóval ellentétesen" + "anticlockwise": "Óramutatóval ellentétesen", + "clockwise": "Óramutató szerint" } }, "collection_times": { @@ -774,13 +773,13 @@ }, "electrified": { "label": "Villamosítottság", - "placeholder": "Felső-vezetékes, sínes áramfelvétel, ...", "options": { "contact_line": "Felsővezeték", + "no": "Nem", "rail": "Sínes áramfelvétel pl. metróban ", - "yes": "Igen (nem részletezett)", - "no": "Nem" - } + "yes": "Igen (nem részletezett)" + }, + "placeholder": "Felső-vezetékes, sínes áramfelvétel, ..." }, "elevation": { "label": "Tengerszint feletti magasság" @@ -805,9 +804,9 @@ "label": "Típus", "options": { "pillar": "Felszini tűzcsap", + "pond": "Tó víznyerő csapja", "underground": "Föld alatti tűzcsap", - "wall": "Fali tűzcsap", - "pond": "Tó víznyerő csapja" + "wall": "Fali tűzcsap" } }, "fixme": { @@ -848,12 +847,12 @@ }, "gender": { "label": "Nem", - "placeholder": "Ismeretlen", "options": { - "male": "Férfi", "female": "Nő", + "male": "Férfi", "unisex": "Uniszex" - } + }, + "placeholder": "Ismeretlen" }, "generator/method": { "label": "Módszer" @@ -894,8 +893,8 @@ "incline_steps": { "label": "Lejtő", "options": { - "up": "Fel", - "down": "Le" + "down": "Le", + "up": "Fel" } }, "information": { @@ -904,11 +903,11 @@ "internet_access": { "label": "Internetelérés", "options": { - "yes": "Igen", "no": "Nem", - "wlan": "WiFi", + "terminal": "Munkaállomás", "wired": "Vezetékes", - "terminal": "Munkaállomás" + "wlan": "WiFi", + "yes": "Igen" } }, "lamp_type": { @@ -927,20 +926,20 @@ "leaf_cycle": { "label": "Levélváltási ciklus", "options": { - "evergreen": "Örökzöld", "deciduous": "Lombhullató", - "semi_evergreen": "Félörökzöld ", + "evergreen": "Örökzöld", + "mixed": "Kevert, vegyes", "semi_deciduous": "Félig lombhullató", - "mixed": "Kevert, vegyes" + "semi_evergreen": "Félörökzöld " } }, "leaf_type": { "label": "Levél és lomb típusa ", "options": { "broadleaved": "Lombos", - "needleleaved": "Tűlevelű", + "leafless": "Lombtalan", "mixed": "Kevert, vegyes", - "leafless": "Lombtalan" + "needleleaved": "Tűlevelű" } }, "leisure": { @@ -968,7 +967,6 @@ }, "mtb/scale": { "label": "Mountainbike nehézség", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Szilárd kavicsos / döngölt földes, akadálymentes, széles kanyarok", "1": "1: Kevésbé szilárd felület, kisebb akadályokkal, széles kanyarok", @@ -977,22 +975,22 @@ "4": "4: Nagyon laza vagy sziklás rész, veszélyes hajtűkanyarok", "5": "5: Maximális nehézség, földcsuszamlások", "6": "6: Járhatatlan, kivéve a legügyesebb mountain bike-osokat." - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBA útvonal nehézség", - "placeholder": "Egyszerű, közepes, nehéz", "options": { "0": "Legyegyszerűbb (fehér kör)", "1": "Egyszerű (zöld kör)", "2": "Közepes (kék négyzet)", "3": "Nehéz (fekete gyémánt)", "4": "Extrém nehéz (dupla fekete gyémánt)" - } + }, + "placeholder": "Egyszerű, közepes, nehéz" }, "mtb/scale/uphill": { "label": "Mountainbike emelkedős nehézség", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: átlagos emelkedés < 10 % , szilárd, akadálymentes", "1": "1: átlagos emelkedés < 15%, szilárd, kisebb akadályokkal", @@ -1000,7 +998,8 @@ "3": "3: átlagos emelkedés < 25%, változó felszín, öklömnyi kövekkel, gyökerekkel", "4": "4: átlagos emelkedés < 30%, rossz felszín, nagy sziklás/ágas", "5": "5: extrém meredek, a biciklit tolni vagy cipelni kell." - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Név", @@ -1021,17 +1020,17 @@ "oneway": { "label": "Egyirányú", "options": { + "no": "Nem", "undefined": "Feltételezzük, hogy nem egyirányú", - "yes": "Igen", - "no": "Nem" + "yes": "Igen" } }, "oneway_yes": { "label": "Egyirányú", "options": { + "no": "Nem", "undefined": "Feltételezzük, hogy egyirányú", - "yes": "Igen", - "no": "Nem" + "yes": "Igen" } }, "opening_hours": { @@ -1050,13 +1049,13 @@ "parking": { "label": "Típus", "options": { - "surface": "Kültéri - felszini parkoló", - "multi-storey": "Többszintű parkoló - parkolóház", - "underground": "Földalatti parkoló", - "sheds": "Fedett parkoló", "carports": "Fedett - de nyitott oldalú parkoló", "garage_boxes": "Garázs parkoló", - "lane": "Útmenti sávos parkoló" + "lane": "Útmenti sávos parkoló", + "multi-storey": "Többszintű parkoló - parkolóház", + "sheds": "Fedett parkoló", + "surface": "Kültéri - felszini parkoló", + "underground": "Földalatti parkoló" } }, "phone": { @@ -1065,24 +1064,24 @@ }, "piste/difficulty": { "label": "Nehézség", - "placeholder": "Kezdő, középhaladó, haladó", "options": { - "novice": "Kezdő", - "easy": "Egyszerű (zöld kör)", - "intermediate": "Közepes (kék négyzet)", "advanced": "Haladó (fekete gyémánt)", + "easy": "Egyszerű (zöld kör)", "expert": "Profi (dupla fekete gyémánt)", + "extreme": "Extrém (hegymászófelszerelés szükséges)", "freeride": "Pályán kívüli (off-piste)", - "extreme": "Extrém (hegymászófelszerelés szükséges)" - } + "intermediate": "Közepes (kék négyzet)", + "novice": "Kezdő" + }, + "placeholder": "Kezdő, középhaladó, haladó" }, "piste/grooming": { "label": "Kezelés", "options": { - "classic": "Klasszikus", - "mogul": "Buckasízés - mogul", "backcountry": "Sziklás - szakadékos - fás - backcountry", + "classic": "Klasszikus", "classic+skating": "Klasszikus és Skating sífutópálya", + "mogul": "Buckasízés - mogul", "scooter": "Motoros szánozos pálya- Scooter/Snowmobile", "skating": "Skating sífutó pálya " } @@ -1091,14 +1090,14 @@ "label": "Típus", "options": { "downhill": "Lesiklás", + "hike": "Kirándulós, Nordikus pálya ( Hike )", + "ice_skate": "Jégkorcsolya", "nordic": "Nordic", + "playground": "Hó és sí játszótér ", "skitour": "Sítúra", "sled": "Szánkó - Sled", - "hike": "Kirándulós, Nordikus pálya ( Hike )", "sleigh": "Nem önjáró szánkós ( Sleigh )", - "ice_skate": "Jégkorcsolya", - "snow_park": "Hópark", - "playground": "Hó és sí játszótér " + "snow_park": "Hópark" } }, "place": { @@ -1148,15 +1147,15 @@ }, "sac_scale": { "label": "Túraútvonal nehézsége", - "placeholder": "Túraút, Magashegyi túraút...", "options": { - "hiking": "T1: Jól kiépített túraút", - "mountain_hiking": "T2: Magashegyi túraút", - "demanding_mountain_hiking": "T3: Magashegyi túraút kitett vagy biztosított szakaszokkal", "alpine_hiking": "T4: Kitett magashegyi túraút, csak tapasztaltaknak", "demanding_alpine_hiking": "T5: Kitett magashegyi túraút hegymászó szakaszokkal, csak tapasztaltaknak", - "difficult_alpine_hiking": "T6: Hegymászó technikát igénylő kitett magashegyi túraút, csak nagyon tapasztaltaknak" - } + "demanding_mountain_hiking": "T3: Magashegyi túraút kitett vagy biztosított szakaszokkal", + "difficult_alpine_hiking": "T6: Hegymászó technikát igénylő kitett magashegyi túraút, csak nagyon tapasztaltaknak", + "hiking": "T1: Jól kiépített túraút", + "mountain_hiking": "T2: Magashegyi túraút" + }, + "placeholder": "Túraút, Magashegyi túraút..." }, "seasonal": { "label": "Időszakos" @@ -1167,17 +1166,17 @@ "service/bicycle/chain_tool": { "label": "Láncbontó, lánc eszközök", "options": { + "no": "Nem", "undefined": "Feltételezhető, hogy nincs", - "yes": "Igen", - "no": "Nem" + "yes": "Igen" } }, "service/bicycle/pump": { "label": "Levegő pumpa", "options": { + "no": "Nem", "undefined": "Feltételezzük, hogy nincs", - "yes": "Igen", - "no": "Nem" + "yes": "Igen" } }, "shelter": { @@ -1194,29 +1193,29 @@ }, "smoking": { "label": "Dohányzó", - "placeholder": "Nem, elkülönített helyen, igen", "options": { - "no": "Mindenhol tilos", - "separated": "Egy légtérben dohányzó és nemdohányzó részek", + "dedicated": "Dohányzóknak ( pl. dohányzóklub, közösségi dohányzóhely) ", "isolated": "Teljesen elkülönített dohányzórész", + "no": "Mindenhol tilos", "outside": "Az épületen kívül engedélyezett", - "yes": "Mindenhol engedélyezett", - "dedicated": "Dohányzóknak ( pl. dohányzóklub, közösségi dohányzóhely) " - } + "separated": "Egy légtérben dohányzó és nemdohányzó részek", + "yes": "Mindenhol engedélyezett" + }, + "placeholder": "Nem, elkülönített helyen, igen" }, "smoothness": { "label": "Felület egyenletessége", - "placeholder": "Gördeszkás, kerekes, terepjárós", "options": { + "bad": "Rossz: vastagabb kerékkel, terepbiciklivel, autóval, riksával járható", "excellent": "Kiváló: görkorcsolyázni és gördeszkázni lehet rajta", "good": "Jó: vékony kerékkel, versenymotorral járható", + "horrible": "Borzalmas: off-road - nagy teherbírású terepjáróval járható", + "impassable": "Lehetetlen kerekes járművel közlekedni", "intermediate": "Közepes: városi kerékpárral, kerekesszékkel, robogóval járható", - "bad": "Rossz: vastagabb kerékkel, terepbiciklivel, autóval, riksával járható", "very_bad": "Nagyon rossz: Könnyű terepjárós út", - "horrible": "Borzalmas: off-road - nagy teherbírású terepjáróval járható", - "very_horrible": "Extrém borzalmas: traktor ajánlott.", - "impassable": "Lehetetlen kerekes járművel közlekedni" - } + "very_horrible": "Extrém borzalmas: traktor ajánlott." + }, + "placeholder": "Gördeszkás, kerekes, terepjárós" }, "social_facility_for": { "label": "Szociálisan rászorultak", @@ -1236,14 +1235,14 @@ }, "structure": { "label": "Szerkezet", - "placeholder": "Ismeretlen", "options": { "bridge": "Híd", - "tunnel": "Alagút", - "embankment": "Töltés", "cutting": "Bevágás", - "ford": "Gázló" - } + "embankment": "Töltés", + "ford": "Gázló", + "tunnel": "Alagút" + }, + "placeholder": "Ismeretlen" }, "studio_type": { "label": "Típus" @@ -1262,20 +1261,20 @@ }, "takeaway": { "label": "Ételek elvitelre ", - "placeholder": "Igen, nem, csak elvitel ", "options": { - "yes": "Igen", "no": "Nem", - "only": "Csak elvitel" - } + "only": "Csak elvitel", + "yes": "Igen" + }, + "placeholder": "Igen, nem, csak elvitel " }, "toilets/disposal": { "label": "WC kezelés", "options": { - "flush": "Vízöblitéses", - "pitlatrine": "Emésztőgödrös", + "bucket": "Konténeres üritésű", "chemical": "Vegyi anyagos semlegesítésű", - "bucket": "Konténeres üritésű" + "flush": "Vízöblitéses", + "pitlatrine": "Emésztőgödrös" } }, "tourism": { @@ -1286,26 +1285,26 @@ }, "tracktype": { "label": "Úttípus", - "placeholder": "Szilárd, vegyes, laza, ...", "options": { "grade1": "Szilárd: burkolt vagy tömör felületű makadámút", "grade2": "Főképp szilárd: murvával/kővel tömörített földút", "grade3": "Vegyes: köves földút", "grade4": "Nagyrészt laza: föld-, homok- vagy füves út némi kővel", "grade5": "Laza: föld-, homok- vagy füves út" - } + }, + "placeholder": "Szilárd, vegyes, laza, ..." }, "trail_visibility": { "label": "Ösvény láthatósága", - "placeholder": "Kiváló, jó, rossz ...", "options": { + "bad": "Rossz: nincsenek jelzők, az útvonal néha láthatatlan / úttalan", "excellent": "Kiváló: egyértelmű utak és jelzők mindenhol", "good": "Jó: jelzők láthatóak, néha keresni kell őket", - "intermediate": "Közepes: néhány jelző, az útvonal többnyire látható", - "bad": "Rossz: nincsenek jelzők, az útvonal néha láthatatlan / úttalan", "horrible": "Borzalmas: gyakran úttalan, tájékozódási képességek szükségesek", + "intermediate": "Közepes: néhány jelző, az útvonal többnyire látható", "no": "Nincs: úttalan, kitűnő tájékozódási képességek szükségesek" - } + }, + "placeholder": "Kiváló, jó, rossz ..." }, "trees": { "label": "Fák" diff --git a/vendor/assets/iD/iD/locales/hy.json b/vendor/assets/iD/iD/locales/hy.json index 092d4e09f..513759c9d 100644 --- a/vendor/assets/iD/iD/locales/hy.json +++ b/vendor/assets/iD/iD/locales/hy.json @@ -46,8 +46,8 @@ "address": { "label": "Հասցե", "placeholders": { - "street": "Փողոց", - "city": "Քաղաք" + "city": "Քաղաք", + "street": "Փողոց" } }, "atm": { diff --git a/vendor/assets/iD/iD/locales/id.json b/vendor/assets/iD/iD/locales/id.json index 06fe6e748..c3766f8db 100644 --- a/vendor/assets/iD/iD/locales/id.json +++ b/vendor/assets/iD/iD/locales/id.json @@ -226,7 +226,6 @@ "commit": { "title": "Simpan Perubahan", "description_placeholder": "Deskripsi singkat kontribusi Anda", - "message_label": "Sampaikan pesan", "upload_explanation": "Perubahan yang anda unggah akan tampil di seluruh peta yang menggunakan data OpenStreetMap.", "upload_explanation_with_user": "Perubahan yang anda unggah sebagai {user} akan tampil di seluruh peta yang menggunakan data OpenStreetMap.", "save": "Simpan", @@ -460,38 +459,38 @@ "fields": { "access": { "label": "Akses", - "placeholder": "Tidak diketahui", - "types": { - "access": "Umum", - "foot": "Kaki", - "motor_vehicle": "Sepeda Motor", - "bicycle": "Sepeda", - "horse": "Kuda" - }, "options": { - "yes": { - "title": "Diizinkan" + "designated": { + "description": "Akses diperbolehkan sesuai dengan tanda atau peraturan lokal yang spesifik", + "title": "Ditunjuk" + }, + "destination": { + "description": "Akses diperbolehkan hanya untuk mencapai tujuan", + "title": "Tujuan" }, "no": { - "title": "Terlarang", - "description": "Akses terbatas untuk umum" + "description": "Akses terbatas untuk umum", + "title": "Terlarang" }, "permissive": { - "title": "Dibolehkan", - "description": "Akses diperbolehkan sampai batas pemilik membatalkan izin" + "description": "Akses diperbolehkan sampai batas pemilik membatalkan izin", + "title": "Dibolehkan" }, "private": { - "title": "Pribadi", - "description": "Akses diperbolehkan hanya dengan perizinan dari pemilik pada tingkatan pribadi" + "description": "Akses diperbolehkan hanya dengan perizinan dari pemilik pada tingkatan pribadi", + "title": "Pribadi" }, - "designated": { - "title": "Ditunjuk", - "description": "Akses diperbolehkan sesuai dengan tanda atau peraturan lokal yang spesifik" - }, - "destination": { - "title": "Tujuan", - "description": "Akses diperbolehkan hanya untuk mencapai tujuan" + "yes": { + "title": "Diizinkan" } + }, + "placeholder": "Tidak diketahui", + "types": { + "access": "Umum", + "bicycle": "Sepeda", + "foot": "Kaki", + "horse": "Kuda", + "motor_vehicle": "Sepeda Motor" } }, "access_simple": { @@ -504,19 +503,19 @@ "address": { "label": "Alamat", "placeholders": { + "city": "Kota", + "country": "Negara", + "district": "Kabupaten", + "hamlet": "Dusun", "housename": "Nama rumah", "housenumber": "123", - "street": "Jalan", - "city": "Kota", - "postcode": "Kode pos", "place": "Tempat", - "hamlet": "Dusun", - "suburb": "Kelurahan", - "subdistrict": "Kecamatan", - "district": "Kabupaten", + "postcode": "Kode pos", "province": "Provinsi", "state": "Negara Bagian", - "country": "Negara" + "street": "Jalan", + "subdistrict": "Kecamatan", + "suburb": "Kelurahan" } }, "admin_level": { @@ -528,9 +527,9 @@ "aerialway/access": { "label": "Akses", "options": { + "both": "Keduanya", "entry": "Masuk", - "exit": "Keluar", - "both": "Keduanya" + "exit": "Keluar" } }, "aerialway/capacity": { @@ -550,9 +549,9 @@ }, "aerialway/summer/access": { "options": { + "both": "Keduanya", "entry": "Masuk", - "exit": "Keluar", - "both": "Keduanya" + "exit": "Keluar" } }, "aeroway": { @@ -589,29 +588,29 @@ "cardinal_direction": { "label": "Arah", "options": { - "N": "Utara", "E": "Timur", - "S": "Selatan", - "W": "Barat", - "NE": "Timur Laut", - "SE": "Tenggara", - "SW": "Barat Daya", - "NW": "Barat Laut", - "NNE": "Utara-timur laut", "ENE": "Timur-timur laut", "ESE": "Timur-tenggara", + "N": "Utara", + "NE": "Timur Laut", + "NNE": "Utara-timur laut", + "NNW": "Timur-barat laut", + "NW": "Barat Laut", + "S": "Selatan", + "SE": "Tenggara", "SSE": "Selatan-tenggara", "SSW": "Selatan-barat daya", - "WSW": "Barat-barat daya", + "SW": "Barat Daya", + "W": "Barat", "WNW": "Barat-barat laut", - "NNW": "Timur-barat laut" + "WSW": "Barat-barat daya" } }, "clock_direction": { "label": "Arah", "options": { - "clockwise": "Searah Jarum Jam", - "anticlockwise": "Berlawanan Jarum Jam" + "anticlockwise": "Berlawanan Jarum Jam", + "clockwise": "Searah Jarum Jam" } }, "collection_times": { @@ -674,9 +673,9 @@ "fire_hydrant/type": { "label": "Tipe", "options": { + "pond": "Kolam", "underground": "Dibawah tanah", - "wall": "Tembok", - "pond": "Kolam" + "wall": "Tembok" } }, "fixme": { @@ -727,11 +726,11 @@ "internet_access": { "label": "Akses Internet", "options": { - "yes": "Iya", "no": "Tidak", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Kabel", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Iya" } }, "lamp_type": { @@ -771,14 +770,14 @@ "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { - "placeholder": "Mudah, Menengah, Susah...", "options": { "0": "Sangat Mudah (lingkaran putih)", "1": "Mudah (lingkaran hijau)", "2": "Menengah (kotak biru)", "3": "Susah (berlian hitam)", "4": "Sangat Susah (berlian hitam ganda)" - } + }, + "placeholder": "Mudah, Menengah, Susah..." }, "mtb/scale/uphill": { "placeholder": "0, 1, 2, 3..." @@ -802,15 +801,15 @@ "oneway": { "label": "Satu Arah", "options": { - "yes": "Iya", - "no": "Tidak" + "no": "Tidak", + "yes": "Iya" } }, "oneway_yes": { "label": "Satu Arah", "options": { - "yes": "Iya", - "no": "Tidak" + "no": "Tidak", + "yes": "Iya" } }, "opening_hours": { @@ -898,12 +897,12 @@ }, "structure": { "label": "Struktur", - "placeholder": "Tak Diketahui", "options": { "bridge": "Jembatan", - "tunnel": "Terowongan", - "ford": "Ford" - } + "ford": "Ford", + "tunnel": "Terowongan" + }, + "placeholder": "Tak Diketahui" }, "studio_type": { "label": "Tipe" diff --git a/vendor/assets/iD/iD/locales/is.json b/vendor/assets/iD/iD/locales/is.json index 5fb92bf30..3e6e4dad0 100644 --- a/vendor/assets/iD/iD/locales/is.json +++ b/vendor/assets/iD/iD/locales/is.json @@ -214,7 +214,6 @@ "commit": { "title": "Vista breytingar", "description_placeholder": "Stutt lýsing á breytingum þínum", - "message_label": "Staðfesta boð", "upload_explanation": "Breytingarnar sem þú gerir verða sýnilegar á öllum kortum sem nota OpenStreetMap gögn.", "upload_explanation_with_user": "Breytingarnar sem þú gerir sem {user} verða sýnilegar á öllum kortum sem nota OpenStreetMap gögn.", "save": "Vista", @@ -434,6 +433,9 @@ "category-building": { "name": "Bygging" }, + "category-golf": { + "name": "Golf" + }, "category-landuse": { "name": "Landnotkun" }, @@ -443,6 +445,9 @@ "category-rail": { "name": "Lestarteinar" }, + "category-restriction": { + "name": "Takmörkun" + }, "category-road": { "name": "Vegur" }, @@ -451,51 +456,63 @@ }, "category-water-area": { "name": "Vatn" + }, + "category-water-line": { + "name": "Vatn" } }, "fields": { "access": { "label": "Aðgangur", - "placeholder": "Óþekkt", - "types": { - "access": "Almennt", - "foot": "Fótgangandi", - "motor_vehicle": "Vélknúin ökutæki", - "bicycle": "Hjól", - "horse": "Hestar" - }, "options": { - "yes": { - "title": "Leyft", - "description": "Aðgangur leyfður með lögum" + "designated": { + "description": "Aðgangur heimill sökum skilta eða reglna", + "title": "Merking" + }, + "destination": { + "description": "Aðgangur leyfður aðeins ef í fararleið", + "title": "Áfangastaður" }, "no": { - "title": "Aðgangur bannaður", - "description": "Aðgangur óheimill almenningi" + "description": "Aðgangur óheimill almenningi", + "title": "Aðgangur bannaður" }, "permissive": { - "title": "Með leyfi", - "description": "Aðgangur heimill þar til eigandi dregur leyfi til baka" + "description": "Aðgangur heimill þar til eigandi dregur leyfi til baka", + "title": "Með leyfi" }, "private": { - "title": "Einka", - "description": "Aðgangur heimill eingöngu með samþykki landeiganda" - }, - "designated": { - "title": "Merking", - "description": "Aðgangur heimill sökum skilta eða reglna" + "description": "Aðgangur heimill eingöngu með samþykki landeiganda", + "title": "Einka" }, - "destination": { - "title": "Áfangastaður", - "description": "Aðgangur leyfður aðeins ef í fararleið" + "yes": { + "description": "Aðgangur leyfður með lögum", + "title": "Leyft" } + }, + "placeholder": "Óþekkt", + "types": { + "access": "Almennt", + "bicycle": "Hjól", + "foot": "Fótgangandi", + "horse": "Hestar", + "motor_vehicle": "Vélknúin ökutæki" } }, + "access_simple": { + "label": "Aðgangur", + "placeholder": "já" + }, + "access_toilets": { + "label": "Aðgangur" + }, "address": { "label": "Heimilisfang", "placeholders": { - "street": "Gata", "city": "Sveitarfélag", + "country": "Land", + "housenumber": "123", + "street": "Gata", "subdistrict": "Undirsvæði" } }, @@ -504,8 +521,8 @@ }, "aerialway/access": { "options": { - "exit": "Útgangur", - "both": "Bæði" + "both": "Bæði", + "exit": "Útgangur" } }, "aerialway/capacity": { @@ -551,8 +568,8 @@ "clock_direction": { "label": "Átt", "options": { - "clockwise": "Réttsælis", - "anticlockwise": "Rangsælis" + "anticlockwise": "Rangsælis", + "clockwise": "Réttsælis" } }, "collection_times": { @@ -629,9 +646,9 @@ "label": "Internetaðgangur", "options": { "no": "Nei", - "wlan": "Þráðlaust", + "terminal": "Útstöð", "wired": "Leiðslur", - "terminal": "Útstöð" + "wlan": "Þráðlaust" } }, "landuse": { @@ -661,6 +678,14 @@ "label": "Hraðatakmörkun", "placeholder": "40, 50, 60..." }, + "mtb/scale": { + "options": { + "2": "2: laust undirlag, stórar hindranir, auðveldar beygjur" + } + }, + "mtb/scale/imba": { + "placeholder": "Auðvelt, miðlungs, erfitt..." + }, "name": { "label": "Nafn", "placeholder": "Almannanafn (ef eitthvað)" @@ -706,9 +731,10 @@ "placeholder": "+31 42 123 4567" }, "piste/type": { + "label": "Tegund", "options": { - "sleigh": "Sleði", - "ice_skate": "Skautar" + "ice_skate": "Skautar", + "sleigh": "Sleði" } }, "place": { @@ -779,13 +805,13 @@ }, "structure": { "label": "Mannvirki", - "placeholder": "Óþekkt", "options": { "bridge": "Brú", - "tunnel": "Göng", + "cutting": "Rás", "embankment": "Stallur", - "cutting": "Rás" - } + "tunnel": "Göng" + }, + "placeholder": "Óþekkt" }, "supervised": { "label": "Undir stjórn" @@ -887,6 +913,9 @@ "amenity/bicycle_rental": { "name": "Hjólaleiga" }, + "amenity/bicycle_repair_station": { + "name": "Hjólaviðgerðastöð" + }, "amenity/cafe": { "name": "Kaffihús", "terms": "tehús" @@ -1564,12 +1593,21 @@ "office/architect": { "name": "Arkitekt" }, + "office/financial": { + "name": "Fjármálafyrirtæki" + }, + "office/government": { + "name": "Opinber stofnun" + }, "office/newspaper": { "name": "Fréttablað" }, "office/political_party": { "name": "Stjórnmálaflokkur" }, + "office/research": { + "name": "Rannsóknarstofa" + }, "office/travel_agent": { "name": "Ferðaskrifstofa" }, @@ -1759,6 +1797,9 @@ "shop/hardware": { "name": "Byggingavöruverslun" }, + "shop/herbalist": { + "name": "Grasalæknir" + }, "shop/hifi": { "name": "Hljómverslun" }, diff --git a/vendor/assets/iD/iD/locales/it.json b/vendor/assets/iD/iD/locales/it.json index 77baa4aca..8e5b4f77a 100644 --- a/vendor/assets/iD/iD/locales/it.json +++ b/vendor/assets/iD/iD/locales/it.json @@ -239,7 +239,7 @@ "commit": { "title": "Salva le modifiche", "description_placeholder": "Una breve descrizione delle tue modifiche", - "message_label": "Commento", + "message_label": "Commento al gruppo di modifiche", "upload_explanation": "Le modifiche che carichi saranno visibili su tutte le mappe che usano i dati di OpenStreetMap.", "upload_explanation_with_user": "Le modifiche che carichi come {user} saranno visibili su tutte le mappe che usano i dati di OpenStreetMap.", "save": "Salva", @@ -254,6 +254,26 @@ "list": "Modifiche di {users}", "truncated_list": "Modifiche di {users} e {count} altri" }, + "infobox": { + "selected": "{n} selezionati", + "geometry": "Geometria", + "closed": "chiuso", + "center": "Centro", + "perimeter": "Perimetro", + "length": "Lunghezza", + "area": "Area", + "centroid": "Baricentro", + "location": "Posizione", + "metric": "Metrico", + "imperial": "Imperiale" + }, + "geometry": { + "point": "punto", + "vertex": "vertice", + "line": "linea", + "area": "area", + "relation": "relazione" + }, "geocoder": { "search": "Cerca in tutto il mondo...", "no_results_visible": "Nessun risultato nell'area visibile della mappa", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Accesso", - "placeholder": "Sconosciuto", - "types": { - "access": "Generale", - "foot": "A piedi", - "motor_vehicle": "Veicoli a Motore", - "bicycle": "Biciclette", - "horse": "Cavalli" - }, "options": { - "yes": { - "title": "Permesso", - "description": "Accesso consentito a norma di legge; diritto di passaggio" + "designated": { + "description": "Accesso consentito stando ai cartelli stradali od alle norme locali", + "title": "Preferenziale" + }, + "destination": { + "description": "Accesso consentito solo se la destinazione coincide con l'elemento stesso", + "title": "Destinazione" }, "no": { - "title": "Vietato", - "description": "Accesso consentito ai soli autorizzati" + "description": "Accesso consentito ai soli autorizzati", + "title": "Vietato" }, "permissive": { - "title": "Permissivo", - "description": "Accesso consentito fino a quando il proprietario lo consente" + "description": "Accesso consentito fino a quando il proprietario lo consente", + "title": "Permissivo" }, "private": { - "title": "Privato", - "description": "Accesso consentito solo con il permesso individuale del proprietario" - }, - "designated": { - "title": "Preferenziale", - "description": "Accesso consentito stando ai cartelli stradali od alle norme locali" + "description": "Accesso consentito solo con il permesso individuale del proprietario", + "title": "Privato" }, - "destination": { - "title": "Destinazione", - "description": "Accesso consentito solo se la destinazione coincide con l'elemento stesso" + "yes": { + "description": "Accesso consentito a norma di legge; diritto di passaggio", + "title": "Permesso" } + }, + "placeholder": "Sconosciuto", + "types": { + "access": "Generale", + "bicycle": "Biciclette", + "foot": "A piedi", + "horse": "Cavalli", + "motor_vehicle": "Veicoli a Motore" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Indirizzo", "placeholders": { + "city": "Città", + "country": "Nazione", + "district": "Distretto", + "hamlet": "Località", "housename": "Numero civico", "housenumber": "123", - "street": "Strada", - "city": "Città", - "postcode": "Codice postale", "place": "Luogo", - "hamlet": "Località", - "suburb": "Circoscrizione", - "subdistrict": "Sottodistretto", - "district": "Distretto", + "postcode": "Codice postale", "province": "Provincia", "state": "Stato/Regione", - "country": "Nazione" + "street": "Strada", + "subdistrict": "Sottodistretto", + "suburb": "Circoscrizione" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Accesso", "options": { + "both": "Entrambe", "entry": "Ingresso", - "exit": "Uscita", - "both": "Entrambe" + "exit": "Uscita" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Accesso (estate)", "options": { + "both": "Entrambe", "entry": "Ingresso", - "exit": "Uscita", - "both": "Entrambe" + "exit": "Uscita" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Direzione", "options": { - "N": "Nord", "E": "Est", - "S": "Sud", - "W": "Ovest", - "NE": "Nordest", - "SE": "Sudest", - "SW": "Sudovest", - "NW": "Nordovest", - "NNE": "Nord-nordest", "ENE": "Est-nordest", "ESE": "Est-sudest", + "N": "Nord", + "NE": "Nordest", + "NNE": "Nord-nordest", + "NNW": "Nord-nordovest", + "NW": "Nordovest", + "S": "Sud", + "SE": "Sudest", "SSE": "Sud-sudest", "SSW": "Sud-sudovest", - "WSW": "Ovest-sudovest", + "SW": "Sudovest", + "W": "Ovest", "WNW": "Ovest-nordovest", - "NNW": "Nord-nordovest" + "WSW": "Ovest-sudovest" } }, "clock_direction": { "label": "Direzione", "options": { - "clockwise": "Senso orario", - "anticlockwise": "Senso antiorario" + "anticlockwise": "Senso antiorario", + "clockwise": "Senso orario" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Tipo" }, + "content": { + "label": "Contenuto" + }, "country": { "label": "Stato" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Elettrificata", - "placeholder": "Linea Aerea, Rotaia Elettrificata...", "options": { "contact_line": "Linea Aerea di Contatto", + "no": "No", "rail": "Rotaia Elettrificata", - "yes": "Sì (non specificato)", - "no": "No" - } + "yes": "Sì (non specificato)" + }, + "placeholder": "Linea Aerea, Rotaia Elettrificata..." }, "elevation": { "label": "Altitudine" @@ -811,9 +834,9 @@ "label": "Tipo", "options": { "pillar": "Colonnina/Fuoriterra", + "pond": "Stagno", "underground": "Sotterraneo", - "wall": "A muro", - "pond": "Stagno" + "wall": "A muro" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Genere", - "placeholder": "Sconosciuto", "options": { - "male": "Maschile", "female": "Femminile", + "male": "Maschile", "unisex": "Unisex" - } + }, + "placeholder": "Sconosciuto" }, "generator/method": { "label": "Metodo" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Pendenza", "options": { - "up": "Su", - "down": "Giù" + "down": "Giù", + "up": "Su" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Accesso ad Internet", "options": { - "yes": "Sì", "no": "No", - "wlan": "Wifi", + "terminal": "Terminale", "wired": "Via cavo", - "terminal": "Terminale" + "wlan": "Wifi", + "yes": "Sì" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Fogliame", "options": { - "evergreen": "Sempreverde", "deciduous": "Deciduo", - "semi_evergreen": "Semi-sempreverde", + "evergreen": "Sempreverde", + "mixed": "Misto", "semi_deciduous": "Semi-deciduo", - "mixed": "Misto" + "semi_evergreen": "Semi-sempreverde" } }, "leaf_type": { "label": "Tipo di foglia", "options": { "broadleaved": "Latifoglia", - "needleleaved": "Aghifoglia", + "leafless": "Senza foglie", "mixed": "Misto", - "leafless": "Senza foglie" + "needleleaved": "Aghifoglia" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Difficoltà Mountain Bike", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Ghiaia solida/terra battuta, nessun ostacolo, curve ampie", "1": "1: Un po' di terriccio, piccoli ostacoli, curve ampie", @@ -983,22 +1005,22 @@ "4": "4: Terriccio o macigni, tornanti pericolosi", "5": "5: Difficoltà massima, massi sparsi, frane", "6": "6: Impraticabile tranne dai ciclisti più esperti" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Difficoltà IMBA del tracciato", - "placeholder": "Facile, Medio, Difficile...", "options": { "0": "Più semplice (cerchio bianco)", "1": "Semplice (cerchio verde)", "2": "Medio (quadrato blu)", "3": "Difficile (rombo nero)", "4": "Estremamente difficile (rombo nero doppio)" - } + }, + "placeholder": "Facile, Medio, Difficile..." }, "mtb/scale/uphill": { "label": "Difficoltà in salita per mountain bike", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Pendenza media <10%, ghiaia/terra battuta, nessun ostacolo", "1": "1: Pendenza media <15%, ghiaia/terra battuta, ostacoli rari e piccoli", @@ -1006,7 +1028,8 @@ "3": "3: Pendenza media <25%, superficie varia, rami/roccie grandi come un pugno", "4": "4: Pendenza media <30%, in cattive condizioni, rami/roccie grandi", "5": "5: Pendenza estrema, in genere è necessario spigere o sollevare la bici" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nome", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Senso unico", "options": { + "no": "No", "undefined": "No (ipotesi)", - "yes": "Sì", - "no": "No" + "yes": "Sì" } }, "oneway_yes": { "label": "Senso unico", "options": { + "no": "No", "undefined": "Si (ipotesi)", - "yes": "Sì", - "no": "No" + "yes": "Sì" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Tipo", "options": { - "surface": "Superficie", - "multi-storey": "Più piani", - "underground": "Sotterraneo", - "sheds": "Capanno", "carports": "Tettoia", "garage_boxes": "Box garage", - "lane": "Corsia" + "lane": "Corsia", + "multi-storey": "Più piani", + "sheds": "Capanno", + "surface": "Superficie", + "underground": "Sotterraneo" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Difficoltà", - "placeholder": "Facile, Intermedia, Avanzata...", "options": { - "novice": "Neofita (verde)", - "easy": "Facile (blu)", - "intermediate": "Media (rossa)", "advanced": "Avanzata (nera)", + "easy": "Facile (blu)", "expert": "Esperto (arancione)", + "extreme": "Estrema (equipaggiamento da scalata richiesto)", "freeride": "Fuoripista (gialla)", - "extreme": "Estrema (equipaggiamento da scalata richiesto)" - } + "intermediate": "Media (rossa)", + "novice": "Neofita (verde)" + }, + "placeholder": "Facile, Intermedia, Avanzata..." }, "piste/grooming": { "label": "Terreno", "options": { - "classic": "Classico", - "mogul": "Gobbe", "backcountry": "Fuoripista", + "classic": "Classico", "classic+skating": "Classico e sci di fondo", + "mogul": "Gobbe", "scooter": "Scooter/Motoslitta", "skating": "Sci di fondo" } @@ -1097,14 +1120,14 @@ "label": "Tipo", "options": { "downhill": "Discesa libera", + "hike": "Escursionismo", + "ice_skate": "Pattinaggio sul ghiaccio", "nordic": "Combinata nordica", + "playground": "Parco giochi", "skitour": "Sci alpinismo", "sled": "Slittino", - "hike": "Escursionismo", "sleigh": "Slitta", - "ice_skate": "Pattinaggio sul ghiaccio", - "snow_park": "Snow Park", - "playground": "Parco giochi" + "snow_park": "Snow Park" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Tipo" }, + "power_supply": { + "label": "Alimentazione" + }, "railway": { "label": "Tipo" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Difficoltà escurione", - "placeholder": " Escursionismo in Montagna , Sentiero Alpino...", "options": { - "hiking": "T1: Escursionismo", - "mountain_hiking": "T2: Escursionismo in montagna ", - "demanding_mountain_hiking": "T3: Escursionismo impegnativo in montagna", "alpine_hiking": "T4: Sentiero alpino", "demanding_alpine_hiking": "T5: Sentiero alpino impegnativo", - "difficult_alpine_hiking": "T6: Sentiero alpino difficile" - } + "demanding_mountain_hiking": "T3: Escursionismo impegnativo in montagna", + "difficult_alpine_hiking": "T6: Sentiero alpino difficile", + "hiking": "T1: Escursionismo", + "mountain_hiking": "T2: Escursionismo in montagna " + }, + "placeholder": " Escursionismo in Montagna , Sentiero Alpino..." + }, + "sanitary_dump_station": { + "label": "Smaltimento reflui" }, "seasonal": { "label": "Stagionale" @@ -1173,17 +1202,17 @@ "service/bicycle/chain_tool": { "label": "Smagliacatene", "options": { + "no": "No", "undefined": "No (ipotesi)", - "yes": "Sì", - "no": "No" + "yes": "Sì" } }, "service/bicycle/pump": { "label": "Pompa", "options": { + "no": "No", "undefined": "No (ipotesi)", - "yes": "Sì", - "no": "No" + "yes": "Sì" } }, "service_rail": { @@ -1207,29 +1236,29 @@ }, "smoking": { "label": "Zona fumatori", - "placeholder": "No, Separato, Sì...", "options": { - "no": "Vietato fumare", - "separated": "In zone fumatori, non fisicamente isolate", + "dedicated": "Dedicato ai soli fumatori (es. circolo fumatori)", "isolated": "In zone fumatori, fisicamente isolate", + "no": "Vietato fumare", "outside": "Permesso all'esterno", - "yes": "Permesso ovunque", - "dedicated": "Dedicato ai soli fumatori (es. circolo fumatori)" - } + "separated": "In zone fumatori, non fisicamente isolate", + "yes": "Permesso ovunque" + }, + "placeholder": "No, Separato, Sì..." }, "smoothness": { "label": "Percorribilità", - "placeholder": "Rotelle, Ruote, Fuoristrada...", "options": { + "bad": " Ruote robuste: biciclette per cicloturismo, auto, risciò e simili", "excellent": "Rotelle: pattini in linea, skateboard e simili", "good": "Ruote sottili: biciclette da corsa e simili", + "horrible": "Fuoristrada: veicoli fuoristrada pesanti e simili. ", + "impassable": "Nessun veicolo ruotato", "intermediate": "Ruote: biciclette da città, sedie a rotelle, scooter e simili", - "bad": " Ruote robuste: biciclette per cicloturismo, auto, risciò e simili", "very_bad": "Altezza da terra elevata: veicoli fuoristrada leggeri e simili", - "horrible": "Fuoristrada: veicoli fuoristrada pesanti e simili. ", - "very_horrible": "Fuoristrada speciali: trattori agricoli, quad-bike, autoblindo e simili", - "impassable": "Nessun veicolo ruotato" - } + "very_horrible": "Fuoristrada speciali: trattori agricoli, quad-bike, autoblindo e simili" + }, + "placeholder": "Rotelle, Ruote, Fuoristrada..." }, "social_facility_for": { "label": "Tipo di utenza", @@ -1249,14 +1278,14 @@ }, "structure": { "label": "Struttura", - "placeholder": "Sconosciuto", "options": { "bridge": "Ponte", - "tunnel": "Tunnel", - "embankment": "Argine", "cutting": "Infossato", - "ford": "Guado" - } + "embankment": "Argine", + "ford": "Guado", + "tunnel": "Tunnel" + }, + "placeholder": "Sconosciuto" }, "studio_type": { "label": "Tipo" @@ -1275,20 +1304,20 @@ }, "takeaway": { "label": "Asporto", - "placeholder": "Sì, no, solo da asporto...", "options": { - "yes": "Sì", "no": "No", - "only": "Solo da asporto" - } + "only": "Solo da asporto", + "yes": "Sì" + }, + "placeholder": "Sì, no, solo da asporto..." }, "toilets/disposal": { "label": "Smaltimento", "options": { - "flush": "Sciaquone", - "pitlatrine": "Fossa/Latrina", + "bucket": "Contenitore", "chemical": "Chimico", - "bucket": "Contenitore" + "flush": "Sciaquone", + "pitlatrine": "Fossa/Latrina" } }, "tourism": { @@ -1299,26 +1328,26 @@ }, "tracktype": { "label": "Tipo di strada", - "placeholder": "Solido, Soprattutto Solido, Morbido...", "options": { "grade1": "Solido: strada asfaltata o con superficie dura e ben compattata", "grade2": "Soprattutto solido: superficie in ghiaia o di terra/sabbia ben compattata", "grade3": "Superficie mista di materiali duri e cedevoli", "grade4": "Soprattutto Morbido: terra, sabbia, erba mista ad una componente dura", "grade5": "Morbido: erba, sabbia o terreno" - } + }, + "placeholder": "Solido, Soprattutto Solido, Morbido..." }, "trail_visibility": { "label": "Visibilità del Tracciato", - "placeholder": "Eccellente, Buona, Cattiva...", "options": { + "bad": "Cattiva: tracciato visibile a stento", "excellent": "Eccellente: tracciato evidente o segnavia sempre presenti", "good": "Buona: segnavia visibili, ma talvolta difficile da individuare", - "intermediate": "Media: tracciato non sempre visibile", - "bad": "Cattiva: tracciato visibile a stento", "horrible": "Orribile: spesso non tracciato", + "intermediate": "Media: tracciato non sempre visibile", "no": "Nessuna: perlopiù non tracciato" - } + }, + "placeholder": "Eccellente, Buona, Cattiva..." }, "trees": { "label": "Alberi" @@ -1332,6 +1361,9 @@ "water": { "label": "Tipo" }, + "water_point": { + "label": "Approvvigionamento Idrico" + }, "waterway": { "label": "Tipo" }, @@ -1473,6 +1505,10 @@ "name": "Stazione di riparazione biciclette", "terms": "riparazione,bibiclette,meccanico,bici,cicli" }, + "amenity/biergarten": { + "name": "Birreria all'aperto", + "terms": "birreria,distesa" + }, "amenity/boat_rental": { "name": "Noleggio barche", "terms": "noleggio barche,noleggio,barche,porto,negozio" @@ -1520,6 +1556,9 @@ "name": "Orologio", "terms": "ora,orario,orologio" }, + "amenity/college": { + "name": "Area di un College" + }, "amenity/community_centre": { "name": "Centro sociale" }, @@ -1662,6 +1701,10 @@ "name": "Ristorante", "terms": "bar,caffetteria,caffè,ristorante self-service,braceria,trattoria,negozio di ciambelle,bettola,griglieria,venditore di hamburger,venditore di hotdog,pizzeria" }, + "amenity/sanitary_dump_station": { + "name": "Smaltimento reflui camper", + "terms": "smaltimento,rifiuti,toilet,wc,camper,escrementi" + }, "amenity/school": { "name": "Area Scolastica", "terms": "scuola,accademia,alma mater,lavagna,collegio,dipartimento,disciplina,classe,facoltà,aula,istituto,istituzione,riformatorio,scuola,edificio scolastico,seminario,università" @@ -1678,6 +1721,9 @@ "name": "Banco alimentare", "terms": "mensa del povero,mensa caritas" }, + "amenity/social_facility/group_home": { + "name": "Casa di riposo per anziani" + }, "amenity/social_facility/homeless_shelter": { "name": "Dormitorio", "terms": "ricovero,senzadimora,barboni,senza fissa dimora,senza dimora,senza casa" @@ -1833,6 +1879,9 @@ "name": "Chiesa", "terms": "cristiano,abbazia,basilica,cattedrale,presbiterio,cappella,chiesa,casa di Dio,luogo di preghiera,luogo di culto,missione,oratorio,parrocchia,sacello,edicola votiva,tabernacolo,tempio" }, + "building/college": { + "name": "Edificio di un College" + }, "building/commercial": { "name": "Edificio commerciale", "terms": "Edificio commerciale" @@ -1885,6 +1934,9 @@ "name": "Edificio industriale", "terms": "Edifico industriale" }, + "building/kindergarten": { + "name": "Edificio di una Scuola d'Infanzia" + }, "building/public": { "name": "Edificio pubblico", "terms": "comunita,edificio comunitario,comunità" @@ -1953,6 +2005,9 @@ "name": "Carpentiere", "terms": "carpenteria,legno" }, + "craft/carpet_layer": { + "name": "Posatori di Moquette" + }, "craft/caterer": { "name": "Fornitore di catering" }, @@ -1960,6 +2015,9 @@ "name": "Costruttore di orologi", "terms": "orologi" }, + "craft/confectionery": { + "name": "Negozio per dolciumi" + }, "craft/dressmaker": { "name": "Sartoria", "terms": "sarto,merceria,vestiti su misura" @@ -1978,6 +2036,9 @@ "craft/handicraft": { "name": "Artigiano" }, + "craft/insulator": { + "name": "Isolanti" + }, "craft/jeweler": { "name": "Gioielliere", "terms": "gioielli,bigiotteria,orafo,gioielleria" @@ -2004,6 +2065,9 @@ "craft/plumber": { "name": "Idraulico" }, + "craft/saddler": { + "name": "Sellaio" + }, "craft/sailmaker": { "name": "Velaio" }, @@ -2024,6 +2088,9 @@ "craft/stonemason": { "name": "Tagliapietre" }, + "craft/sweep": { + "name": "Spazzacamino" + }, "craft/tailor": { "name": "Sarto" }, @@ -2040,6 +2107,9 @@ "name": "Orologiaio", "terms": "orologi,riparazione" }, + "craft/window_construction": { + "name": "Infissi" + }, "craft/winery": { "name": "Cantina vinicola", "terms": "azienda vinicola, azienda vitivinicola" @@ -2103,6 +2173,9 @@ "golf/rough": { "name": "Irregolare, grezzo" }, + "golf/tee": { + "name": "Tee di Partenza" + }, "golf/water_hazard": { "name": "Ostacolo d'acqua", "terms": "buca,acqua,golf,ostacolo" @@ -2519,10 +2592,18 @@ "name": "Faro", "terms": "Faro" }, + "man_made/mast": { + "name": "Antenna radio", + "terms": "antenna,torre,wireless,radio,telefonia,antenne" + }, "man_made/observation": { "name": "Torre di osservazione", "terms": "torre,osservazione,osservatorio,piattaforma,osservativa,antincendio,panorama" }, + "man_made/petroleum_well": { + "name": "Pozzo petrolifero", + "terms": "petrolio,bitume,pozzo" + }, "man_made/pier": { "name": "Molo", "terms": " Passerella " @@ -2531,6 +2612,14 @@ "name": "Conduttura", "terms": "Conduttura" }, + "man_made/silo": { + "name": "Silo", + "terms": "silos,cisterna,botte" + }, + "man_made/storage_tank": { + "name": "Cisterna", + "terms": "silos,cisterna,botte,contenitore" + }, "man_made/survey_point": { "name": "Punto geodetico", "terms": "Punto geodetico o altra stazione fissa" @@ -2741,6 +2830,10 @@ "name": "Città", "terms": "Città" }, + "place/farm": { + "name": "Azienda agricola", + "terms": "fattoria,campi,campo,agricoltura,agricolo,contadino" + }, "place/hamlet": { "name": "Paese", "terms": "Borgo" @@ -2914,6 +3007,9 @@ "name": "Negozio di articoli di bellezza", "terms": "Salone di bellezza" }, + "shop/bed": { + "name": "Negozio di Materassi" + }, "shop/beverages": { "name": "Negozio di bevande", "terms": "Negozio di bevande" @@ -2938,6 +3034,9 @@ "name": "Macellaio", "terms": "Macellaio" }, + "shop/candles": { + "name": "Negozio di Candele" + }, "shop/car": { "name": "Concessionario", "terms": "Concessionaria auto" @@ -2977,6 +3076,9 @@ "name": "Minimarket", "terms": "Drogheria" }, + "shop/copyshop": { + "name": "Copisteria" + }, "shop/cosmetics": { "name": "Negozio di cosmetici" }, @@ -3349,6 +3451,10 @@ "name": "Canale di scolo", "terms": " Canale di scolo " }, + "waterway/fuel": { + "name": "Stazione di rifornimento marittima", + "terms": "distributore,gas, benzina,diesel,gpl,carburante,benzinaio,gasolio,nafta,barca,barche" + }, "waterway/river": { "name": "Fiume", "terms": "ruscello,affluente,corso d'acqua,torrente,estuario,rivolo,rigagnolo,immissario" @@ -3357,6 +3463,10 @@ "name": "Argine", "terms": "Argine" }, + "waterway/sanitary_dump_station": { + "name": "Smaltimento reflui marittimi", + "terms": "smaltimento,rifiuti,toilet,wc,camper,escrementi" + }, "waterway/stream": { "name": "Torrente", "terms": "fiumiciattolo,ramo,ruscello,corso,torrente,corrente,deriva,flusso,rivolo,rigagnolo" diff --git a/vendor/assets/iD/iD/locales/ja.json b/vendor/assets/iD/iD/locales/ja.json index 272f143a5..40ea8a4e8 100644 --- a/vendor/assets/iD/iD/locales/ja.json +++ b/vendor/assets/iD/iD/locales/ja.json @@ -239,7 +239,6 @@ "commit": { "title": "編集結果を保存", "description_placeholder": "貢献のための簡単な解説", - "message_label": "コミットメッセージ", "upload_explanation": "あなたがアップロードした編集内容は、OpenStreetMapを利用しているすべてのユーザが閲覧できるようになります。", "upload_explanation_with_user": "編集した内容を {user} アカウントでアップロードし、OpenStreetMapを利用しているすべてのユーザが閲覧できるようにします。", "save": "Save", @@ -568,39 +567,39 @@ "fields": { "access": { "label": "通行制限", - "placeholder": "その他", - "types": { - "access": "一般", - "foot": "歩行者", - "motor_vehicle": "オートバイ", - "bicycle": "自転車", - "horse": "乗馬" - }, "options": { - "yes": { - "title": "通行可", - "description": "法律上の許可あり; 正当利用" + "designated": { + "description": "特定の地方条例や標識等で通行制限が行われている", + "title": "特定種の通行禁止" + }, + "destination": { + "description": "特定の目的地へ移動する用途でのみ通行が許可されている", + "title": "目的外通行の禁止" }, "no": { - "title": "制限あり", - "description": "一般の通行が許可されていない" + "description": "一般の通行が許可されていない", + "title": "制限あり" }, "permissive": { - "title": "所有者許諾あり", - "description": "所有者が通行制限しない限り通行可" + "description": "所有者が通行制限しない限り通行可", + "title": "所有者許諾あり" }, "private": { - "title": "私有", - "description": "通行時には所有者の許可を得る必要がある" - }, - "designated": { - "title": "特定種の通行禁止", - "description": "特定の地方条例や標識等で通行制限が行われている" + "description": "通行時には所有者の許可を得る必要がある", + "title": "私有" }, - "destination": { - "title": "目的外通行の禁止", - "description": "特定の目的地へ移動する用途でのみ通行が許可されている" + "yes": { + "description": "法律上の許可あり; 正当利用", + "title": "通行可" } + }, + "placeholder": "その他", + "types": { + "access": "一般", + "bicycle": "自転車", + "foot": "歩行者", + "horse": "乗馬", + "motor_vehicle": "オートバイ" } }, "access_simple": { @@ -613,19 +612,19 @@ "address": { "label": "住所", "placeholders": { + "city": "市町村名", + "country": "郡", + "district": "District", + "hamlet": "Hamlet", "housename": "地番", "housenumber": "123", - "street": "所属する街路名", - "city": "市町村名", - "postcode": "郵便番号", "place": "地名", - "hamlet": "Hamlet", - "suburb": "区", - "subdistrict": "Subdistrict", - "district": "District", + "postcode": "郵便番号", "province": "県", "state": "州", - "country": "郡" + "street": "所属する街路名", + "subdistrict": "Subdistrict", + "suburb": "区" } }, "admin_level": { @@ -637,9 +636,9 @@ "aerialway/access": { "label": "乗降場所", "options": { + "both": "両方", "entry": "入口", - "exit": "出口", - "both": "両方" + "exit": "出口" } }, "aerialway/bubble": { @@ -663,9 +662,9 @@ "aerialway/summer/access": { "label": "乗降場所(夏季)", "options": { + "both": "両方", "entry": "入口", - "exit": "出口", - "both": "両方" + "exit": "出口" } }, "aeroway": { @@ -714,29 +713,29 @@ "cardinal_direction": { "label": "方向", "options": { - "N": "北", "E": "東", - "S": "南", - "W": "西", - "NE": "北東", - "SE": "南東", - "SW": "南西", - "NW": "北西", - "NNE": "北北東", "ENE": "東北東", "ESE": "東南東", + "N": "北", + "NE": "北東", + "NNE": "北北東", + "NNW": "北北西", + "NW": "北西", + "S": "南", + "SE": "南東", "SSE": "南南東", "SSW": "南南西", - "WSW": "西南西", + "SW": "南西", + "W": "西", "WNW": "西北西", - "NNW": "北北西" + "WSW": "西南西" } }, "clock_direction": { "label": "方向", "options": { - "clockwise": "右回り", - "anticlockwise": "左回り" + "anticlockwise": "左回り", + "clockwise": "右回り" } }, "collection_times": { @@ -780,13 +779,13 @@ }, "electrified": { "label": "電化状態", - "placeholder": "架線、集電レール...", "options": { "contact_line": "架線", + "no": "非電化", "rail": "集電レール", - "yes": "電化(未定義)", - "no": "非電化" - } + "yes": "電化(未定義)" + }, + "placeholder": "架線、集電レール..." }, "elevation": { "label": "標高" @@ -811,9 +810,9 @@ "label": "タイプ", "options": { "pillar": "柱/地上", + "pond": "池", "underground": "地下", - "wall": "壁", - "pond": "池" + "wall": "壁" } }, "fixme": { @@ -854,12 +853,12 @@ }, "gender": { "label": "性別", - "placeholder": "不明", "options": { - "male": "男性", "female": "女性", + "male": "男性", "unisex": "性別区分なし" - } + }, + "placeholder": "不明" }, "generator/method": { "label": "方式" @@ -900,8 +899,8 @@ "incline_steps": { "label": "傾斜", "options": { - "up": "上", - "down": "下" + "down": "下", + "up": "上" } }, "information": { @@ -910,11 +909,11 @@ "internet_access": { "label": "インターネット環境", "options": { - "yes": "有り", "no": "無し", - "wlan": "Wi-Fi", + "terminal": "情報端末", "wired": "有線LAN", - "terminal": "情報端末" + "wlan": "Wi-Fi", + "yes": "有り" } }, "lamp_type": { @@ -933,20 +932,20 @@ "leaf_cycle": { "label": "葉の季節変化", "options": { - "evergreen": "常緑樹", "deciduous": "落葉樹", - "semi_evergreen": "ほぼ常緑樹", + "evergreen": "常緑樹", + "mixed": "混合", "semi_deciduous": "ほぼ落葉樹", - "mixed": "混合" + "semi_evergreen": "ほぼ常緑樹" } }, "leaf_type": { "label": "葉の種類", "options": { "broadleaved": "広葉樹", - "needleleaved": "針葉樹", + "leafless": "葉なし", "mixed": "混合", - "leafless": "葉なし" + "needleleaved": "針葉樹" } }, "leisure": { @@ -974,7 +973,6 @@ }, "mtb/scale": { "label": "マウンテンバイク難易度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: 硬い砂利/圧縮土、障害物なし、緩いカーブ", "1": "1: いくらか緩んだ表面、小さな障害物、緩いカーブ", @@ -983,22 +981,22 @@ "4": "4: 緩んだ地面や杭、危険なヘアピンカーブ", "5": "5: 最大の難しさ、漂礫地や地滑り", "6": "6: 最上級のマウンテンバイクでなければ乗れない" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBAトレイル難易度", - "placeholder": "初級者、中級者、上級者...", "options": { "0": "非常に容易 (白い円)", "1": "容易 (緑色の円)", "2": "中程度 (青い四角形)", "3": "困難 (黒いひし形)", "4": "非常に困難 (黒いひし形2つ)" - } + }, + "placeholder": "初級者、中級者、上級者..." }, "mtb/scale/uphill": { "label": "マウンテンバイク登山難易度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: 平均10%未満の傾斜、地面は舗装/圧縮、障害物なし", "1": "1: 平均15%未満の傾斜、地面は舗装/圧縮、小さな障害物あり", @@ -1006,7 +1004,8 @@ "3": "3: 平均25%未満の傾斜、変化のある地面、それなりの石や枝がある", "4": "4: 平均30%未満の傾斜、地面状態は良くない、大きい岩や木の枝がある", "5": "5: 非常に険しく、通常マウンテンバイクを押すか運ぶかする必要がある" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "名称", @@ -1027,17 +1026,17 @@ "oneway": { "label": "一方通行", "options": { + "no": "いいえ", "undefined": "おそらくいいえ", - "yes": "はい", - "no": "いいえ" + "yes": "はい" } }, "oneway_yes": { "label": "一方通行", "options": { + "no": "いいえ", "undefined": "おそらくはい", - "yes": "はい", - "no": "いいえ" + "yes": "はい" } }, "opening_hours": { @@ -1056,13 +1055,13 @@ "parking": { "label": "タイプ", "options": { - "surface": "地面", - "multi-storey": "マルチレベル", - "underground": "地下", - "sheds": "納屋", "carports": "カーポート", "garage_boxes": "箱型ガレージ", - "lane": "路側帯" + "lane": "路側帯", + "multi-storey": "マルチレベル", + "sheds": "納屋", + "surface": "地面", + "underground": "地下" } }, "phone": { @@ -1071,24 +1070,24 @@ }, "piste/difficulty": { "label": "難易度", - "placeholder": "初心者向け、普通、上級者向け", "options": { - "novice": "初心者向け (教習用)", - "easy": "簡単 (緑色の円)", - "intermediate": "普通 (青色の四角)", "advanced": "上級 (黒色のひし形)", + "easy": "簡単 (緑色の円)", "expert": "エキスパート (黒色のひし形2つ)", + "extreme": "エクストリーム (登山装備要)", "freeride": "フリーライド (コース外)", - "extreme": "エクストリーム (登山装備要)" - } + "intermediate": "普通 (青色の四角)", + "novice": "初心者向け (教習用)" + }, + "placeholder": "初心者向け、普通、上級者向け" }, "piste/grooming": { "label": "整備状況", "options": { - "classic": "クラシック", - "mogul": "モーグル", "backcountry": "バックカントリー", + "classic": "クラシック", "classic+skating": "クラシックアンドスケーティング", + "mogul": "モーグル", "scooter": "スクーター/スノーモービル", "skating": "スケーティング" } @@ -1097,14 +1096,14 @@ "label": "種別", "options": { "downhill": "ダウンヒル", + "hike": "ハイキング", + "ice_skate": "アイススケート", "nordic": "ノルディック", + "playground": "児童公園", "skitour": "スキーツアー", "sled": "小型そり", - "hike": "ハイキング", "sleigh": "そり", - "ice_skate": "アイススケート", - "snow_park": "スキー場", - "playground": "児童公園" + "snow_park": "スキー場" } }, "place": { @@ -1154,15 +1153,15 @@ }, "sac_scale": { "label": "ハイキングの難易度", - "placeholder": "山岳ハイキング, 高地登山…", "options": { - "hiking": "T1: ハイキング", - "mountain_hiking": "T2: 山岳ハイキング", - "demanding_mountain_hiking": "T3: 中難度の山岳ハイキング", "alpine_hiking": "T4: 高地登山", "demanding_alpine_hiking": "T5: 中難度の高地登山", - "difficult_alpine_hiking": "T6: 高難度の高地登山" - } + "demanding_mountain_hiking": "T3: 中難度の山岳ハイキング", + "difficult_alpine_hiking": "T6: 高難度の高地登山", + "hiking": "T1: ハイキング", + "mountain_hiking": "T2: 山岳ハイキング" + }, + "placeholder": "山岳ハイキング, 高地登山…" }, "seasonal": { "label": "季節限定" @@ -1173,25 +1172,26 @@ "service/bicycle/chain_tool": { "label": "チェーンツール", "options": { + "no": "いいえ", "undefined": "おそらくいいえ", - "yes": "はい", - "no": "いいえ" + "yes": "はい" } }, "service/bicycle/pump": { "label": "エアパルプ", "options": { + "no": "無し", "undefined": "たぶん無し", - "yes": "有り", - "no": "無し" + "yes": "有り" } }, "service_rail": { "label": "サービスの種類", "options": { + "crossover": "クロスオーバー", + "siding": "側線", "spur": "引き込み線", - "yard": "車両基地", - "siding": "側線" + "yard": "車両基地" } }, "shelter": { @@ -1208,29 +1208,29 @@ }, "smoking": { "label": "喫煙の可否", - "placeholder": "いいえ、分けた、はい...", "options": { - "no": "禁煙", - "separated": "室内喫煙(未分煙)", + "dedicated": "喫煙者向け(例: スモーカーズクラブ)", "isolated": "室内喫煙(分煙)", + "no": "禁煙", "outside": "屋外のみ喫煙可", - "yes": "喫煙可", - "dedicated": "喫煙者向け(例: スモーカーズクラブ)" - } + "separated": "室内喫煙(未分煙)", + "yes": "喫煙可" + }, + "placeholder": "いいえ、分けた、はい..." }, "smoothness": { "label": "スムーズさ", - "placeholder": "ローラースケートなど, 二輪車・四輪車, オフロード車…", "options": { + "bad": "二輪車・四輪車:マウンテンバイク・自動車・リキシャ", "excellent": "ローラースケート・スケートボード", "good": "レース用自転車", + "horrible": "オフロード:重オフロード車", + "impassable": "通りぬけ不可 / 車輌・自転車不可", "intermediate": "二輪車など:シティバイク・車いす・スクーター", - "bad": "二輪車・四輪車:マウンテンバイク・自動車・リキシャ", "very_bad": "最低地上高が高い:軽クロカン車", - "horrible": "オフロード:重オフロード車", - "very_horrible": "特殊オフロード車:トラクター・ATV(全地形対応車)", - "impassable": "通りぬけ不可 / 車輌・自転車不可" - } + "very_horrible": "特殊オフロード車:トラクター・ATV(全地形対応車)" + }, + "placeholder": "ローラースケートなど, 二輪車・四輪車, オフロード車…" }, "social_facility_for": { "label": "施設の対象者", @@ -1250,14 +1250,14 @@ }, "structure": { "label": "構造", - "placeholder": "不明", "options": { "bridge": "橋", - "tunnel": "トンネル", - "embankment": "土手", "cutting": "切り通し", - "ford": "洗い越し" - } + "embankment": "土手", + "ford": "洗い越し", + "tunnel": "トンネル" + }, + "placeholder": "不明" }, "studio_type": { "label": "タイプ" @@ -1276,20 +1276,20 @@ }, "takeaway": { "label": "持ち帰り", - "placeholder": "可、不可、持ち帰りのみ", "options": { - "yes": "可能", "no": "不可能", - "only": "持ち帰りのみ" - } + "only": "持ち帰りのみ", + "yes": "可能" + }, + "placeholder": "可、不可、持ち帰りのみ" }, "toilets/disposal": { "label": "汚物処理", "options": { - "flush": "水洗式", - "pitlatrine": "汲み取り式", + "bucket": "バケツ汲み出し", "chemical": "化学処理", - "bucket": "バスケットゴール" + "flush": "水洗式", + "pitlatrine": "汲み取り式" } }, "tourism": { @@ -1300,26 +1300,26 @@ }, "tracktype": { "label": "トラック種別", - "placeholder": "硬質, 大部分が硬質, 軟質…", "options": { "grade1": "硬質: 舗装もしくは煉瓦・砕石の締固め路盤", "grade2": "大部分が硬質: 砂利・岩と柔らかい物質の混合", "grade3": "硬軟の物質の混合", "grade4": "大部分が軟質: 土/砂/草と硬い物質の混合", "grade5": "軟質: 土/砂/草" - } + }, + "placeholder": "硬質, 大部分が硬質, 軟質…" }, "trail_visibility": { "label": "道の可視度", - "placeholder": "優・良・悪…", "options": { + "bad": "悪: 道はなかったりわからなかったりで,かつ目印なし", "excellent": "優: すべて明確な道・目印あり", "good": "良: 判別可能な目印あり(場合によっては目印の探索が必要)", - "intermediate": "中間: 道の大部分は分かるが目印は少ない", - "bad": "悪: 道はなかったりわからなかったりで,かつ目印なし", "horrible": "劣悪: ほとんど道がなく定位技量が必要", + "intermediate": "中間: 道の大部分は分かるが目印は少ない", "no": "不可: 道はなく,高度な定位技量が必要" - } + }, + "placeholder": "優・良・悪…" }, "trees": { "label": "木の数" @@ -1662,6 +1662,10 @@ "name": "リサイクルボックス", "terms": "リサイクルボックス" }, + "amenity/register_office": { + "name": "登記所", + "terms": "登記所, 法人登記, 登録所" + }, "amenity/restaurant": { "name": "レストラン", "terms": "レストラン,食堂" @@ -2451,7 +2455,8 @@ "terms": "人工林, 二次林, 営林, 保安林, 鉄道林" }, "landuse/garages": { - "name": "車庫" + "name": "車庫", + "terms": "ガレージ" }, "landuse/grass": { "name": "草地", @@ -2525,6 +2530,9 @@ "name": "マリーナ", "terms": "マリーナ, ヨットハーバー" }, + "leisure/nature_reserve": { + "name": "自然保護区" + }, "leisure/park": { "name": "公園", "terms": "公園" @@ -2685,6 +2693,9 @@ "name": "砂浜", "terms": "砂浜, ビーチ" }, + "natural/cave_entrance": { + "name": "洞穴入口" + }, "natural/cliff": { "name": "崖", "terms": "崖, 断崖" @@ -3093,10 +3104,22 @@ "name": "コンピューター店", "terms": "コンピューター店, パソコン店" }, + "shop/confectionery": { + "name": "菓子屋" + }, "shop/convenience": { "name": "コンビニエンスストア", "terms": "コンビニエンスストア, コンビニ" }, + "shop/copyshop": { + "name": "コピー店" + }, + "shop/cosmetics": { + "name": "化粧品店" + }, + "shop/curtain": { + "name": "カーテン店" + }, "shop/deli": { "name": "惣菜屋", "terms": "惣菜屋, 弁当屋" @@ -3109,10 +3132,16 @@ "name": "日曜大工用品店", "terms": "日曜大工用品店, 工具店, DIYショップ, ホームセンター" }, + "shop/dry_cleaning": { + "name": "クリーニング店" + }, "shop/electronics": { "name": "家電販売店", "terms": "家電販売店" }, + "shop/fabric": { + "name": "ファブリック店" + }, "shop/farm": { "name": "農産物直売所", "terms": "農産物直売所" @@ -3189,10 +3218,16 @@ "name": "CD/レコード店", "terms": "CD店, レコード店" }, + "shop/musical_instrument": { + "name": "楽器店" + }, "shop/optician": { "name": "メガネ", "terms": "メガネ,眼鏡,メガネ屋,眼鏡屋" }, + "shop/pawnbroker": { + "name": "質店" + }, "shop/pet": { "name": "ペットショップ", "terms": "ペット売り場,ペット,家禽,ペットショップ" @@ -3201,10 +3236,16 @@ "name": "写真屋", "terms": "写真屋" }, + "shop/pyrotechnics": { + "name": "花火店" + }, "shop/seafood": { "name": "魚屋", "terms": "海鮮食品店,魚屋,魚市場" }, + "shop/second_hand": { + "name": "リサイクルショップ" + }, "shop/shoes": { "name": "靴店", "terms": "靴店" @@ -3225,6 +3266,16 @@ "name": "仕立て屋", "terms": "仕立て屋,テイラー,洋裁店" }, + "shop/tattoo": { + "name": "タトゥースタジオ" + }, + "shop/tea": { + "name": "茶店", + "terms": "茶舗" + }, + "shop/tobacco": { + "name": "煙草屋" + }, "shop/toys": { "name": "玩具店", "terms": "玩具店, おもちゃ屋" @@ -3321,6 +3372,18 @@ "name": "動物園", "terms": "動物園" }, + "traffic_calming/bump": { + "name": "減速帯" + }, + "traffic_calming/hump": { + "name": "ハンプ" + }, + "traffic_calming/rumble_strip": { + "name": "ランブルストリップ" + }, + "traffic_calming/table": { + "name": "横断歩道橋" + }, "type/boundary": { "name": "境界", "terms": "境界, 境界線" diff --git a/vendor/assets/iD/iD/locales/kn.json b/vendor/assets/iD/iD/locales/kn.json index 6b10be912..3e336849e 100644 --- a/vendor/assets/iD/iD/locales/kn.json +++ b/vendor/assets/iD/iD/locales/kn.json @@ -152,7 +152,6 @@ "commit": { "title": "ಬದಲಾವಣೆಯನ್ನು ಉಳಿಸು", "description_placeholder": "ನಿಮ್ಮ ಕೊಡುಗೆಗಳ ಸಂಕ್ಷಿಪ್ತ ವಿವರಣೆ", - "message_label": "ಕಮಿಟ್ ಸಂದೇಶ", "save": "ಉಳಿಸು", "cancel": "ರದ್ದು ಮಾಡು", "changes": "{count} ಬದಲಾವಣೆಗಳು", @@ -330,21 +329,16 @@ "fields": { "access": { "label": "ಪ್ರವೇಶ", - "placeholder": "ತಿಳಿಯದ", - "types": { - "access": "ಸಾಧಾರಣ", - "foot": "ಕಾಲು", - "motor_vehicle": "ಮೋಟಾರ್ ವಾಹನ", - "bicycle": "ಸೈಕಲ್", - "horse": "ಕುದುರೆ" - }, "options": { - "yes": { - "title": "ಅನುಮತಿಸು" + "designated": { + "title": "ನಿಯೋಜಿತ" + }, + "destination": { + "title": "ತಲಪುದಾಣ" }, "no": { - "title": "ನಿಷೇಧಿಸಲಾಗಿದೆ", - "description": "ಸಾರ್ವಜನಿಕ ಪ್ರವೇಶಕ್ಕೆ ಅನುಮತಿ ಇಲ್ಲ" + "description": "ಸಾರ್ವಜನಿಕ ಪ್ರವೇಶಕ್ಕೆ ಅನುಮತಿ ಇಲ್ಲ", + "title": "ನಿಷೇಧಿಸಲಾಗಿದೆ" }, "permissive": { "title": "ಅನುಮತಿದಾಯಕ" @@ -352,12 +346,17 @@ "private": { "title": "ಖಾಸಗಿ" }, - "designated": { - "title": "ನಿಯೋಜಿತ" - }, - "destination": { - "title": "ತಲಪುದಾಣ" + "yes": { + "title": "ಅನುಮತಿಸು" } + }, + "placeholder": "ತಿಳಿಯದ", + "types": { + "access": "ಸಾಧಾರಣ", + "bicycle": "ಸೈಕಲ್", + "foot": "ಕಾಲು", + "horse": "ಕುದುರೆ", + "motor_vehicle": "ಮೋಟಾರ್ ವಾಹನ" } }, "access_simple": { @@ -370,19 +369,19 @@ "address": { "label": "ವಿಳಾಸ", "placeholders": { + "city": "ನಗರ", + "country": "ದೇಶ", + "district": "ಜಿಲ್ಲೆ", + "hamlet": "ಕೊಪ್ಪಲು", "housename": "ಮನೆ ಹೆಸರು", "housenumber": "123", - "street": "ಬೀದಿ", - "city": "ನಗರ", - "postcode": "ಅಂಚೆ ಸಂಖ್ಯೆ", "place": "ಸ್ಥಳ", - "hamlet": "ಕೊಪ್ಪಲು", - "suburb": "ಉಪನಗರ", - "subdistrict": "ಉಪಜಿಲ್ಲೆ", - "district": "ಜಿಲ್ಲೆ", + "postcode": "ಅಂಚೆ ಸಂಖ್ಯೆ", "province": "ಪ್ರಾಂತ್ಯ", "state": "ರಾಜ್ಯ", - "country": "ದೇಶ" + "street": "ಬೀದಿ", + "subdistrict": "ಉಪಜಿಲ್ಲೆ", + "suburb": "ಉಪನಗರ" } }, "admin_level": { @@ -394,9 +393,9 @@ "aerialway/access": { "label": "ಪ್ರವೇಶ", "options": { + "both": "ಎರಡೂ", "entry": "ಒಳಗೆ", - "exit": "ಹೊರಗೆ", - "both": "ಎರಡೂ" + "exit": "ಹೊರಗೆ" } }, "aerialway/bubble": { @@ -420,9 +419,9 @@ "aerialway/summer/access": { "label": "ಪ್ರವೇಶ(ಬೇಸಿಗೆ)", "options": { + "both": "ಎರಡೂ", "entry": "ಒಳಗೆ", - "exit": "ಹೊರಗೆ", - "both": "ಎರಡೂ" + "exit": "ಹೊರಗೆ" } }, "aeroway": { @@ -471,29 +470,29 @@ "cardinal_direction": { "label": "ದಿಕ್ಕು", "options": { - "N": "ಉತ್ತರ", "E": "ಪೂರ್ವ", - "S": "ದಕ್ಷಿಣ", - "W": "ಪಶ್ಚಿಮ", - "NE": "ಈಶಾನ್ಯ", - "SE": "ಆಗ್ನೇಯ", - "SW": "ನೈಋತ್ಯ", - "NW": "ವಾಯವ್ಯ", - "NNE": "ಉತ್ತರ - ಈಶಾನ್ಯ", "ENE": "ಪೂರ್ವ - ಈಶಾನ್ಯ", "ESE": "ಪೂರ್ವ - ಆಗ್ನೇಯ", + "N": "ಉತ್ತರ", + "NE": "ಈಶಾನ್ಯ", + "NNE": "ಉತ್ತರ - ಈಶಾನ್ಯ", + "NNW": "ಉತ್ತರ - ವಾಯುವ್ಯ", + "NW": "ವಾಯವ್ಯ", + "S": "ದಕ್ಷಿಣ", + "SE": "ಆಗ್ನೇಯ", "SSE": "ದಕ್ಷಿಣ - ಆಗ್ನೇಯ", "SSW": "ದಕ್ಷಿಣ - ನೈಋತ್ಯ", - "WSW": "ಪಶ್ಚಿಮ - ನೈಋತ್ಯ", + "SW": "ನೈಋತ್ಯ", + "W": "ಪಶ್ಚಿಮ", "WNW": "ಪಶ್ಚಿಮ - ವಾಯುವ್ಯ", - "NNW": "ಉತ್ತರ - ವಾಯುವ್ಯ" + "WSW": "ಪಶ್ಚಿಮ - ನೈಋತ್ಯ" } }, "clock_direction": { "label": "ದಿಕ್ಕು", "options": { - "clockwise": "ಪ್ರದಕ್ಷಿಣವಾಗಿ", - "anticlockwise": "ಅಪ್ರದಕ್ಷಿಣವಾಗಿ" + "anticlockwise": "ಅಪ್ರದಕ್ಷಿಣವಾಗಿ", + "clockwise": "ಪ್ರದಕ್ಷಿಣವಾಗಿ" } }, "construction": { @@ -531,13 +530,13 @@ }, "electrified": { "label": "ವಿದ್ಯುದೀಕರಣ", - "placeholder": "ಸಂಪರ್ಕ ರೇಖೆ, ವಿದ್ಯುದೀಕರಿಸಿದ ರೈಲು ", "options": { "contact_line": "ಸಂಪರ್ಕ ರೇಖೆ", + "no": "ಇಲ್ಲ", "rail": "ವಿದ್ಯುದೀಕರಿಸಿದ ರೈಲು", - "yes": "ಹೌದು (ಅನಿರ್ದಿಷ್ಟ)", - "no": "ಇಲ್ಲ" - } + "yes": "ಹೌದು (ಅನಿರ್ದಿಷ್ಟ)" + }, + "placeholder": "ಸಂಪರ್ಕ ರೇಖೆ, ವಿದ್ಯುದೀಕರಿಸಿದ ರೈಲು " }, "elevation": { "label": "ಎತ್ತರ" @@ -561,9 +560,9 @@ "fire_hydrant/type": { "label": "ವಿಧ", "options": { + "pond": "ಕೊಳ", "underground": "ನೆಲದಡಿಯಲ್ಲಿ", - "wall": "ಗೋಡೆ", - "pond": "ಕೊಳ" + "wall": "ಗೋಡೆ" } }, "fixme": { @@ -592,12 +591,12 @@ }, "gender": { "label": "ಲಿಂಗ", - "placeholder": "ಅಪರಿಚಿತ", "options": { - "male": "ಗಂಡು", "female": "ಹೆಣ್ಣು", + "male": "ಗಂಡು", "unisex": "ಒಂದೇಲಿಂಗ" - } + }, + "placeholder": "ಅಪರಿಚಿತ" }, "generator/method": { "label": "ವಿಧಾನ" @@ -637,8 +636,8 @@ "incline_steps": { "label": "ವಾಲಿಕೆ", "options": { - "up": "ಮೇಲೆ", - "down": "ಕೆಳಗೆ" + "down": "ಕೆಳಗೆ", + "up": "ಮೇಲೆ" } }, "information": { @@ -647,10 +646,10 @@ "internet_access": { "label": "ಅಂತರ್ಜಾಲ ಸಂಪರ್ಕ", "options": { - "yes": "ಹೌದು", "no": "ಇಲ್ಲ", + "wired": "ತಂತಿಯುಕ್ತ", "wlan": "ವೈಫೈ", - "wired": "ತಂತಿಯುಕ್ತ" + "yes": "ಹೌದು" } }, "lamp_type": { @@ -668,18 +667,18 @@ }, "leaf_cycle": { "options": { - "semi_evergreen": "ಅರೆ ಹರಿದ್ವರ್ಣ", + "mixed": "ಮಿಶ್ರಿತ", "semi_deciduous": "ಅರೆ-ಪತನಶೀಲ", - "mixed": "ಮಿಶ್ರಿತ" + "semi_evergreen": "ಅರೆ ಹರಿದ್ವರ್ಣ" } }, "leaf_type": { "label": "ಎಲೆಯ ವಿಧ", "options": { "broadleaved": "ಅಗಲವಾದ ಎಲೆ", - "needleleaved": "ಚುಪಾದ ಎಲೆ", + "leafless": "ಎಲೆಯಿಲ್ಲದ", "mixed": "ಮಿಶ್ರಿತ", - "leafless": "ಎಲೆಯಿಲ್ಲದ" + "needleleaved": "ಚುಪಾದ ಎಲೆ" } }, "leisure": { @@ -703,20 +702,20 @@ "placeholder": "40, 50, 60..." }, "mtb/scale": { - "placeholder": "0, 1, 2, 3...", "options": { "4": "‍" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { - "placeholder": "ಸುಲಭ, ಸಾಧಾರಣ, ಕಷ್ಟ ... ", "options": { "0": "ಅತಿ ಸುಲಭ (ಬಿಳಿಯ ವರ್ತುಲ)", "1": "ಸುಲ್ಕಭ(ಹಸಿರು ವರ್ತುಲ)", "2": "ಸಾಧಾರಣ (ನೀಲಿ ವರ್ತುಲ)", "3": "ಕಷ್ಟ (ಕರಿಯ ವರ್ತುಲ)", "4": "ಅತೀ ಕಷ್ಟ (ಎರಡು ಕಪ್ಪು ವಜ್ರಾಕಾರ)" - } + }, + "placeholder": "ಸುಲಭ, ಸಾಧಾರಣ, ಕಷ್ಟ ... " }, "mtb/scale/uphill": { "placeholder": "0, 1, 2, 3..." @@ -740,17 +739,17 @@ "oneway": { "label": "ಒಮ್ಮುಖ ಸಂಚಾರ", "options": { + "no": "ಇಲ್ಲ", "undefined": "ಇಲ್ಲವೆಂದು ಭಾವಿಸಲಾಗಿದೆ", - "yes": "ಹೌದು", - "no": "ಇಲ್ಲ" + "yes": "ಹೌದು" } }, "oneway_yes": { "label": "ಒಮ್ಮುಖ ಸಂಚಾರ", "options": { + "no": "ಇಲ್ಲ", "undefined": "ಇದೆ ಎಂದು ಭಾವಿದಲಾಗಿದೆ", - "yes": "ಹೌದು", - "no": "ಇಲ್ಲ" + "yes": "ಹೌದು" } }, "opening_hours": { @@ -769,9 +768,9 @@ "parking": { "label": "ವಿಧ", "options": { - "surface": "ಮೇಲ್ಮೈ", "multi-storey": "ಬಹುಮಟ್ಟದ", - "sheds": "ತಂಗುದಾಣ" + "sheds": "ತಂಗುದಾಣ", + "surface": "ಮೇಲ್ಮೈ" } }, "phone": { @@ -780,13 +779,13 @@ }, "piste/difficulty": { "label": "ಕಷ್ಟ", - "placeholder": "ಸುಲಭ, ಮಧ್ಯಂತರ, ಮುಂದುವರೆದ .....", "options": { - "novice": "ಅನನುಭವಿ (ಸೂಚನಾ)", + "advanced": "ಮುಂದುವರೆದ (ಕಪ್ಪು ವಜ್ರ)", "easy": "ಸುಲಭ (ಹಸಿರು ವರ್ತುಲ)", "intermediate": "ಮಧ್ಯಂತರ (ನೀಲಿ ವರ್ತುಲ)", - "advanced": "ಮುಂದುವರೆದ (ಕಪ್ಪು ವಜ್ರ)" - } + "novice": "ಅನನುಭವಿ (ಸೂಚನಾ)" + }, + "placeholder": "ಸುಲಭ, ಮಧ್ಯಂತರ, ಮುಂದುವರೆದ ....." }, "piste/grooming": { "options": { @@ -798,9 +797,9 @@ "piste/type": { "label": "ವಿಧ", "options": { + "playground": "ಆಟದ ಮೈದಾನ", "sled": "ಸ್ಲೆಡ್", - "snow_park": "ಮಂಜಿನ ಉದ್ಯಾನವನ", - "playground": "ಆಟದ ಮೈದಾನ" + "snow_park": "ಮಂಜಿನ ಉದ್ಯಾನವನ" } }, "place": { @@ -841,14 +840,14 @@ }, "service/bicycle/chain_tool": { "options": { - "yes": "ಹೌದು", - "no": "ಇಲ್ಲ" + "no": "ಇಲ್ಲ", + "yes": "ಹೌದು" } }, "service/bicycle/pump": { "options": { - "yes": "ಹೌದು", - "no": "ಇಲ್ಲ" + "no": "ಇಲ್ಲ", + "yes": "ಹೌದು" } }, "shelter": { @@ -876,12 +875,12 @@ "label": "ಕ್ರೀಡೆ" }, "structure": { - "placeholder": "ತಿಳಿಯದ", "options": { "bridge": "ಸೇತುವೆ", - "tunnel": "ಸುರಂಗ", - "embankment": "ಏರಿ" - } + "embankment": "ಏರಿ", + "tunnel": "ಸುರಂಗ" + }, + "placeholder": "ತಿಳಿಯದ" }, "studio_type": { "label": "ವಿಧ" @@ -894,8 +893,8 @@ }, "takeaway": { "options": { - "yes": "ಹೌದು", - "no": "ಇಲ್ಲ" + "no": "ಇಲ್ಲ", + "yes": "ಹೌದು" } }, "tourism": { diff --git a/vendor/assets/iD/iD/locales/ko-KR.json b/vendor/assets/iD/iD/locales/ko-KR.json index 8e001daff..4889dec38 100644 --- a/vendor/assets/iD/iD/locales/ko-KR.json +++ b/vendor/assets/iD/iD/locales/ko-KR.json @@ -4,8 +4,8 @@ "address": { "label": "주소", "placeholders": { - "street": "길", - "city": "도시" + "city": "도시", + "street": "길" } }, "aeroway": { @@ -47,8 +47,8 @@ "internet_access": { "label": "인터넷 이용 가능 여부", "options": { - "wlan": "Wifi", - "terminal": "터미널" + "terminal": "터미널", + "wlan": "Wifi" } }, "landuse": { diff --git a/vendor/assets/iD/iD/locales/ko.json b/vendor/assets/iD/iD/locales/ko.json index ed7eddd26..4a430ca2b 100644 --- a/vendor/assets/iD/iD/locales/ko.json +++ b/vendor/assets/iD/iD/locales/ko.json @@ -239,7 +239,6 @@ "commit": { "title": "바뀜 저장", "description_placeholder": "기여에 대한 간단한 설명", - "message_label": "커밋 메시지", "upload_explanation": "올린 바뀜은 OpenStreetMap 데이터를 사용하는 모든 지도에 보여집니다.", "upload_explanation_with_user": "{user} 사용자로 올린 바뀜은 OpenStreetMap 데이터를 사용하는 모든 지도에 보여집니다.", "save": "저장", @@ -542,39 +541,39 @@ "fields": { "access": { "label": "통행", - "placeholder": "알 수 없음", - "types": { - "access": "일반", - "foot": "도보", - "motor_vehicle": "이륜차", - "bicycle": "자전거", - "horse": "말" - }, "options": { - "yes": { - "title": "허가됨", - "description": "통행이 법적으로 허가됨; 정당한 이용" + "designated": { + "description": "표지판이나 특정 지역 법률에 따라 통행이 허가됨", + "title": "지정 차종만 통행 허가" + }, + "destination": { + "description": "목적지에 갈 때에만 통행이 허가됨", + "title": "목적 외 통행 금지" }, "no": { - "title": "제한됨", - "description": "통행이 일반 대중에게 허가되지 않음" + "description": "통행이 일반 대중에게 허가되지 않음", + "title": "제한됨" }, "permissive": { - "title": "소유자 허가 필요", - "description": "소유자가 권한을 해제할 때까지 통행이 허가됨" + "description": "소유자가 권한을 해제할 때까지 통행이 허가됨", + "title": "소유자 허가 필요" }, "private": { - "title": "사유", - "description": "개별적으로 소유자의 허가로만 통행이 허가됨" + "description": "개별적으로 소유자의 허가로만 통행이 허가됨", + "title": "사유" }, - "designated": { - "title": "지정 차종만 통행 허가", - "description": "표지판이나 특정 지역 법률에 따라 통행이 허가됨" - }, - "destination": { - "title": "목적 외 통행 금지", - "description": "목적지에 갈 때에만 통행이 허가됨" + "yes": { + "description": "통행이 법적으로 허가됨; 정당한 이용", + "title": "허가됨" } + }, + "placeholder": "알 수 없음", + "types": { + "access": "일반", + "bicycle": "자전거", + "foot": "도보", + "horse": "말", + "motor_vehicle": "이륜차" } }, "access_simple": { @@ -587,19 +586,19 @@ "address": { "label": "주소", "placeholders": { + "city": "도시", + "country": "국가", + "district": "구", + "hamlet": "작은 마을", "housename": "집이름", "housenumber": "123", - "street": "거리", - "city": "도시", - "postcode": "우편 번호", "place": "장소", - "hamlet": "작은 마을", - "suburb": "교외", - "subdistrict": "가도", - "district": "구", + "postcode": "우편 번호", "province": "성", "state": "주", - "country": "국가" + "street": "거리", + "subdistrict": "가도", + "suburb": "교외" } }, "admin_level": { @@ -611,9 +610,9 @@ "aerialway/access": { "label": "접근", "options": { + "both": "둘 다", "entry": "입구", - "exit": "출구", - "both": "둘 다" + "exit": "출구" } }, "aerialway/capacity": { @@ -631,9 +630,9 @@ "aerialway/summer/access": { "label": "접근 (여름)", "options": { + "both": "둘 다", "entry": "입구", - "exit": "출구", - "both": "둘 다" + "exit": "출구" } }, "aeroway": { @@ -682,29 +681,29 @@ "cardinal_direction": { "label": "방향", "options": { - "N": "북", "E": "동", - "S": "남", - "W": "서", - "NE": "북동", - "SE": "남동", - "SW": "남서", - "NW": "북서", - "NNE": "북북동", "ENE": "동북동", "ESE": "동남동", + "N": "북", + "NE": "북동", + "NNE": "북북동", + "NNW": "북북서", + "NW": "북서", + "S": "남", + "SE": "남동", "SSE": "남남동", "SSW": "남남서", - "WSW": "서남서", + "SW": "남서", + "W": "서", "WNW": "서북서", - "NNW": "북북서" + "WSW": "서남서" } }, "clock_direction": { "label": "방향", "options": { - "clockwise": "시계 방향", - "anticlockwise": "시계 반대 방향" + "anticlockwise": "시계 반대 방향", + "clockwise": "시계 방향" } }, "collection_times": { @@ -745,13 +744,13 @@ }, "electrified": { "label": "전력화", - "placeholder": "연결로, 전철...", "options": { "contact_line": "연결로", + "no": "아니오", "rail": "전철", - "yes": "예 (지정되지 않음)", - "no": "아니오" - } + "yes": "예 (지정되지 않음)" + }, + "placeholder": "연결로, 전철..." }, "elevation": { "label": "고도" @@ -776,9 +775,9 @@ "label": "유형", "options": { "pillar": "기둥/지상", + "pond": "연못", "underground": "지하", - "wall": "벽", - "pond": "연못" + "wall": "벽" } }, "fixme": { @@ -819,12 +818,12 @@ }, "gender": { "label": "성별", - "placeholder": "알 수 없음", "options": { - "male": "남자", "female": "여자", + "male": "남자", "unisex": "남녀 공용" - } + }, + "placeholder": "알 수 없음" }, "generator/method": { "label": "방식" @@ -865,8 +864,8 @@ "incline_steps": { "label": "경사", "options": { - "up": "올라감", - "down": "내려감" + "down": "내려감", + "up": "올라감" } }, "information": { @@ -875,11 +874,11 @@ "internet_access": { "label": "인터넷 액세스", "options": { - "yes": "예", "no": "아니오", - "wlan": "와이파이", + "terminal": "단말기", "wired": "유선", - "terminal": "단말기" + "wlan": "와이파이", + "yes": "예" } }, "lamp_type": { @@ -898,20 +897,20 @@ "leaf_cycle": { "label": "잎이 떨어지는 주기", "options": { - "evergreen": "상록수", "deciduous": "낙엽성", - "semi_evergreen": "반상록", + "evergreen": "상록수", + "mixed": "섞인", "semi_deciduous": "준낙엽성", - "mixed": "섞인" + "semi_evergreen": "반상록" } }, "leaf_type": { "label": "잎의 종류", "options": { "broadleaved": "활엽수", - "needleleaved": "침엽수", + "leafless": "잎이 없는", "mixed": "섞인", - "leafless": "잎이 없는" + "needleleaved": "침엽수" } }, "leisure": { @@ -939,22 +938,22 @@ }, "mtb/scale": { "label": "산악 자전거 난이도", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: 자갈/단단한 흙, 장애물이 없고 커브가 넓음", "1": "1: 약간의 부드러운 표면, 장애물이 약간 있고 커브가 넒음." - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBA 트레일 어려움", - "placeholder": "쉬움, 중간, 어려움...", "options": { "0": "매우 쉬움 (하얀 동그라미)", "1": "쉬움 (초록 동그라미)", "2": "중간 (파란 네모)", "3": "어려움 (검은 마름모)", "4": "매우 어려움 (두 검은 마름모)" - } + }, + "placeholder": "쉬움, 중간, 어려움..." }, "mtb/scale/uphill": { "label": "산악 자전거 오르막 난이도", @@ -979,17 +978,17 @@ "oneway": { "label": "일방통행", "options": { + "no": "아니오", "undefined": "아니오로 간주", - "yes": "예", - "no": "아니오" + "yes": "예" } }, "oneway_yes": { "label": "일방통행", "options": { + "no": "아니오", "undefined": "예로 간주", - "yes": "예", - "no": "아니오" + "yes": "예" } }, "opening_hours": { @@ -1008,9 +1007,9 @@ "parking": { "label": "유형", "options": { - "surface": "노면", "garage_boxes": "차고 상자", - "lane": "도로변 차선" + "lane": "도로변 차선", + "surface": "노면" } }, "phone": { @@ -1019,15 +1018,15 @@ }, "piste/difficulty": { "label": "어려움", - "placeholder": "초급, 중급, 고급...", "options": { - "novice": "새내기 (교육용)", - "easy": "초급 (초록 동그라미)", - "intermediate": "중급 (파란 네모)", "advanced": "고급 (검은 마름모)", + "easy": "초급 (초록 동그라미)", "expert": "숙련자 (두 검은 마름모)", - "freeride": "프리라이드 (off-piste)" - } + "freeride": "프리라이드 (off-piste)", + "intermediate": "중급 (파란 네모)", + "novice": "새내기 (교육용)" + }, + "placeholder": "초급, 중급, 고급..." }, "piste/grooming": { "options": { @@ -1038,8 +1037,8 @@ "label": "유형", "options": { "ice_skate": "아이스 스케이트", - "snow_park": "스노우 파크", - "playground": "놀이터" + "playground": "놀이터", + "snow_park": "스노우 파크" } }, "place": { @@ -1089,15 +1088,15 @@ }, "sac_scale": { "label": "하이킹 어려움", - "placeholder": "등산, 알파인 하이킹...", "options": { - "hiking": "T1: 하이킹", - "mountain_hiking": "T2: 등산", - "demanding_mountain_hiking": "T3: 까다로운 등산", "alpine_hiking": "T4: 알파인 하이킹", "demanding_alpine_hiking": "T5: 까다로운 알파인 하이킹", - "difficult_alpine_hiking": "T6: 어려운 알파인 하이킹" - } + "demanding_mountain_hiking": "T3: 까다로운 등산", + "difficult_alpine_hiking": "T6: 어려운 알파인 하이킹", + "hiking": "T1: 하이킹", + "mountain_hiking": "T2: 등산" + }, + "placeholder": "등산, 알파인 하이킹..." }, "seasonal": { "label": "계절 한정" @@ -1108,17 +1107,17 @@ "service/bicycle/chain_tool": { "label": "체인 공구", "options": { + "no": "아니오", "undefined": "아니오로 간주", - "yes": "예", - "no": "아니오" + "yes": "예" } }, "service/bicycle/pump": { "label": "공기 펌프", "options": { + "no": "아니오", "undefined": "아니오로 간주", - "yes": "예", - "no": "아니오" + "yes": "예" } }, "shelter": { @@ -1135,28 +1134,28 @@ }, "smoking": { "label": "흡연", - "placeholder": "아니오, 분리됨, 예...", "options": { - "no": "이디서든 금연", - "separated": "흡연 구역이나, 격리되지 않음", + "dedicated": "흡연자 전용 (예 흡연자 클럽)", "isolated": "흡연 구역이고, 격리됨", + "no": "이디서든 금연", "outside": "밖에서 허용", - "yes": "어디서나 허용", - "dedicated": "흡연자 전용 (예 흡연자 클럽)" - } + "separated": "흡연 구역이나, 격리되지 않음", + "yes": "어디서나 허용" + }, + "placeholder": "아니오, 분리됨, 예..." }, "smoothness": { "label": "평활도", - "placeholder": "얇은 롤러, 바퀴, 오프로드...", "options": { + "bad": "견고한 바퀴: 트래킹 자전거, 자동차, 인력거", "excellent": "얇은 롤러: 롤러브레이드, 스케이트보드", "good": "얇은 바퀴: 경주용 자전거", - "intermediate": "바퀴: 도시 자전거, 휠체어, 스쿠터", - "bad": "견고한 바퀴: 트래킹 자전거, 자동차, 인력거", - "very_bad": "High Clearance: light duty 오프로드 차종", "horrible": "오프로드: heavy duty 오프로드 차종", - "impassable": "지나갈 수 없거나 / 안되는 바퀴가 있는 차종" - } + "impassable": "지나갈 수 없거나 / 안되는 바퀴가 있는 차종", + "intermediate": "바퀴: 도시 자전거, 휠체어, 스쿠터", + "very_bad": "High Clearance: light duty 오프로드 차종" + }, + "placeholder": "얇은 롤러, 바퀴, 오프로드..." }, "source": { "label": "참조 정보" @@ -1172,14 +1171,14 @@ }, "structure": { "label": "구조물", - "placeholder": "알 수 없음", "options": { "bridge": "다리", - "tunnel": "터널", - "embankment": "둑", "cutting": "절토", - "ford": "여울" - } + "embankment": "둑", + "ford": "여울", + "tunnel": "터널" + }, + "placeholder": "알 수 없음" }, "studio_type": { "label": "유형" @@ -1192,17 +1191,17 @@ }, "takeaway": { "options": { - "yes": "예", - "no": "아니오" + "no": "아니오", + "yes": "예" } }, "toilets/disposal": { "label": "처리장", "options": { - "flush": "수세식", - "pitlatrine": "재래식", + "bucket": "양동이", "chemical": "화학식", - "bucket": "양동이" + "flush": "수세식", + "pitlatrine": "재래식" } }, "tourism": { diff --git a/vendor/assets/iD/iD/locales/lt.json b/vendor/assets/iD/iD/locales/lt.json index e414c6b60..fd970cb29 100644 --- a/vendor/assets/iD/iD/locales/lt.json +++ b/vendor/assets/iD/iD/locales/lt.json @@ -239,7 +239,6 @@ "commit": { "title": "Išsaugoti pakeitimus", "description_placeholder": "Trumpas jūsų indėlio aprašymas", - "message_label": "Pakeitimo aprašymas", "upload_explanation": "Jūsų įkeliami pakeitimai bus matomi visuose žemėlapiuose, naudojančiuose OpenStreetMap duomenis.", "upload_explanation_with_user": "Pakeitimai, kuriuos jūs įkeliate kaip naudotojas {user} bus matomi visuose žemėlapiuose, naudojančiuose OpenStreetMap duomenis.", "save": "Išsaugoti", @@ -568,39 +567,39 @@ "fields": { "access": { "label": "Prieiga", - "placeholder": "Nežinoma", - "types": { - "access": "Bendra", - "foot": "Pėstieji", - "motor_vehicle": "Motorinis transportas", - "bicycle": "Dviračiai", - "horse": "Arkliai" - }, "options": { - "yes": { - "title": "Leidžiamas", - "description": "Priėjimas leidžiamas įstatymų; pirmumo teisė" + "designated": { + "description": "Priėjimas galimas remiantis ženklais ir savitais vietos įstatymais", + "title": "Skirtas" + }, + "destination": { + "description": "Priėjimas leistinas tik atvykti į tikslą", + "title": "Tikslinis" }, "no": { - "title": "Draudžiamas", - "description": "Priėjimas draudžiamas plačiajai visuomenei" + "description": "Priėjimas draudžiamas plačiajai visuomenei", + "title": "Draudžiamas" }, "permissive": { - "title": "Leistinas", - "description": "Priėjimas leistinas, kai savininkas konkrečiu laiku panaikina draudimą" + "description": "Priėjimas leistinas, kai savininkas konkrečiu laiku panaikina draudimą", + "title": "Leistinas" }, "private": { - "title": "Privatus", - "description": "Priėjimas leistinas tik su savininko leidimu" + "description": "Priėjimas leistinas tik su savininko leidimu", + "title": "Privatus" }, - "designated": { - "title": "Skirtas", - "description": "Priėjimas galimas remiantis ženklais ir savitais vietos įstatymais" - }, - "destination": { - "title": "Tikslinis", - "description": "Priėjimas leistinas tik atvykti į tikslą" + "yes": { + "description": "Priėjimas leidžiamas įstatymų; pirmumo teisė", + "title": "Leidžiamas" } + }, + "placeholder": "Nežinoma", + "types": { + "access": "Bendra", + "bicycle": "Dviračiai", + "foot": "Pėstieji", + "horse": "Arkliai", + "motor_vehicle": "Motorinis transportas" } }, "access_simple": { @@ -613,19 +612,19 @@ "address": { "label": "Adresas", "placeholders": { + "city": "Miestas", + "country": "Valstybė", + "district": "Rajonas", + "hamlet": "Viensėdis", "housename": "Namo pavadinimas", "housenumber": "123", - "street": "Gatvė", - "city": "Miestas", - "postcode": "Pašto kodas", "place": "Vietovė", - "hamlet": "Viensėdis", - "suburb": "Priemiestis", - "subdistrict": "Seniūnija", - "district": "Rajonas", + "postcode": "Pašto kodas", "province": "Provincija", "state": "Valstija", - "country": "Valstybė" + "street": "Gatvė", + "subdistrict": "Seniūnija", + "suburb": "Priemiestis" } }, "admin_level": { @@ -637,9 +636,9 @@ "aerialway/access": { "label": "Prieiga", "options": { + "both": "Abu", "entry": "Įėjimas", - "exit": "Išėjimas", - "both": "Abu" + "exit": "Išėjimas" } }, "aerialway/bubble": { @@ -663,9 +662,9 @@ "aerialway/summer/access": { "label": "Prieiga (vasarai)", "options": { + "both": "Abu", "entry": "Įėjimas", - "exit": "Išėjimas", - "both": "Abu" + "exit": "Išėjimas" } }, "aeroway": { @@ -714,29 +713,29 @@ "cardinal_direction": { "label": "Kryptis", "options": { - "N": "Šiaurė", "E": "Rytai", - "S": "Pietūs", - "W": "Vakarai", - "NE": "Šiaurės rytai", - "SE": "Pietryčiai", - "SW": "Pietvakariai", - "NW": "Šiaurės vakarai", - "NNE": "Šiaurės-šiaurės rytų", "ENE": "Rytų-šiaurės rytų", "ESE": "Rytų-pietryčių", + "N": "Šiaurė", + "NE": "Šiaurės rytai", + "NNE": "Šiaurės-šiaurės rytų", + "NNW": "Šiaurės-šiaurės vakarų", + "NW": "Šiaurės vakarai", + "S": "Pietūs", + "SE": "Pietryčiai", "SSE": "Pietų-pietryčių", "SSW": "Pietų-pietvakarių", - "WSW": "Vakarų-pietvakarių", + "SW": "Pietvakariai", + "W": "Vakarai", "WNW": "Vakarų-šiaurės vakarų", - "NNW": "Šiaurės-šiaurės vakarų" + "WSW": "Vakarų-pietvakarių" } }, "clock_direction": { "label": "Kryptis", "options": { - "clockwise": "Pagal laikrodžio rodyklę", - "anticlockwise": "Prieš laikrodžio rodyklę" + "anticlockwise": "Prieš laikrodžio rodyklę", + "clockwise": "Pagal laikrodžio rodyklę" } }, "collection_times": { @@ -780,13 +779,13 @@ }, "electrified": { "label": "Elektrifikacija", - "placeholder": "Kontaktinė linija, elektrifikuoti bėgiai...", "options": { "contact_line": "Kontaktinė linija", + "no": "Ne", "rail": "Elektrifikuoti bėgiai", - "yes": "Taip (nepatikslinta)", - "no": "Ne" - } + "yes": "Taip (nepatikslinta)" + }, + "placeholder": "Kontaktinė linija, elektrifikuoti bėgiai..." }, "elevation": { "label": "Aukštis" @@ -811,9 +810,9 @@ "label": "Tipas", "options": { "pillar": "Kolona/antžeminė", + "pond": "Kūdra", "underground": "Požeminis", - "wall": "Siena", - "pond": "Kūdra" + "wall": "Siena" } }, "fixme": { @@ -854,12 +853,12 @@ }, "gender": { "label": "Lytis", - "placeholder": "Nežinoma", "options": { - "male": "Vyras", "female": "Moteris", + "male": "Vyras", "unisex": "Abiejų lyčių" - } + }, + "placeholder": "Nežinoma" }, "generator/method": { "label": "Metodas" @@ -900,8 +899,8 @@ "incline_steps": { "label": "Įkalnė", "options": { - "up": "Aukštyn", - "down": "Žemyn" + "down": "Žemyn", + "up": "Aukštyn" } }, "information": { @@ -910,11 +909,11 @@ "internet_access": { "label": "Interneto prieiga", "options": { - "yes": "Taip", "no": "Ne", - "wlan": "Belaidis internetas", + "terminal": "Terminalas", "wired": "Laidinis internetas", - "terminal": "Terminalas" + "wlan": "Belaidis internetas", + "yes": "Taip" } }, "lamp_type": { @@ -933,20 +932,20 @@ "leaf_cycle": { "label": "Lapų ciklas", "options": { - "evergreen": "Amžinai žaliuojantis", "deciduous": "Nukrintantis", - "semi_evergreen": "Pusiau-amžinai žaliuojantis", + "evergreen": "Amžinai žaliuojantis", + "mixed": "Mišrus", "semi_deciduous": "Pusiau-nukrentantis", - "mixed": "Mišrus" + "semi_evergreen": "Pusiau-amžinai žaliuojantis" } }, "leaf_type": { "label": "Lapų tipas", "options": { "broadleaved": "Plačialapiai", - "needleleaved": "Spygliuočiai", + "leafless": "Belapiai", "mixed": "Mišrūs", - "leafless": "Belapiai" + "needleleaved": "Spygliuočiai" } }, "leisure": { @@ -974,7 +973,6 @@ }, "mtb/scale": { "label": "Sudėtingumas kalnų dviračiais", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Kietas žvyrius/suspaustos žemės, jokių kliūčių, platūs vingiai", "1": "1: Šiek tiek pairusi danga , mažos kliūtys, platūs vingiai", @@ -983,22 +981,22 @@ "4": "4: Netvirtas paviršius ar rieduliai, pavojingi posūkiai", "5": "5: Didžiausias sudėtingumas, riedulių laukai, nuošliaužos", "6": "6: Pravažiuojama tik patiems geriausiems kalnų dviratininkams" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "IMBA maršruto sudėtingumas", - "placeholder": "Lengvas, vidutinis, sunkus...", "options": { "0": "Lengviausias (baltas apskritimas)", "1": "Lengvas (žalias apskritimas)", "2": "Vidutinis (mėlynas apskritimas)", "3": "Sunkus (juodas rombas)", "4": "Ypač sunkus (dvigubas juodas rombas)" - } + }, + "placeholder": "Lengvas, vidutinis, sunkus..." }, "mtb/scale/uphill": { "label": "Kalnų dviračių sudėtingumas", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Vid. kilimas <10%, gruntas, suspausta žemė, be kliūčių", "1": "1. Vid. kilimas <15%, gruntas, suspausta žemė, keli smulkūs objektai", @@ -1006,7 +1004,8 @@ "3": "3: Vid. kilimas <25%, kintantis paviršius, kumščio dydžio akmenys/šaknys", "4": "4: Vid. įkalnė <30%, prastos būklės, dideli akmenys/šaknys", "5": "5: Labai status, dviratį pagrinde reikia stumti arba nešti" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Pavadinimas", @@ -1027,17 +1026,17 @@ "oneway": { "label": "Vienpusis eismas", "options": { + "no": "Ne", "undefined": "Numatytai, kad Ne", - "yes": "Taip", - "no": "Ne" + "yes": "Taip" } }, "oneway_yes": { "label": "Vienpusis eismas", "options": { + "no": "Ne", "undefined": "Numatytai, kad Taip", - "yes": "Taip", - "no": "Ne" + "yes": "Taip" } }, "opening_hours": { @@ -1056,13 +1055,13 @@ "parking": { "label": "Tipas", "options": { - "surface": "Danga", - "multi-storey": "Daugiaaukštis", - "underground": "Požeminis", - "sheds": "Pašiūrės", "carports": "Stoginės", "garage_boxes": "Garažai", - "lane": "Kelkraštis" + "lane": "Kelkraštis", + "multi-storey": "Daugiaaukštis", + "sheds": "Pašiūrės", + "surface": "Danga", + "underground": "Požeminis" } }, "phone": { @@ -1071,16 +1070,16 @@ }, "piste/difficulty": { "label": "Sudėtingumas", - "placeholder": "Lengvas, vidutinis, sudėtingas...", "options": { - "novice": "Naujokams (instrukcijos)", - "easy": "Lengvas (žalias žiedas)", - "intermediate": "Vidutinis (mėlynas kvadratas)", "advanced": "Sudėtingas (juodas deimantas)", + "easy": "Lengvas (žalias žiedas)", "expert": "Eksperto (dvigubas juodas deimantas)", + "extreme": "Ekstremalus (būtina kopimo įranga)", "freeride": "Laisvas (ne maršrutu)", - "extreme": "Ekstremalus (būtina kopimo įranga)" - } + "intermediate": "Vidutinis (mėlynas kvadratas)", + "novice": "Naujokams (instrukcijos)" + }, + "placeholder": "Lengvas, vidutinis, sudėtingas..." }, "piste/grooming": { "label": "Priežiūra", @@ -1092,11 +1091,11 @@ "piste/type": { "label": "Tipas", "options": { - "sled": "Rogės", "hike": "Žygis", "ice_skate": "Ledo čiuožimas", - "snow_park": "Sniego parkas", - "playground": "Vaikų žaidimų aikštelė" + "playground": "Vaikų žaidimų aikštelė", + "sled": "Rogės", + "snow_park": "Sniego parkas" } }, "place": { @@ -1146,15 +1145,15 @@ }, "sac_scale": { "label": "Žygio sudėtingumas", - "placeholder": "Kalnų žygiai, Alpių žygiai...", "options": { - "hiking": "T1: Žygiai", - "mountain_hiking": "T2: Kalnų žygiai", - "demanding_mountain_hiking": "T3: Varginantys kalnų žygiai", "alpine_hiking": "T4: Alpių žygiai", "demanding_alpine_hiking": "T5: Varginantys alpių žygiai", - "difficult_alpine_hiking": "T6: Sudėtingi alpių žygiai" - } + "demanding_mountain_hiking": "T3: Varginantys kalnų žygiai", + "difficult_alpine_hiking": "T6: Sudėtingi alpių žygiai", + "hiking": "T1: Žygiai", + "mountain_hiking": "T2: Kalnų žygiai" + }, + "placeholder": "Kalnų žygiai, Alpių žygiai..." }, "seasonal": { "label": "Sezoninis" @@ -1164,25 +1163,25 @@ }, "service/bicycle/chain_tool": { "options": { + "no": "Ne", "undefined": "Numatytai, kad Ne", - "yes": "Taip", - "no": "Ne" + "yes": "Taip" } }, "service/bicycle/pump": { "label": "Oro pompa", "options": { + "no": "Ne", "undefined": "Manoma, kad Ne", - "yes": "Taip", - "no": "Ne" + "yes": "Taip" } }, "service_rail": { "label": "Tarnybos tipas", "options": { + "siding": "Atsarginis kelias", "spur": "Atšaka", - "yard": "Kiemas", - "siding": "Atsarginis kelias" + "yard": "Kiemas" } }, "shelter": { @@ -1199,15 +1198,15 @@ }, "smoking": { "label": "Rūkymas", - "placeholder": "Ne, Atskirta, Taip...", "options": { - "no": "Draudžiama rūkyti", - "separated": "Rūkymo vietose, neizoliuota fiziškai", + "dedicated": "Skirta rūkantiems (pvz.: rūkančiųjų klubas)", "isolated": "Rūkymo vietose, fiziškai izoliuota", + "no": "Draudžiama rūkyti", "outside": "Leidžiama lauke", - "yes": "Leidžiama visur", - "dedicated": "Skirta rūkantiems (pvz.: rūkančiųjų klubas)" - } + "separated": "Rūkymo vietose, neizoliuota fiziškai", + "yes": "Leidžiama visur" + }, + "placeholder": "Ne, Atskirta, Taip..." }, "smoothness": { "label": "Tikslumas", @@ -1233,13 +1232,13 @@ }, "structure": { "label": "Struktūra", - "placeholder": "Nežinoma", "options": { "bridge": "Tiltas", - "tunnel": "Tunelis", "embankment": "Pylimas", - "ford": "Brasta" - } + "ford": "Brasta", + "tunnel": "Tunelis" + }, + "placeholder": "Nežinoma" }, "studio_type": { "label": "Tipas" @@ -1258,12 +1257,12 @@ }, "takeaway": { "label": "Išsinešimui", - "placeholder": "Taip, ne, tik išsinešimui...", "options": { - "yes": "Taip", "no": "Ne", - "only": "Tik išsinešimui" - } + "only": "Tik išsinešimui", + "yes": "Taip" + }, + "placeholder": "Taip, ne, tik išsinešimui..." }, "tourism": { "label": "Tipas" @@ -1277,15 +1276,15 @@ }, "trail_visibility": { "label": "Maršruto matomumas", - "placeholder": "Puikus, Geras, Prastas...", "options": { + "bad": "Blogai: nėra žymų, kelio kartais nėra ar jis nesimato", "excellent": "Puiku: nedviprasmiškas kelias arba žymės visur", "good": "Gerai: žymės matomos, kartais reikia paieškoti", - "intermediate": "Vidutiniškai: šiek tiek žymų, kelias daugiausia matomas", - "bad": "Blogai: nėra žymų, kelio kartais nėra ar jis nesimato", "horrible": "Tragiškai: dažnų atkarpų nėra, reikia orientavimosi sugebėjimų", + "intermediate": "Vidutiniškai: šiek tiek žymų, kelias daugiausia matomas", "no": "Nėra: nėra kelio, reikia puikių orientavimosi sugebėjimų" - } + }, + "placeholder": "Puikus, Geras, Prastas..." }, "trees": { "label": "Medžiai" @@ -1486,7 +1485,7 @@ "terms": "dujų stotis" }, "amenity/grave_yard": { - "name": "Kapinės", + "name": "Kapinės prie bažnyčios", "terms": "Kapinės,Kapai" }, "amenity/grit_bin": { diff --git a/vendor/assets/iD/iD/locales/lv.json b/vendor/assets/iD/iD/locales/lv.json index d4905e4d3..3675b154c 100644 --- a/vendor/assets/iD/iD/locales/lv.json +++ b/vendor/assets/iD/iD/locales/lv.json @@ -164,7 +164,6 @@ "commit": { "title": "Saglabāt izmaiņas", "description_placeholder": "Īss apraksts par jūsu ieguldījumu", - "message_label": "Izmaiņu apraksts", "save": "Saglabāt", "cancel": "Atcelt", "warnings": "Brīdinājumi", @@ -281,43 +280,43 @@ "fields": { "access": { "label": "Piekļuve", - "types": { - "access": "Vispārīgs", - "foot": "Kājām", - "motor_vehicle": "Automašīnas", - "bicycle": "Velosipēdi", - "horse": "Zirgi" - }, "options": { - "yes": { - "title": "Atļauts", - "description": "Piekļuve atļauta ar likumu" + "designated": { + "description": "Piekļuve atļauta atbilstoši zīmēm vai speciāliem vietējiem likumiem", + "title": "Nozīmēts" + }, + "destination": { + "title": "Galamērķis" }, "no": { - "title": "Aizliegts", - "description": "Piekļuve nav atļauta bez speciālā atļaujām " + "description": "Piekļuve nav atļauta bez speciālā atļaujām ", + "title": "Aizliegts" }, "permissive": { "description": "Piekļuve atļauta līdz īpašnieks atsauc atļauju" }, "private": { - "title": "Privāts", - "description": "Piekļuve atļauta tikai ar īpašnieka atļauju" + "description": "Piekļuve atļauta tikai ar īpašnieka atļauju", + "title": "Privāts" }, - "designated": { - "title": "Nozīmēts", - "description": "Piekļuve atļauta atbilstoši zīmēm vai speciāliem vietējiem likumiem" - }, - "destination": { - "title": "Galamērķis" + "yes": { + "description": "Piekļuve atļauta ar likumu", + "title": "Atļauts" } + }, + "types": { + "access": "Vispārīgs", + "bicycle": "Velosipēdi", + "foot": "Kājām", + "horse": "Zirgi", + "motor_vehicle": "Automašīnas" } }, "address": { "label": "Adrese", "placeholders": { - "street": "Iela", - "city": "Pilsēta" + "city": "Pilsēta", + "street": "Iela" } }, "aeroway": { @@ -386,9 +385,9 @@ "internet_access": { "label": "Interneta piekļuve", "options": { - "wlan": "Bezvadu internets", + "terminal": "Termināls", "wired": "Kabeļinternets", - "terminal": "Termināls" + "wlan": "Bezvadu internets" } }, "landuse": { @@ -479,9 +478,9 @@ "label": "Objekts", "options": { "bridge": "Tilts", - "tunnel": "Tunelis", + "cutting": "Izgriezums", "embankment": "Krastmala", - "cutting": "Izgriezums" + "tunnel": "Tunelis" } }, "surface": { diff --git a/vendor/assets/iD/iD/locales/nl.json b/vendor/assets/iD/iD/locales/nl.json index 351cbb0b9..98c37b772 100644 --- a/vendor/assets/iD/iD/locales/nl.json +++ b/vendor/assets/iD/iD/locales/nl.json @@ -239,7 +239,7 @@ "commit": { "title": "Aanpassingen Opslaan", "description_placeholder": "Een korte omschrijving van je bijdragen", - "message_label": "Beschrijf wat je gedaan hebt", + "message_label": "Opmerking bij wijzigingen", "upload_explanation": "De aanpassingen die je uploadt worden zichtbaar op alle kaarten die de gegevens van OpenStreetMap gebruiken.", "upload_explanation_with_user": "De aanpassingen die je als {user} uploadt worden zichtbaar op alle kaarten die de gegevens van OpenStreetMap gebruiken.", "save": "Opslaan", @@ -254,6 +254,26 @@ "list": "Aanpassingen door {users}", "truncated_list": "Aanpassingen door {users} en {count} anderen" }, + "infobox": { + "selected": "{n} geselecteerd", + "geometry": "Meetkundige eigenschappen", + "closed": "gesloten", + "center": "Midden", + "perimeter": "Omtrek", + "length": "Lengte", + "area": "Oppervlakte", + "centroid": "Zwaartepunt", + "location": "Locatie", + "metric": "Metrisch", + "imperial": "Brits" + }, + "geometry": { + "point": "punt", + "vertex": "vertex", + "line": "lijn", + "area": "vlak", + "relation": "relatie" + }, "geocoder": { "search": "Zoek wereldwijd ...", "no_results_visible": "Geen resultaten in dit gebied", @@ -479,7 +499,7 @@ "gps": "# GPS\n\nGPS-data is de databron die het meest wordt vertrouwd voor OpenStreetMap. Dit bewerkingsprogramma ondersteunt lokale GPS-paden – '.gpx'-bestanden op je eigen computer. Je kan dit soort paden opnemen met een aantal smartphone-apps of met aparte GPS-toestellen.\n\nVoor meer informatie over hoe je onderzoek kan doen met GPS, kan je terecht op [Surveying with a GPS (Engels)](http://learnosm.org/en/beginner/using-gps/) of [Sur le terrain avec un GPS (Frans)](http://learnosm.org/fr/beginner/using-gps/). \n\nOm een GPX-pad te gebruiken bij het karteren, sleep je het GPX-bestand op het kaartbewerkingsprogramma. Als het wordt herkend, zal het op de kaart worden getoond als een helderpaarse lijn. Open het menu 'Kaartgegevens' aan de rechterkant om deze nieuwe GPX-laag aan of uit te zetten of te zoomen.\n\nHet GPX-pad wordt niet rechtstreeks als een weg geüpload naar OpenStreetMap. De beste manier om het te gebruiken is als een hulpmiddel om op de kaart tekenen. Je wordt aangemoedigd het ook te [uploaden naar OpenStreetMap](http://www.openstreetmap.org/trace/create) zodat anderen het op dezelfde manier kunnen gebruiken.\n", "imagery": "# Beeldmateriaal\n\nLuchtfoto's vormen een belangrijke bron bij het maken van de kaart. Een combinatie van luchtfoto's, satellietbeelden en vrij-beschikbare bronnen is beschikbaar in de editor onder het menu 'Achtergrondinstellingen' aan de linkerzijde.\n\nStandaard wordt een [Bing Maps](http://www.bing.com/maps/)-satellietbeeld in de editor getoond, maar als je de kaart verschaalt of verplaatst naar andere gebieden, worden nieuwe bronnen getoond. Sommige landen, zoals de Verenigde Staten, Frankrijk en Denemarken hebben beeldmateriaal van zeer hoge kwaliteit in sommige gebieden.\n\nSoms is het beeldmateriaal ten opzichte van de kaart verschoven door een fout van de leverancier van het beeldmateriaal. Als je ziet dat een heleboel wegen zijn verschoven ten opzichte van de achtergrond, ga deze dan niet meteen allemaal verplaatsen zodat de ligging overeenkomt met de achtergrond. In plaats daarvan kan je het beeldmateriaal aanpassen, zodat de ligging overeenkomt met de bestaande gegevens door op de knop 'Verbeter de ligging' te klikken onderaan de 'Achtergrondinstellingen'.\n", "addresses": "# Adressen\n\nAdressen zijn één van de meest nuttige informatie-elementen voor de kaart.\n\nHoewel adressen vaak als deel van een straat worden weergegeven, worden zij\nin OpenStreetMap vastgelegd als eigenschap van gebouwen en plaatsen langs\nde straten.\n\nJe kan adresgegevens toevoegen aan plaatsen die als gebouwcontouren\nzijn gekarteerd, maar ook aan plaatsen die als een enkel punt zijn gekarteerd.\nDe meest betrouwbare bron voor adresgegevens is een veldonderzoek ter\nplaatse of eigen bekendheid zoals met ieder ander object is kopiëren uit\ncommerciële bronnen zoals Google Maps strikt verboden.\n", - "inspector": "# Het inspectiegereedschap\n\nHet inspectiegereedschap is het schermelement links op de pagina dat verschijnt als een object wordt geselecteerd en maakt het je mogelijk om eigenschappen aan te passen.\n\n### Een objecttype selecteren\n\nNadat je een punt, lijn of vlak hebt toegevoegd, kan je kiezen wat voor type object het is, bijvoorbeeld of het een snelweg of woonerf is, een supermarkt of een café. Het inspectiegereedschap toont knoppen voor veelvoorkomende objecttypen en je kan andere vinden door een term in het zoekscherm in te vullen.\n\nKlik op de 'i' in de rechterbenedenhoek van een objecttypeknop om meer te weten te komen. Klik op een knop om het type te selecteren.\n\n### Formulieren gebruiken en tags bewerken\n\nNadat je een objecttype hebt gekozen, of wanneer je een object selecteert dat al een type toegekend heeft gekregen, dan toont het inspectiegereedschap allerlei eigenschappen van het object, zoals naam en adres.\n\nOnder de getoonde eigenschappen kan je op icoontjes klikken om meer eigenschappen toe te voegen, zoals informatie uit [Wikipedia](http://www.wikipedia.org/), toegankelijkheid voor rolstoelgebruikers, etc.\n\nOnderaan het inspectiegereedschap klik je op 'Extra tags' om andere tags toe te voegen. [Taginfo](http://taginfo.openstreetmap.org/) biedt een prachtig overzicht om meer te weten te komen over veelgebruikte combinaties van tags.\n\nAanpassingen die je in het inspectiegereedschap maakt zijn meteen zichtbaar in de kaart. Je kan ze op ieder moment ongedaan maken, door op de knop 'Ongedaan maken' te klikken.\n", + "inspector": "# Het inspectiegereedschap\n\nHet inspectie­gereedschap is het schermelement links op de pagina dat verschijnt als een object wordt geselecteerd en maakt het je mogelijk om eigenschappen aan te passen.\n\n### Een objecttype selecteren\n\nNadat je een punt, lijn of vlak hebt toegevoegd, kan je kiezen wat voor type object het is, bijvoorbeeld of het een snelweg of woonerf is, een supermarkt of een café. Het inspectiegereedschap toont knoppen voor veelvoorkomende objecttypen en je kan andere vinden door een term in het zoekscherm in te vullen.\n\nKlik op de 'i' in de rechterbenedenhoek van een objecttypeknop om meer te weten te komen. Klik op een knop om het type te selecteren.\n\n### Formulieren gebruiken en tags bewerken\n\nNadat je een objecttype hebt gekozen, of wanneer je een object selecteert dat al een type toegekend heeft gekregen, dan toont het inspectiegereedschap allerlei eigenschappen van het object, zoals naam en adres.\n\nOnder de getoonde eigenschappen kan je op icoontjes klikken om meer eigenschappen toe te voegen, zoals informatie uit [Wikipedia](http://www.wikipedia.org/), toegankelijkheid voor rolstoelgebruikers, etc.\n\nOnderaan het inspectiegereedschap klik je op 'Extra tags' om andere tags toe te voegen. [Taginfo](http://taginfo.openstreetmap.org/) biedt een prachtig overzicht om meer te weten te komen over veelgebruikte combinaties van tags.\n\nAanpassingen die je in het inspectiegereedschap maakt zijn meteen zichtbaar in de kaart. Je kan ze op ieder moment ongedaan maken, door op de knop 'Ongedaan maken' te klikken.\n", "buildings": "# Gebouwen\n\nOpenStreetMap is 's werelds grootste gebouwendatabase. Jij kan deze\ndatabase maken en verbeteren.\n\n### Selecteren\n\nJe kan een gebouw selecteren door op de omtrek te klikken. Dit doet het\ngebouw oplichten en opent een klein menu en een scherm met meer informatie over het gebouw.\n\n### Aanpassen\n\nSoms staan gebouwen niet op de juiste plaats of hebben ze onjuiste tags.\n\nOm een heel gebouw te verplaatsen, selecteer het en klik dan op de knop 'Verplaatsen'. Beweeg je muis om het gebouw te verplaatsen en klik als het op de goede plek staat.\n\nOm de vorm van een gebouw te verbeteren klik en versleep je de punten die samen de omtrek vormen naar de juiste plek.\n\n### Toevoegen\n\nEen van de onduidelijkheden over het toevoegen van gebouwen is dat in\nOpenStreetMap de gebouwen als vlakken en als punten kunnen worden vastgelegd. De vuistregel is dat _gebouwen zoveel mogelijk als een vlak_ worden ingetekend en dat bedrijven, woningen en voorzieningen die in die gebouwen zijn gevestigd ofwel ook op het vlak worden getagd of als punt worden ingetekend binnen de omtrek.\n\nBegin om een gebouw als een vlak in te tekenen door op de knop 'Vlak' te klikken in de linkerbovenhoek van het scherm en beëindig het tekenen door de 'Return'-toets in te drukken of door op het eerst getekende punt te klikken om de omtrek te sluiten.\n\n### Verwijderen\n\nAls een gebouw helemaal verkeerd is – je kan zien dat het niet in het satellietbeeld zichtbaar is en idealiter heb je ter plekke geconstateerd dat het niet bestaat – dan kan je het verwijderen. Wees voorzichtig bij het verwijderen van objecten – zoals alle andere aanpassingen, is het resultaat voor iedereen zichtbaar en satellietbeelden zijn vaak verouderd, dus het gebouw kan simpelweg onlangs zijn gebouwd.\n\nJe kan een gebouw verwijderen door erop te klikken om het te selecteren en dan op de prullenbakicoon te klikken of op de 'Verwijderen'-toets te drukken.\n", "relations": "# Relaties\n\nEen relatie is een speciaal type object in OpenStreetMap dat andere objecten groepeert. Twee vaakvoorkomende types relaties zijn bijvoorbeeld de *routerelatie*, die delen van een weg die tot eenzelfde snelweg behoren groepeert, en *multipolygonen*, die verschillende lijnen groeperen die samen een complex vlak definiëren (een van verschillende delen met gaten erin, zoals bij een donut).\n\nDe groep van elementen in een relatie heten *leden*. In de zijbalk kan je zien van welke relaties een element lid is, en daar op een relatie klikken om die te selecteren. Wanneer de relatie is geselecteerd, kan je al haar leden in een lijst in de zijbalk zien, en worden ze gehighlight op de kaart.\n\niD zal meestal relaties automatisch voor je in orde houden terwijl je bewerkt. Het belangrijkste waar je moet aan denken is dat als je een deel van een weg verwijdert om het nauwkeuriger opnieuw te tekenen, het nieuwe stuk weg lid moet zijn van dezelfde relaties als het oude.\n\n## Relaties Bewerken\n\nAls je relaties wilt bewerken, zijn hier de basisvaardigheden.\n\nOm een object aan een relatie toe te voegen, selecteer het object, klik op de \"+\"-knop in het \"Alle relaties\"-gedeelte van de zijbalk en selecteer of typ de naam van de relatie.\n\nOm een nieuwe relatie te maken, selecteer je het eerste object dat er deel van uit moet maken, klik je op de \"+\"-knop in het \"Alle relaties\"-gedeelte en kies je \"Nieuwe relatie …\"\n\nOm een object van een relatie te verwijderen, selecteer je dat object en klik je op de vuilnisbakknop naast de relatie waaruit je het object wil verwijderen.\n\nJe kan multipolygonen met gaten maken door het \"Samenvoegen\"-gereedschap te gebruken. Teken twee vlakken (de binnenkant en de buitenkant), hou de Shift-toets ingedrukt en klik achtereenvolgens op hen allemaal om ze te selecteren. Klik dan op de \"Samenvoegen\"-knop (+).\n" }, @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Toegang", - "placeholder": "Onbekend", - "types": { - "access": "Algemeen", - "foot": "Voet", - "motor_vehicle": "Motorvoertuigen", - "bicycle": "Fietsen", - "horse": "Paarden" - }, "options": { - "yes": { - "title": "Toegestaan", - "description": "Toegang bij wet toegestaan, recht van overpad" + "designated": { + "description": "Toegang toegestaan volgens bebording of specifieke, plaatselijke verordeningen", + "title": "Geadviseerd" + }, + "destination": { + "description": "Toegang uitsluitend voor bestemmingsverkeer", + "title": "Bestemming" }, "no": { - "title": "Verboden", - "description": "Toegang niet toegestaan voor het algemeen publiek" + "description": "Toegang niet toegestaan voor het algemeen publiek", + "title": "Verboden" }, "permissive": { - "title": "Niet-wettelijke bepaling", - "description": "Toegang toegestaan totdat de eigenaar de toestemming intrekt" + "description": "Toegang toegestaan totdat de eigenaar de toestemming intrekt", + "title": "Niet-wettelijke bepaling" }, "private": { - "title": "Privé", - "description": "Toegang slechts toegestaan met toestemming van de eigenaar op individuele basis" + "description": "Toegang slechts toegestaan met toestemming van de eigenaar op individuele basis", + "title": "Privé" }, - "designated": { - "title": "Geadviseerd", - "description": "Toegang toegestaan volgens bebording of specifieke, plaatselijke verordeningen" - }, - "destination": { - "title": "Bestemming", - "description": "Toegang uitsluitend voor bestemmingsverkeer" + "yes": { + "description": "Toegang bij wet toegestaan, recht van overpad", + "title": "Toegestaan" } + }, + "placeholder": "Onbekend", + "types": { + "access": "Algemeen", + "bicycle": "Fietsen", + "foot": "Voet", + "horse": "Paarden", + "motor_vehicle": "Motorvoertuigen" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adres", "placeholders": { + "city": "Stad", + "country": "Land", + "district": "Arrondissement", + "hamlet": "Gehucht", "housename": "Huisnaam", "housenumber": "123", - "street": "Straat", - "city": "Stad", - "postcode": "Postcode", "place": "Plaats", - "hamlet": "Gehucht", - "suburb": "Buitenwijk", - "subdistrict": "Sub-arrondissement", - "district": "Arrondissement", + "postcode": "Postcode", "province": "Provincie", "state": "Staat", - "country": "Land" + "street": "Straat", + "subdistrict": "Sub-arrondissement", + "suburb": "Buitenwijk" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Toegang", "options": { + "both": "Beide", "entry": "Ingang", - "exit": "Uitgang", - "both": "Beide" + "exit": "Uitgang" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Toegang (zomer)", "options": { + "both": "Beide", "entry": "Ingang", - "exit": "Uitgang", - "both": "Beide" + "exit": "Uitgang" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Richting", "options": { - "N": "Noord", "E": "Oost", - "S": "Zuid", - "W": "West", - "NE": "Noordoost", - "SE": "Zuidoost", - "SW": "Zuidwest", - "NW": "Noordwest", - "NNE": "Noordnoordoost", "ENE": "Oostnoordoost", "ESE": "Oostzuidoost", + "N": "Noord", + "NE": "Noordoost", + "NNE": "Noordnoordoost", + "NNW": "Noordnoordwest", + "NW": "Noordwest", + "S": "Zuid", + "SE": "Zuidoost", "SSE": "Zuidzuidoost", "SSW": "Zuidzuidwest", - "WSW": "Westzuidwest", + "SW": "Zuidwest", + "W": "West", "WNW": "Westnoordwest", - "NNW": "Noordnoordwest" + "WSW": "Westzuidwest" } }, "clock_direction": { "label": "Richting", "options": { - "clockwise": "Met de klok mee", - "anticlockwise": "Tegen de klok in" + "anticlockwise": "Tegen de klok in", + "clockwise": "Met de klok mee" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Type" }, + "content": { + "label": "Inhoud" + }, "country": { "label": "Land" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Bovenleiding", - "placeholder": "Contactleiding, Elektrisch Spoor …", "options": { "contact_line": "Contactleiding", + "no": "Nee", "rail": "Elektrisch Spoor", - "yes": "Ja (onbepaald)", - "no": "Nee" - } + "yes": "Ja (onbepaald)" + }, + "placeholder": "Contactleiding, Elektrisch Spoor …" }, "elevation": { "label": "Hoogte" @@ -811,9 +834,9 @@ "label": "TYpe", "options": { "pillar": "Pilaar/Bovengronds", + "pond": "Vijver", "underground": "Metro", - "wall": "Muur", - "pond": "Vijver" + "wall": "Muur" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Geslacht", - "placeholder": "Onbekend", "options": { - "male": "Mannelijk", "female": "Vrouwelijk", + "male": "Mannelijk", "unisex": "Unisex" - } + }, + "placeholder": "Onbekend" }, "generator/method": { "label": "Methode" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Helling", "options": { - "up": "Naar boven", - "down": "Naar beneden" + "down": "Naar beneden", + "up": "Naar boven" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Internettoegang", "options": { - "yes": "Ja", "no": "Nee", - "wlan": "Wifi", + "terminal": "Computer", "wired": "Vast netwerk", - "terminal": "Computer" + "wlan": "Wifi", + "yes": "Ja" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Bladercyclus", "options": { - "evergreen": "Groenblijvend", "deciduous": "Bladverliezend", - "semi_evergreen": "Half-Groenblijvend", + "evergreen": "Groenblijvend", + "mixed": "Gemengd", "semi_deciduous": "Half-Bladverliezend", - "mixed": "Gemengd" + "semi_evergreen": "Half-Groenblijvend" } }, "leaf_type": { "label": "Bladsoort", "options": { "broadleaved": "Brede bladeren", - "needleleaved": "Naalden", + "leafless": "Bladloos", "mixed": "Gemengd", - "leafless": "Bladloos" + "needleleaved": "Naalden" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Mountain Bike Moeilijkheidsgraad", - "placeholder": "0, 1, 2, 3 …", "options": { "0": "0: Vaste grind/aarde, geen obstakels, wijde bochten", "1": "1: Weinig losse ondergrond, kleine obstakels, wijde bochten", @@ -983,22 +1005,22 @@ "4": "4: Losse ondergrond of keien, gevaarlijke haarspeldbochten", "5": "5: Moeilijkst/gevaarlijkst, gebieden met rotsblokken, aardverschuivingen", "6": "6: Niet berijdbaar, enkel voor de allerbeste mountainbikers" - } + }, + "placeholder": "0, 1, 2, 3 …" }, "mtb/scale/imba": { "label": "IMBA Route-Moeilijkheidsgraad", - "placeholder": "Makkelijk, Gemiddeld, Moeilijk …", "options": { "0": "Gemakkelijkst (witte cirkel)", "1": "Makkelijk (groene cirkel)", "2": "Gemiddeld (blauw vierkant)", "3": "Moeilijk (Zwarte diamand)", "4": "Extreem moeilijk (dubbele zwarte diamand)" - } + }, + "placeholder": "Makkelijk, Gemiddeld, Moeilijk …" }, "mtb/scale/uphill": { "label": "Mountain biking Moeilijkheidsgraad Berg-op", - "placeholder": "0, 1, 2, 3 …", "options": { "0": "0: Gem. stijging <10%, grind/vaste aarde, geen obstakels", "1": "1: Gem. stijging <15%, grind/vaste aarde, paar kleine objecten", @@ -1006,7 +1028,8 @@ "3": "3: Gem. stijging <25%, variabele ondergrond, vuistgrote stenen/takken", "4": "4: Gem. stijging <30%, slechte staat, grote rotsen/takken", "5": "5: Erg steil, fiets wordt meestal geduwd of gedragen" - } + }, + "placeholder": "0, 1, 2, 3 …" }, "name": { "label": "Naam", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Eenrichtingsverkeer", "options": { + "no": "Nee", "undefined": "Aangenomen dat het Nee is", - "yes": "Ja", - "no": "Nee" + "yes": "Ja" } }, "oneway_yes": { "label": "Eenrichtingsverkeer", "options": { + "no": "Nee", "undefined": "Aangenomen dat het Ja is", - "yes": "Ja", - "no": "Nee" + "yes": "Ja" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Type", "options": { - "surface": "Oppervlak", - "multi-storey": "Parkeergebouw met meerdere verdiepingen", - "underground": "ondergrond", - "sheds": "Stallen", "carports": "Carports", "garage_boxes": "Garageboxen", - "lane": "Parkeerstrook" + "lane": "Parkeerstrook", + "multi-storey": "Parkeergebouw met meerdere verdiepingen", + "sheds": "Stallen", + "surface": "Oppervlak", + "underground": "ondergrond" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Moeilijkheidsgraad", - "placeholder": "Gemakkelijk, gemiddeld, moeilijk...", "options": { - "novice": "Beginner (educatief)", - "easy": "Makkelijk (groen rondje)", - "intermediate": "Gemiddeld (blauw vierkant)", "advanced": "Gevorderd (zwarte ruit)", + "easy": "Makkelijk (groen rondje)", "expert": "Expert (dubbele zwarte ruit)", + "extreme": "Extreem (klimuitrusting vereist)", "freeride": "Freeride (niet op piste)", - "extreme": "Extreem (klimuitrusting vereist)" - } + "intermediate": "Gemiddeld (blauw vierkant)", + "novice": "Beginner (educatief)" + }, + "placeholder": "Gemakkelijk, gemiddeld, moeilijk..." }, "piste/grooming": { "label": "Manier van sneeuw-grooming", "options": { - "classic": "Klassiek", - "mogul": "Buckel", "backcountry": "Freeride", + "classic": "Klassiek", "classic+skating": "Klassiek en Schaatsen", + "mogul": "Buckel", "scooter": "Scooter/Sneeuwscooter", "skating": "Schaatsen" } @@ -1097,14 +1120,14 @@ "label": "Type", "options": { "downhill": "Berg-af", + "hike": "Wandelen", + "ice_skate": "IJsschaatsen", "nordic": "Nordic", + "playground": "Speelplaats", "skitour": "Skitour", "sled": "Kleine slee", - "hike": "Wandelen", "sleigh": "Slee getrokken door dieren", - "ice_skate": "IJsschaatsen", - "snow_park": "Sneeuwpark", - "playground": "Speelplaats" + "snow_park": "Sneeuwpark" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Type" }, + "power_supply": { + "label": "Stroomvoorziening" + }, "railway": { "label": "Type" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Wandelen Moeilijkheidsgraad", - "placeholder": "Bergwandelen, Alpinewandelen …", "options": { - "hiking": "T1: Wandelen", - "mountain_hiking": "T2: Bergwandelen", - "demanding_mountain_hiking": "T3: Zwaar Bergwandelen", "alpine_hiking": "T4: Alpinewandelen", "demanding_alpine_hiking": "T5: Zwaar Alpinewandelen", - "difficult_alpine_hiking": "T6: Moeilijk Alpinewandelen" - } + "demanding_mountain_hiking": "T3: Zwaar Bergwandelen", + "difficult_alpine_hiking": "T6: Moeilijk Alpinewandelen", + "hiking": "T1: Wandelen", + "mountain_hiking": "T2: Bergwandelen" + }, + "placeholder": "Bergwandelen, Alpinewandelen …" + }, + "sanitary_dump_station": { + "label": "Toilet-afvoer" }, "seasonal": { "label": "Seizoensgebonden" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Kettinggereedschap", "options": { + "no": "Nee", "undefined": "Aangenomen dat het Nee is", - "yes": "Ja", - "no": "Nee" + "yes": "Ja" } }, "service/bicycle/pump": { "label": "Fietspomp", "options": { + "no": "Nee", "undefined": "Aangenomen dat het Nee is", - "yes": "Ja", - "no": "Nee" + "yes": "Ja" } }, "service_rail": { "label": "Type Dienstspoor", "options": { - "spur": "Aansluiting voor bedrijven", - "yard": "Bundel", + "crossover": "Wisselspoor", "siding": "Zijspoor", - "crossover": "Wisselspoor" + "spur": "Aansluiting voor bedrijven", + "yard": "Bundel" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Roken", - "placeholder": "Nee, Gescheiden, Ja …", "options": { - "no": "Roken nergens toegestaan", - "separated": "Roken toegestaan op aangegeven plaatsen, fysiek niet gescheiden", + "dedicated": "Toegespitst op rokers (bv. rookclub)", "isolated": "Roken toegestaan op aangegeven plaatsen, fysiek gescheiden", + "no": "Roken nergens toegestaan", "outside": "Toegestaan buiten", - "yes": "Overal toegestaan", - "dedicated": "Toegespitst op rokers (bv. rookclub)" - } + "separated": "Roken toegestaan op aangegeven plaatsen, fysiek niet gescheiden", + "yes": "Overal toegestaan" + }, + "placeholder": "Nee, Gescheiden, Ja …" }, "smoothness": { "label": "Gladheid", - "placeholder": "Dunne Wieltjes, Wielen, Offroad …", "options": { + "bad": "Stevige wielen: trekkingfiets, auto, riksja", "excellent": "Dunne wieltjes: rolschaatsen, skateboard", "good": "Dunne wielen: racefiets", + "horrible": "Offroad: zware offroadvoertuigen", + "impassable": "Ontoegankelijk / Geen voertuig op wielen", "intermediate": "Wielen: stadsfiets, rolstoel, scooter", - "bad": "Stevige wielen: trekkingfiets, auto, riksja", "very_bad": "Grote Bodemvrijheid: lichte offroadvoertuigen", - "horrible": "Offroad: zware offroadvoertuigen", - "very_horrible": "Gespecialiseerde offroad: tractor, quad", - "impassable": "Ontoegankelijk / Geen voertuig op wielen" - } + "very_horrible": "Gespecialiseerde offroad: tractor, quad" + }, + "placeholder": "Dunne Wieltjes, Wielen, Offroad …" }, "social_facility_for": { "label": "Bedoeld voor", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Constructie", - "placeholder": "Onbekend", "options": { "bridge": "Brug", - "tunnel": "Tunnel", - "embankment": "Dijk, talud", "cutting": "Landuitsnijding", - "ford": "fort" - } + "embankment": "Dijk, talud", + "ford": "fort", + "tunnel": "Tunnel" + }, + "placeholder": "Onbekend" }, "studio_type": { "label": "Type" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Afhaal", - "placeholder": "Ja, Nee, Alleen Afhaal …", "options": { - "yes": "Ja", "no": "Nee", - "only": "Alleen Afhaal" - } + "only": "Alleen Afhaal", + "yes": "Ja" + }, + "placeholder": "Ja, Nee, Alleen Afhaal …" }, "toilets/disposal": { "label": "Afvoer", "options": { - "flush": "Doorspoelen", - "pitlatrine": "Kuil/Latrine", + "bucket": "Emmer", "chemical": "Chemisch", - "bucket": "Emmer" + "flush": "Doorspoelen", + "pitlatrine": "Kuil/Latrine" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Type Veldweg", - "placeholder": "Vast, Voornamelijk Vast, Los …", "options": { "grade1": "Vast: verharde of zwaar compacte ondergrond", "grade2": "Voornamelijk Vast: grind/rotsen met wat los materiaal", "grade3": "Gelijke mengeling van vast en los materiaal", "grade4": "Voornamelijk Los: aarde/zand/gras met wat vast materiaal", "grade5": "Los: aarde/zand/gras" - } + }, + "placeholder": "Vast, Voornamelijk Vast, Los …" }, "trail_visibility": { "label": "Zichtbaarheid van de weg", - "placeholder": "Uitmuntend, Goed, Slecht …", "options": { + "bad": "Slecht: geen wegwijzers, paden soms zichtbaar/geen paden", "excellent": "Uitstekend: duidelijke paden en overal wegwijzers", "good": "Goed: zichtbare wegwijzers, soms wat zoeken", - "intermediate": "Gemiddeld: weinig wegwijzers, paden meestal zichtbaar", - "bad": "Slecht: geen wegwijzers, paden soms zichtbaar/geen paden", "horrible": "Verschikkelijk: meestal geen paden, wat oriëntatie vaardigheden vereist", + "intermediate": "Gemiddeld: weinig wegwijzers, paden meestal zichtbaar", "no": "Geen: geen paden, perfecte oriëntatie vaardigheden vereist" - } + }, + "placeholder": "Uitmuntend, Goed, Slecht …" }, "trees": { "label": "Bomen" @@ -1334,6 +1363,9 @@ "water": { "label": "Type" }, + "water_point": { + "label": "Watervoorziening" + }, "waterway": { "label": "Type" }, @@ -1466,6 +1498,10 @@ "name": "Fietsherstelpunt", "terms": "fietsonderhoud, onderhoud, banden, fietsbanden, fietspomp, fietsherstelstation, fietsenmaker" }, + "amenity/biergarten": { + "name": "Biergarten", + "terms": "bier,terras,café,cafe" + }, "amenity/boat_rental": { "name": "Bootverhuur", "terms": "boten, huren" @@ -1528,7 +1564,7 @@ }, "amenity/courthouse": { "name": "Gerechtsgebouw", - "terms": "rechtszaal, rechtbank, gerechtshof, paleis van justitie, justitiepaleis" + "terms": "rechtszaal,rechtbank,gerechtshof,paleis van justitie,justitiepaleis" }, "amenity/dentist": { "name": "Tandarts", @@ -1657,6 +1693,10 @@ "name": "Restaurant", "terms": "kantine, snackbar, lunchroom, pizzeria" }, + "amenity/sanitary_dump_station": { + "name": "Kampeerauto-toilet-afvoer", + "terms": "kampeerauto,beerput,camper,kampeerwagen,mobilhome,zwerfwagen,motorhome,uitwerpselen,urine,toilet" + }, "amenity/school": { "name": "Schoolgebied", "terms": "school, onderwijs, secundair onderwijs, lager onderwijs, basisschool, middelbaar, voortgezet onderwijs" @@ -1860,7 +1900,7 @@ }, "building/greenhouse": { "name": "Broeikas", - "terms": "serre, kas" + "terms": "serre,kas" }, "building/hospital": { "name": "Ziekenhuisgebouw", @@ -1872,7 +1912,7 @@ }, "building/house": { "name": "Huis", - "terms": "woning, woonst" + "terms": "woning,woonst,woongebied,huizen,residentieel,wonen,woonwijk,gebouw" }, "building/hut": { "name": "Hut", @@ -1890,7 +1930,7 @@ }, "building/residential": { "name": "Woongebouw", - "terms": "residentieel, huis, appartementsgebouw, flats" + "terms": "residentieel,huis,appartementsgebouw,flats" }, "building/retail": { "name": "Handelspand", @@ -1917,7 +1957,7 @@ }, "building/terrace": { "name": "Rijhuizen", - "terms": "rijtjeshuizen" + "terms": "rijtjeshuizen,huis,woningen,woonsten,woongebied,gebouw" }, "building/train_station": { "name": "Treinstation", @@ -1929,7 +1969,7 @@ }, "building/warehouse": { "name": "Opslagplaats", - "terms": "magazijn" + "terms": "magazijn,warenhuis" }, "craft": { "name": "Vakmanschap", @@ -2117,7 +2157,7 @@ }, "footway/crossing": { "name": "Zebrapad", - "terms": "oversteekplaats, voetganger" + "terms": "oversteekplaats,voetganger" }, "footway/crosswalk": { "name": "Zebrapad", @@ -2404,7 +2444,7 @@ }, "landuse/residential": { "name": "Woongebied", - "terms": "huizen, residentieel, wonen, woonwijk" + "terms": "huizen,residentieel,wonen,woonwijk" }, "landuse/retail": { "name": "Handelsgebied", @@ -2521,12 +2561,21 @@ "terms": "vlaggemast" }, "man_made/lighthouse": { - "name": "Vuurtoren" + "name": "Vuurtoren", + "terms": "lichtbaken" + }, + "man_made/mast": { + "name": "Zendmast", + "terms": "radiomast,antenne" }, "man_made/observation": { "name": "Uitkijktoren", "terms": "uitkijktoren" }, + "man_made/petroleum_well": { + "name": "Oliebron", + "terms": "olieput,gasbron" + }, "man_made/pier": { "name": "Pier" }, @@ -2534,6 +2583,14 @@ "name": "Pijpleiding", "terms": "pijplijn, pijpleiding" }, + "man_made/silo": { + "name": "Silo", + "terms": "veevoeder,graansilo" + }, + "man_made/storage_tank": { + "name": "Opslagtank", + "terms": "olietank,silo" + }, "man_made/survey_point": { "name": "Landmeetkundig referentiepunt" }, @@ -2711,6 +2768,10 @@ "place/city": { "name": "Stad" }, + "place/farm": { + "name": "Boerderij", + "terms": "hoeve,hof" + }, "place/hamlet": { "name": "Dorp/gehucht/buurtschap" }, @@ -2794,7 +2855,8 @@ "name": "Treinhalte" }, "railway/level_crossing": { - "name": "Gelijkvloerse spoorwegovergang" + "name": "Spoorwegovergang", + "terms": "overweg,treinspoor" }, "railway/monorail": { "name": "Monorail, magneetzweefbaan", @@ -3033,7 +3095,7 @@ }, "shop/houseware": { "name": "Huisraadwinkel", - "terms": "huiswaar, elektronica, meubilair, meubels, huishoudelijke elektronica, gebruiksvoorwerpen" + "terms": "huiswaar,elektronica,meubilair,meubels,huishoudelijke elektronica,gebruiksvoorwerpen" }, "shop/interior_decoration": { "name": "Binnenhuisdecoratiewinkel", @@ -3235,7 +3297,7 @@ }, "tourism/guest_house": { "name": "Pension", - "terms": "bed and breakfast,bed & breakfast,hotel" + "terms": "bed and breakfast,bed & breakfast,hotel,B&B" }, "tourism/hostel": { "name": "Jeugdherberg" @@ -3377,6 +3439,10 @@ "name": "Sloot", "terms": "greppel,gracht" }, + "waterway/fuel": { + "name": "Tankstation voor Boten", + "terms": "schip,brandstof" + }, "waterway/river": { "name": "Rivier", "terms": "stroom,beek" @@ -3385,6 +3451,10 @@ "name": "Rivieroever", "terms": "oever" }, + "waterway/sanitary_dump_station": { + "name": "Boot-toilet-afvoer", + "terms": "schip,uitwerpselen,urine,toilet" + }, "waterway/stream": { "name": "Beek", "terms": "stroom,rivier" diff --git a/vendor/assets/iD/iD/locales/no.json b/vendor/assets/iD/iD/locales/no.json index 39b970e11..c1efcb0dd 100644 --- a/vendor/assets/iD/iD/locales/no.json +++ b/vendor/assets/iD/iD/locales/no.json @@ -156,7 +156,6 @@ "commit": { "title": "Lagre endringer", "description_placeholder": "Kort beskrivelse av dine bidrag", - "message_label": "Lagre beskjed", "save": "Lagre", "cancel": "Avbryt", "warnings": "Advarsler", @@ -287,44 +286,44 @@ "fields": { "access": { "label": "Tilgang", - "placeholder": "Ukjent", - "types": { - "foot": "Fot", - "motor_vehicle": "Motorkjøretøy", - "bicycle": "Sykler", - "horse": "Hester" - }, "options": { - "yes": { - "title": "Tillatt", - "description": "Tilgang gitt av lov; fri tilgang" + "designated": { + "description": "Tilgang tillatt i henhold til skilt eller spesifike lokale lover" + }, + "destination": { + "description": "Tilgang kun tillatt for å nå et mål", + "title": "Mål" }, "no": { - "title": "Forbudt", - "description": "Tilgang ikke tillatt for allmennheten" + "description": "Tilgang ikke tillatt for allmennheten", + "title": "Forbudt" }, "permissive": { - "title": "Begrenset", - "description": "Tilgang tillatt frem til eieren trekker tillatelsen tilbake" + "description": "Tilgang tillatt frem til eieren trekker tillatelsen tilbake", + "title": "Begrenset" }, "private": { - "title": "Privat", - "description": "Tilgang tillatt kun ved tillatelse fra eieren på individuell basis" + "description": "Tilgang tillatt kun ved tillatelse fra eieren på individuell basis", + "title": "Privat" }, - "designated": { - "description": "Tilgang tillatt i henhold til skilt eller spesifike lokale lover" - }, - "destination": { - "title": "Mål", - "description": "Tilgang kun tillatt for å nå et mål" + "yes": { + "description": "Tilgang gitt av lov; fri tilgang", + "title": "Tillatt" } + }, + "placeholder": "Ukjent", + "types": { + "bicycle": "Sykler", + "foot": "Fot", + "horse": "Hester", + "motor_vehicle": "Motorkjøretøy" } }, "address": { "label": "Adresse", "placeholders": { - "street": "Gate", - "city": "By" + "city": "By", + "street": "Gate" } }, "admin_level": { @@ -377,8 +376,8 @@ "clock_direction": { "label": "Retning", "options": { - "clockwise": "Med klokken", - "anticlockwise": "Mot klokken" + "anticlockwise": "Mot klokken", + "clockwise": "Med klokken" } }, "collection_times": { @@ -451,9 +450,9 @@ "internet_access": { "label": "Internettilgang", "options": { - "wlan": "Trådløs", + "terminal": "Terminal", "wired": "Kablet", - "terminal": "Terminal" + "wlan": "Trådløs" } }, "landuse": { @@ -568,11 +567,11 @@ }, "structure": { "label": "Struktur", - "placeholder": "Ukjent", "options": { "bridge": "Bru", "tunnel": "Tunnel" - } + }, + "placeholder": "Ukjent" }, "studio_type": { "label": "Type" diff --git a/vendor/assets/iD/iD/locales/pl.json b/vendor/assets/iD/iD/locales/pl.json index dbdb73729..8d4c8cd6a 100644 --- a/vendor/assets/iD/iD/locales/pl.json +++ b/vendor/assets/iD/iD/locales/pl.json @@ -239,7 +239,6 @@ "commit": { "title": "Zapisz zmiany", "description_placeholder": "Zwięzły opis twoich zmian", - "message_label": "Opis zmian", "upload_explanation": "Zmiany, które wyślesz będą widoczne na wszystkich mapach używających danych OpenStreetMap.", "upload_explanation_with_user": "Zmiany, które wyślesz jako {user} będą widoczne na wszystkich mapach używających danych OpenStreetMap.", "save": "Zapisz", @@ -568,39 +567,39 @@ "fields": { "access": { "label": "Dostęp", - "placeholder": "Nieznane", - "types": { - "access": "Ogólny", - "foot": "Piesi", - "motor_vehicle": "Pojazdy silnikowe", - "bicycle": "Rowery", - "horse": "Konie" - }, "options": { - "yes": { - "title": "Dozwolony", - "description": "Dostęp przyznany przez prawo" + "designated": { + "description": "Dostęp jest dozwolony na podstawie znaków lub określonych przepisów lokalnych", + "title": "Wyznaczony" + }, + "destination": { + "description": "Dostęp dozwolony tylko by dotrzeć do celu", + "title": "Docelowy" }, "no": { - "title": "Zabroniony", - "description": "Niedostępne dla ogólnego ruchu" + "description": "Niedostępne dla ogólnego ruchu", + "title": "Zabroniony" }, "permissive": { - "title": "Dozwolony", - "description": "Dostęp dozwolony do czasu, gdy właściciel wycofa zgodę" + "description": "Dostęp dozwolony do czasu, gdy właściciel wycofa zgodę", + "title": "Dozwolony" }, "private": { - "title": "Prywatny", - "description": "Dostęp jest dozwolony tylko za zgodą właściciela na zasadzie indywidualnej" + "description": "Dostęp jest dozwolony tylko za zgodą właściciela na zasadzie indywidualnej", + "title": "Prywatny" }, - "designated": { - "title": "Wyznaczony", - "description": "Dostęp jest dozwolony na podstawie znaków lub określonych przepisów lokalnych" - }, - "destination": { - "title": "Docelowy", - "description": "Dostęp dozwolony tylko by dotrzeć do celu" + "yes": { + "description": "Dostęp przyznany przez prawo", + "title": "Dozwolony" } + }, + "placeholder": "Nieznane", + "types": { + "access": "Ogólny", + "bicycle": "Rowery", + "foot": "Piesi", + "horse": "Konie", + "motor_vehicle": "Pojazdy silnikowe" } }, "access_simple": { @@ -613,19 +612,19 @@ "address": { "label": "Adres", "placeholders": { + "city": "Miasto", + "country": "Kraj", + "district": "Dystrykt", + "hamlet": "Przysiółek", "housename": "Nazwa domu", "housenumber": "123", - "street": "Ulica", - "city": "Miasto", - "postcode": "Kod pocztowy", "place": "Miejsce", - "hamlet": "Przysiółek", - "suburb": "Dzielnica", - "subdistrict": "Sub-dystrykt", - "district": "Dystrykt", + "postcode": "Kod pocztowy", "province": "Prowincja", "state": "Stan", - "country": "Kraj" + "street": "Ulica", + "subdistrict": "Sub-dystrykt", + "suburb": "Dzielnica" } }, "admin_level": { @@ -637,9 +636,9 @@ "aerialway/access": { "label": "Dostęp", "options": { + "both": "Oba", "entry": "Wejście", - "exit": "Wyjście", - "both": "Oba" + "exit": "Wyjście" } }, "aerialway/bubble": { @@ -663,9 +662,9 @@ "aerialway/summer/access": { "label": "Dostępność w sezonie letnim", "options": { + "both": "Obydwa", "entry": "Wejście", - "exit": "Wyjście", - "both": "Obydwa" + "exit": "Wyjście" } }, "aeroway": { @@ -714,29 +713,29 @@ "cardinal_direction": { "label": "Kierunek", "options": { - "N": "Północ", "E": "Wschód", - "S": "Południe", - "W": "Zachód", - "NE": "Północny wschód", - "SE": "Południowy wschód", - "SW": "Południowy zachód", - "NW": "Północny zachód", - "NNE": "Północny północny wschód", "ENE": "Wschodni północny wschód", "ESE": "Wschodni południowy wschód", + "N": "Północ", + "NE": "Północny wschód", + "NNE": "Północny północny wschód", + "NNW": "Północny północny zachód", + "NW": "Północny zachód", + "S": "Południe", + "SE": "Południowy wschód", "SSE": "Południowy południowy wschód", "SSW": "Południowy południowy zachód", - "WSW": "Zachodni południowy zachód", + "SW": "Południowy zachód", + "W": "Zachód", "WNW": "Zachodni północny zachód", - "NNW": "Północny północny zachód" + "WSW": "Zachodni południowy zachód" } }, "clock_direction": { "label": "Kierunek", "options": { - "clockwise": "Zgodnie ze wskazówkami zegara", - "anticlockwise": "Przeciwnie do wskazówek zegara" + "anticlockwise": "Przeciwnie do wskazówek zegara", + "clockwise": "Zgodnie ze wskazówkami zegara" } }, "collection_times": { @@ -777,13 +776,13 @@ }, "electrified": { "label": "Elektryfikacja", - "placeholder": "Linia napowietrzna, Trzecia szyna", "options": { "contact_line": "Linia napowietrzna", + "no": "Nie", "rail": "Trzecia szyna", - "yes": "Tak (nieokreślone)", - "no": "Nie" - } + "yes": "Tak (nieokreślone)" + }, + "placeholder": "Linia napowietrzna, Trzecia szyna" }, "elevation": { "label": "Wysokość" @@ -808,9 +807,9 @@ "label": "Typ", "options": { "pillar": "Nadziemny", + "pond": "Staw", "underground": "Podziemny", - "wall": "Mur", - "pond": "Staw" + "wall": "Mur" } }, "fixme": { @@ -851,12 +850,12 @@ }, "gender": { "label": "Płeć", - "placeholder": "Nieznana", "options": { - "male": "Mężczyzna", "female": "Kobieta", + "male": "Mężczyzna", "unisex": "Dla obu płci" - } + }, + "placeholder": "Nieznana" }, "generator/method": { "label": "Metoda" @@ -897,8 +896,8 @@ "incline_steps": { "label": "Nachylenie", "options": { - "up": "W górę", - "down": "W dół" + "down": "W dół", + "up": "W górę" } }, "information": { @@ -907,11 +906,11 @@ "internet_access": { "label": "Dostęp do internetu", "options": { - "yes": "Tak", "no": "Nie", - "wlan": "Bezprzewodowy", + "terminal": "Terminal", "wired": "Przewodowy", - "terminal": "Terminal" + "wlan": "Bezprzewodowy", + "yes": "Tak" } }, "lamp_type": { @@ -930,19 +929,19 @@ "leaf_cycle": { "label": "Cykl życiowy", "options": { - "evergreen": "Zimozielone", "deciduous": "Zrzucające liście na zimę", - "semi_deciduous": "Zrzucające liście, tropikalne", - "mixed": "Mieszane" + "evergreen": "Zimozielone", + "mixed": "Mieszane", + "semi_deciduous": "Zrzucające liście, tropikalne" } }, "leaf_type": { "label": "Kategoria", "options": { "broadleaved": "Liściaste", - "needleleaved": "Iglaste", + "leafless": "Bezlistne", "mixed": "Mieszane", - "leafless": "Bezlistne" + "needleleaved": "Iglaste" } }, "leisure": { @@ -970,7 +969,6 @@ }, "mtb/scale": { "label": "Skala trudności dla rowerów górskich", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Ubita nawierzchnia żwirowa lub ziemna, brak przeszkód, szerokie zakręty", "1": "1: Trochę luźnej nawierzchni, niewielkie przeszkody, szerokie zakręty", @@ -979,22 +977,22 @@ "4": "4: Piasek lub kamienie, niebezpieczne zakręty", "5": "5: Maksymalnie trudny szlak, gołoborza, lawiniska", "6": "6: Teren praktycznie nieprzejezdny dla rowerów górskich poza wyczynem - trial, ekstremalne dh itp." - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Skala trudności szlaków dla rowerów górskich IMBA", - "placeholder": "Łatwy, Wymagający, Trudny...", "options": { "0": "Najłatwiejszy (biały okrąg)", "1": "Łatwy (zielony okrąg)", "2": "Wymagający (niebieski kwadrat)", "3": "Trudny (czarny romb)", "4": "Ekstremalnie trudny (podwójny czarny romb)" - } + }, + "placeholder": "Łatwy, Wymagający, Trudny..." }, "mtb/scale/uphill": { "label": "Skala trudności podjazdów dla rowerów górskich ", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Śr. nachylenie <10%, żwir/ubita ziemia, brak przeszkód", "1": "1: Śr. nachylenie <15%, żwir/ubita ziemia, kilka mniejszych obiektów", @@ -1002,7 +1000,8 @@ "3": "3: Śr. nachylenie <25%, zróżnicowane podłoże, kamienie wielkości pięści/gałęzie", "4": "4: Śr. nachylenie <30%, zły stan, duże kamienie/gałęzie", "5": "5: Bardzo strome, rower zwykle musi być wprowadzony" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nazwa", @@ -1023,17 +1022,17 @@ "oneway": { "label": "Jednokierunkowa", "options": { + "no": "Nie", "undefined": "Domyślnie nie", - "yes": "Tak", - "no": "Nie" + "yes": "Tak" } }, "oneway_yes": { "label": "Jednokierunkowa", "options": { + "no": "Nie", "undefined": "Domyślnie tak", - "yes": "Tak", - "no": "Nie" + "yes": "Tak" } }, "opening_hours": { @@ -1052,13 +1051,13 @@ "parking": { "label": "Typ", "options": { - "surface": "Naziemny", - "multi-storey": "Wielopoziomowy", - "underground": "Podziemny", - "sheds": "Garaże", "carports": "Wiaty", "garage_boxes": "Boksy garażowe", - "lane": "Pas na jezdni" + "lane": "Pas na jezdni", + "multi-storey": "Wielopoziomowy", + "sheds": "Garaże", + "surface": "Naziemny", + "underground": "Podziemny" } }, "phone": { @@ -1132,17 +1131,17 @@ "service/bicycle/chain_tool": { "label": "Skuwacz łańcucha", "options": { + "no": "Nie", "undefined": "Domyślnie nie", - "yes": "Tak", - "no": "Nie" + "yes": "Tak" } }, "service/bicycle/pump": { "label": "Pompowanie", "options": { + "no": "Nie", "undefined": "Domyślnie nie", - "yes": "Tak", - "no": "Nie" + "yes": "Tak" } }, "shelter": { @@ -1159,29 +1158,29 @@ }, "smoking": { "label": "Dla palących", - "placeholder": "Nie, Wydzielone, Tak...", "options": { - "no": "Całkowity zakaz palenia", - "separated": "W miejscach dla palących, nieoddzielonych fizycznie", + "dedicated": "Miejsce dla palących (np. klub palaczy)", "isolated": "W miejscach dla palących, fizycznie oddzielonych", + "no": "Całkowity zakaz palenia", "outside": "Dozwolone na zewnątrz", - "yes": "Dozwolone wszędzie", - "dedicated": "Miejsce dla palących (np. klub palaczy)" - } + "separated": "W miejscach dla palących, nieoddzielonych fizycznie", + "yes": "Dozwolone wszędzie" + }, + "placeholder": "Nie, Wydzielone, Tak..." }, "smoothness": { "label": "Gładkość", - "placeholder": "Cienkie kółka, Koła, Off-road...", "options": { + "bad": "Solidne koła: rower trekkingowy, samochód, riksza", "excellent": "Cienkie kółka: łyżworolki, skateboard", "good": "Cienkie koła: rower szosowy", + "horrible": "Off-road: ciężki pojazd terenowy", + "impassable": "Nieprzejezdne / nie dla pojazdów kołowych", "intermediate": "Koła: rower miejski, wózek inwalidzki, skuter", - "bad": "Solidne koła: rower trekkingowy, samochód, riksza", "very_bad": "Duży prześwit: lekki pojazd terenowy", - "horrible": "Off-road: ciężki pojazd terenowy", - "very_horrible": "Wyspecjalizowany off-road: traktor, ATV (quad)", - "impassable": "Nieprzejezdne / nie dla pojazdów kołowych" - } + "very_horrible": "Wyspecjalizowany off-road: traktor, ATV (quad)" + }, + "placeholder": "Cienkie kółka, Koła, Off-road..." }, "social_facility_for": { "label": "Przeznaczone dla osób", @@ -1201,14 +1200,14 @@ }, "structure": { "label": "Struktura", - "placeholder": "Nieznane", "options": { "bridge": "Most", - "tunnel": "Tunel", - "embankment": "Nasyp", "cutting": "Wykop", - "ford": "Bród" - } + "embankment": "Nasyp", + "ford": "Bród", + "tunnel": "Tunel" + }, + "placeholder": "Nieznane" }, "studio_type": { "label": "Typ" @@ -1226,20 +1225,21 @@ "label": "Wypustki dla niewidomych" }, "takeaway": { - "placeholder": "Tak, Nie, Tylko na wynos...", + "label": "Na wynos", "options": { - "yes": "Tak", "no": "Nie", - "only": "Tylko na wynos." - } + "only": "Tylko na wynos.", + "yes": "Tak" + }, + "placeholder": "Tak, Nie, Tylko na wynos..." }, "toilets/disposal": { "label": "Opróżnianie", "options": { - "flush": "Spuszczanie wody", - "pitlatrine": "Latryna", + "bucket": "Wiadro", "chemical": "Chemiczne", - "bucket": "Wiadro" + "flush": "Spuszczanie wody", + "pitlatrine": "Latryna" } }, "tourism": { @@ -1250,14 +1250,14 @@ }, "tracktype": { "label": "Typ drogi nieutwardzonej", - "placeholder": "Utwardzona, nieubita...", "options": { "grade1": "Utwardzona lub mocna ubita nawierzchnia", "grade2": "Żwirowa z niewielką domieszką piasku, mułu lub gliny", "grade3": "Składająca się z równej ilości twardych i miękkich materiałów", "grade4": "Ziemia/piasek/trawa z domieszką twardych materiałów", "grade5": "Ziemia/piasek/trawa, bez dodatku materiałów utwardzonych, słabo widoczna" - } + }, + "placeholder": "Utwardzona, nieubita..." }, "trail_visibility": { "label": "Widoczność szlaku", @@ -1445,7 +1445,7 @@ "terms": "duży ekran,drive-in,film,ruchomy obraz,pokaz zdjęć,zdjęcia,pokaz,silver screen" }, "amenity/clinic": { - "name": "Przychodnia lekarska", + "name": "Klinika", "terms": "ośrodek zdrowia, zoz, nzoz, opieka zdrowotna" }, "amenity/clock": { @@ -1470,8 +1470,8 @@ "terms": "stomatolog, gabinet stomatologiczny" }, "amenity/doctor": { - "name": "Doktor", - "terms": "lekarz,doktor,konował,medyk,uzdrowiciel" + "name": "Gabinet lub przychodnia lekarska", + "terms": "lekarz, doktor, medyk, uzdrowiciel, nzoz, zoz, spzoz, gabinet lekarski" }, "amenity/dojo": { "name": "Dojo/szkoła sztuk walki" @@ -1583,7 +1583,7 @@ }, "amenity/restaurant": { "name": "Restauracja", - "terms": "bar,kawiarnia,stołówka,jadalnia,drive-in,knajpa,jadłodajnia,fast food,grill,gospoda,klub nocny,pizzeria" + "terms": "bar,kawiarnia,stołówka,jadalnia,drive-in,knajpa,jadłodajnia,fast food,grill,gospoda,klub nocny,pizzeria,karczma,zajazd" }, "amenity/school": { "name": "Teren szkoły" @@ -2542,7 +2542,7 @@ }, "office/accountant": { "name": "Księgowy", - "terms": "księgowy" + "terms": "biuro rachunkowe, księgowość, rachun" }, "office/administrative": { "name": "Biuro samorządowe" @@ -2578,7 +2578,8 @@ "name": "Biuro branży IT (informatycznej)" }, "office/lawyer": { - "name": "Biuro prawnicze" + "name": "Biuro prawnicze", + "terms": "prawnik, kancelaria, adwokat, radca" }, "office/newspaper": { "name": "Gazeta" @@ -3134,7 +3135,7 @@ "name": "Domek gościnny" }, "tourism/hostel": { - "name": "Schronisko", + "name": "Schronisko lub hostel", "terms": "Hostel" }, "tourism/hotel": { diff --git a/vendor/assets/iD/iD/locales/pt-BR.json b/vendor/assets/iD/iD/locales/pt-BR.json index 9e8e67924..36ed347c0 100644 --- a/vendor/assets/iD/iD/locales/pt-BR.json +++ b/vendor/assets/iD/iD/locales/pt-BR.json @@ -239,7 +239,6 @@ "commit": { "title": "Salvar Alterações", "description_placeholder": "Descrição curta e clara de suas contribuições", - "message_label": "Mensagem de alteração", "upload_explanation": "As alterações que você enviar ficarão visíveis em todos os mapas que usam dados do OpenStreetMap.", "upload_explanation_with_user": "As alterações que você enviar como {user} estarão visíveis em todos os mapas que usam os dados do OpenStreetMap.", "save": "Salvar", @@ -254,6 +253,22 @@ "list": "Edições de {users}", "truncated_list": "Edições de {users} e {count} outros" }, + "infobox": { + "selected": "{n} selecionados", + "geometry": "Geometria", + "perimeter": "Perímetro", + "length": "Comprimento", + "area": "Área", + "centroid": "Centróide", + "location": "Localização" + }, + "geometry": { + "point": "ponto", + "vertex": "vértice", + "line": "linha", + "area": "área", + "relation": "relação" + }, "geocoder": { "search": "Buscar no mundo todo...", "no_results_visible": "Sem resultados nesta área visível do mapa", @@ -568,39 +583,39 @@ "fields": { "access": { "label": "Acesso", - "placeholder": "Desconhecido", - "types": { - "access": "Geral", - "foot": "Pedestres", - "motor_vehicle": "Veículos Automotores", - "bicycle": "Bicicletas", - "horse": "Cavalos" - }, "options": { - "yes": { - "title": "Público", - "description": "Acesso permitido por lei; via pública com direito de passagem" + "designated": { + "description": "Acesso designado por placas (ou leis locais) para uso preferencial por veículos específicos", + "title": "Designado" + }, + "destination": { + "description": "Acesso permitido apenas na saída ou na chegada a um destino", + "title": "Destino" }, "no": { - "title": "Proibido", - "description": "Acesso não permitido ao público em geral" + "description": "Acesso não permitido ao público em geral", + "title": "Proibido" }, "permissive": { - "title": "Autorizado", - "description": "Acesso livre e autorizado (mas cancelável) pelo dono" + "description": "Acesso livre e autorizado (mas cancelável) pelo dono", + "title": "Autorizado" }, "private": { - "title": "Privado", - "description": "Acesso requer permissão prévia do dono, dada individualmente" + "description": "Acesso requer permissão prévia do dono, dada individualmente", + "title": "Privado" }, - "designated": { - "title": "Designado", - "description": "Acesso designado por placas (ou leis locais) para uso preferencial por veículos específicos" - }, - "destination": { - "title": "Destino", - "description": "Acesso permitido apenas na saída ou na chegada a um destino" + "yes": { + "description": "Acesso permitido por lei; via pública com direito de passagem", + "title": "Público" } + }, + "placeholder": "Desconhecido", + "types": { + "access": "Geral", + "bicycle": "Bicicletas", + "foot": "Pedestres", + "horse": "Cavalos", + "motor_vehicle": "Veículos Automotores" } }, "access_simple": { @@ -613,19 +628,19 @@ "address": { "label": "Endereço", "placeholders": { + "city": "Município", + "country": "País", + "district": "Distrito", + "hamlet": "Lugarejo", "housename": "Nome da casa", "housenumber": "123", - "street": "Rua", - "city": "Município", - "postcode": "CEP", "place": "Local", - "hamlet": "Lugarejo", - "suburb": "Bairro", - "subdistrict": "Sub-Bairro", - "district": "Distrito", + "postcode": "CEP", "province": "Província", "state": "Estado", - "country": "País" + "street": "Rua", + "subdistrict": "Sub-Bairro", + "suburb": "Bairro" } }, "admin_level": { @@ -637,9 +652,9 @@ "aerialway/access": { "label": "Acesso", "options": { + "both": "Ambos", "entry": "Entrada", - "exit": "Saída", - "both": "Ambos" + "exit": "Saída" } }, "aerialway/bubble": { @@ -663,9 +678,9 @@ "aerialway/summer/access": { "label": "Acesso (verão)", "options": { + "both": "Ambos", "entry": "Entrada", - "exit": "Saída", - "both": "Ambos" + "exit": "Saída" } }, "aeroway": { @@ -714,29 +729,29 @@ "cardinal_direction": { "label": "Direção", "options": { - "N": "Norte", "E": "Leste", - "S": "Sul", - "W": "Oeste", - "NE": "Nordeste", - "SE": "Sudeste", - "SW": "Sudoeste", - "NW": "Noroeste", - "NNE": "Nor-nordeste", "ENE": "És-nordeste", "ESE": "És-sudeste", + "N": "Norte", + "NE": "Nordeste", + "NNE": "Nor-nordeste", + "NNW": "Nor-noroeste", + "NW": "Noroeste", + "S": "Sul", + "SE": "Sudeste", "SSE": "Su-sudeste", "SSW": "Su-sudoeste", - "WSW": "Oés-sudoeste", + "SW": "Sudoeste", + "W": "Oeste", "WNW": "Oés-noroeste", - "NNW": "Nor-noroeste" + "WSW": "Oés-sudoeste" } }, "clock_direction": { "label": "Direção", "options": { - "clockwise": "Sentido Horário", - "anticlockwise": "Sentido Anti-horário" + "anticlockwise": "Sentido Anti-horário", + "clockwise": "Sentido Horário" } }, "collection_times": { @@ -745,6 +760,9 @@ "construction": { "label": "Tipo" }, + "content": { + "label": "Conteúdo" + }, "country": { "label": "País" }, @@ -780,13 +798,13 @@ }, "electrified": { "label": "Eletrificação", - "placeholder": "Linha de contato, trilho eletrificado...", "options": { "contact_line": "Linha de contato", + "no": "Não", "rail": "Trilho eletrificado", - "yes": "Sim (indefinido)", - "no": "Não" - } + "yes": "Sim (indefinido)" + }, + "placeholder": "Linha de contato, trilho eletrificado..." }, "elevation": { "label": "Altitude" @@ -811,9 +829,9 @@ "label": "Tipo", "options": { "pillar": "Pilar/Sobre o solo", + "pond": "Lagoa", "underground": "Subterrâneo", - "wall": "Muro", - "pond": "Lagoa" + "wall": "Muro" } }, "fixme": { @@ -854,12 +872,12 @@ }, "gender": { "label": "Gênero", - "placeholder": "Desconhecido", "options": { - "male": "Masculino", "female": "Feminino", + "male": "Masculino", "unisex": "Unissex" - } + }, + "placeholder": "Desconhecido" }, "generator/method": { "label": "Método" @@ -900,8 +918,8 @@ "incline_steps": { "label": "Inclinação", "options": { - "up": "Para cima", - "down": "Para baixo" + "down": "Para baixo", + "up": "Para cima" } }, "information": { @@ -910,11 +928,11 @@ "internet_access": { "label": "Acesso à Internet", "options": { - "yes": "Sim", "no": "Não", - "wlan": "Sem Fio", + "terminal": "Terminal de Acesso", "wired": "Cabeada", - "terminal": "Terminal de Acesso" + "wlan": "Sem Fio", + "yes": "Sim" } }, "lamp_type": { @@ -933,20 +951,20 @@ "leaf_cycle": { "label": "Ciclo de Folhagem", "options": { - "evergreen": "Perenifólia", "deciduous": "Caducifólia", - "semi_evergreen": "Semi-perenifólia", + "evergreen": "Perenifólia", + "mixed": "Mista", "semi_deciduous": "Semi-caducifólia", - "mixed": "Mista" + "semi_evergreen": "Semi-perenifólia" } }, "leaf_type": { "label": "Tipo de Folha", "options": { "broadleaved": "Latifoliada", - "needleleaved": "Acicufoliada", + "leafless": "Sem folhas", "mixed": "Mista", - "leafless": "Sem folhas" + "needleleaved": "Acicufoliada" } }, "leisure": { @@ -974,7 +992,6 @@ }, "mtb/scale": { "label": "Dificuldade para Mountain Biking", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Pedregulho sólido / terra batida, sem obstáculos, curvas amplas", "1": "1: Alguma terra solta, pequenos obstáculos, curvas amplas", @@ -983,22 +1000,22 @@ "4": "4: Terra solta ou seixos, curva fechada perigosa", "5": "5: Dificuldade máxima, pedreira, deslizamentos de terra", "6": "6: Não é transitável exceto pelos melhores mountain bikers" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Trilha de baixa dificuldade", - "placeholder": "Fácil, Médio, Difícil...", "options": { "0": "Mais fácil (cículo branco)", "1": "Fácil (círculo verde)", "2": "Médio (quadrado azul)", "3": "Difícil (diamante negro)", "4": "Extremamente Difícil (duplo diamante negro)" - } + }, + "placeholder": "Fácil, Médio, Difícil..." }, "mtb/scale/uphill": { "label": "Dificuldade do aclive do Mountain Biking", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Inclinação média <10%, pedregulho/terra batida, sem obstáculos", "1": "1: Inclinação média <15%, pedregulho/terra batida, poucos objetos pequenos", @@ -1006,7 +1023,8 @@ "3": "3: Inclinação média <25%, superfície variável, pedras/galhos do tamanho do punho", "4": "4: Inclinação média <30%, condição insatisfatória, pedras/galhos grandes", "5": "5: Muito íngreme, geralmente a bicicleta precisa ser empurrada ou carregada" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nome", @@ -1027,17 +1045,17 @@ "oneway": { "label": "Mão Única", "options": { + "no": "Não", "undefined": "Assumindo ser Não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "oneway_yes": { "label": "Mão Única", "options": { + "no": "Não", "undefined": "Assumindo ser Sim", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "opening_hours": { @@ -1056,13 +1074,13 @@ "parking": { "label": "Tipo", "options": { - "surface": "Superfície", - "multi-storey": "Vários níveis", - "underground": "Subterrâneo", - "sheds": "Cabanas", "carports": "Abrigo de carros", "garage_boxes": "Vagas de estacionamento", - "lane": "Faixa de acostamento" + "lane": "Faixa de acostamento", + "multi-storey": "Vários níveis", + "sheds": "Cabanas", + "surface": "Superfície", + "underground": "Subterrâneo" } }, "phone": { @@ -1071,24 +1089,24 @@ }, "piste/difficulty": { "label": "Dificuldade", - "placeholder": "Fácil, Intermediário, Avançado...", "options": { - "novice": "Principiante (educativo)", - "easy": "Fácil (círculo verde)", - "intermediate": "Intermediário (quadrado azul)", "advanced": "Avançado (diamante preto)", + "easy": "Fácil (círculo verde)", "expert": "Especialista (duplo diamante preto)", + "extreme": "Extremo (necessário equipamento de escalada)", "freeride": "Trajeto livre (fora da pista)", - "extreme": "Extremo (necessário equipamento de escalada)" - } + "intermediate": "Intermediário (quadrado azul)", + "novice": "Principiante (educativo)" + }, + "placeholder": "Fácil, Intermediário, Avançado..." }, "piste/grooming": { "label": "Tosa de Animais", "options": { - "classic": "Clássico", - "mogul": "Mongol", "backcountry": "Sertão", + "classic": "Clássico", "classic+skating": "Clássico e Patinação", + "mogul": "Mongol", "scooter": "Lambreta/Moto de neve", "skating": "Patinação" } @@ -1097,14 +1115,14 @@ "label": "Modelo", "options": { "downhill": "Declive", + "hike": "Caminhada", + "ice_skate": "Patim de gelo", "nordic": "Nórdico", + "playground": "Playground", "skitour": "Passeio de esqui", "sled": "Trenó", - "hike": "Caminhada", "sleigh": "Trenó", - "ice_skate": "Patim de gelo", - "snow_park": "Estação de Esqui", - "playground": "Playground" + "snow_park": "Estação de Esqui" } }, "place": { @@ -1116,6 +1134,9 @@ "power": { "label": "Tipo" }, + "power_supply": { + "label": "Fonte de Energia" + }, "railway": { "label": "Tipo" }, @@ -1154,15 +1175,18 @@ }, "sac_scale": { "label": "Dificuldade da caminhada", - "placeholder": "Caminhada na montanha, caminhada alpina", "options": { - "hiking": "T1: Caminhada", - "mountain_hiking": "T2: Caminhada na montanha", - "demanding_mountain_hiking": "T3: Requer caminhada na montanha", "alpine_hiking": "T4: Caminhada alpina", "demanding_alpine_hiking": "T5: Requer caminhada alpina", - "difficult_alpine_hiking": "T6: Dificuldade de caminhada alpina" - } + "demanding_mountain_hiking": "T3: Requer caminhada na montanha", + "difficult_alpine_hiking": "T6: Dificuldade de caminhada alpina", + "hiking": "T1: Caminhada", + "mountain_hiking": "T2: Caminhada na montanha" + }, + "placeholder": "Caminhada na montanha, caminhada alpina" + }, + "sanitary_dump_station": { + "label": "Ponto de Descarga de Dejetos" }, "seasonal": { "label": "Sazonal" @@ -1173,26 +1197,26 @@ "service/bicycle/chain_tool": { "label": "Ferramenta de corrente", "options": { + "no": "Não", "undefined": "Presume-se que não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "service/bicycle/pump": { "label": "Bomba de ar", "options": { + "no": "Não", "undefined": "Assumindo ser Não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "service_rail": { "label": "Tipo de serviço", "options": { - "spur": "Ramal de inserção", - "yard": "Pátio de manobra", + "crossover": "Linha de serviço", "siding": "Linha de ultrapassagem", - "crossover": "Linha de serviço" + "spur": "Ramal de inserção", + "yard": "Pátio de manobra" } }, "shelter": { @@ -1209,29 +1233,29 @@ }, "smoking": { "label": "Fumantes", - "placeholder": "Não, Separado, Yes...", "options": { - "no": "Não fume em qualquer lugar", - "separated": "Em áreas de fumantes, não fisicamente isoladas", + "dedicated": "Dedicado a fumantes (por exemplo, clube de fumantes)", "isolated": "Em áreas de fumantes, fisicamente isoladas", + "no": "Não fume em qualquer lugar", "outside": "Permitido do lado de fora", - "yes": "Permitido em toda parte", - "dedicated": "Dedicado a fumantes (por exemplo, clube de fumantes)" - } + "separated": "Em áreas de fumantes, não fisicamente isoladas", + "yes": "Permitido em toda parte" + }, + "placeholder": "Não, Separado, Yes..." }, "smoothness": { "label": "Maciez", - "placeholder": "Cilindros estreitos, rodas, fora de estrada", "options": { + "bad": "Rodas resistentes: trekking bike, carro, riquixá", "excellent": "Cilindros estreitos: patins urbano, prancha de skate ", "good": "Rodas estreintas: bicicleta de corridas", + "horrible": "Fora de estrada: veículo fora de estrada para serviço pesado.", + "impassable": "Intransponível / Nenhum veículo sobre rodas", "intermediate": "Rodas: bicicleta urbana, cadeira de rodas, lambreta", - "bad": "Rodas resistentes: trekking bike, carro, riquixá", "very_bad": "Alta desobstrução: veículo fora de estrada para serviço leve", - "horrible": "Fora de estrada: veículo fora de estrada para serviço pesado.", - "very_horrible": "Especializado em fora de estrada: trator, quadriciclo", - "impassable": "Intransponível / Nenhum veículo sobre rodas" - } + "very_horrible": "Especializado em fora de estrada: trator, quadriciclo" + }, + "placeholder": "Cilindros estreitos, rodas, fora de estrada" }, "social_facility_for": { "label": "Pessoas atendidas", @@ -1251,14 +1275,14 @@ }, "structure": { "label": "Estrutura", - "placeholder": "Desconhecido", "options": { "bridge": "Ponte", - "tunnel": "Túnel", - "embankment": "Aterro Elevado", "cutting": "Escavação", - "ford": "Vau" - } + "embankment": "Aterro Elevado", + "ford": "Vau", + "tunnel": "Túnel" + }, + "placeholder": "Desconhecido" }, "studio_type": { "label": "Tipo" @@ -1277,20 +1301,20 @@ }, "takeaway": { "label": "Para viagem", - "placeholder": "Sim, Não, Somente para viagem...", "options": { - "yes": "Sim", "no": "Não", - "only": "Somente para viagem" - } + "only": "Somente para viagem", + "yes": "Sim" + }, + "placeholder": "Sim, Não, Somente para viagem..." }, "toilets/disposal": { "label": "Descarte", "options": { - "flush": "Descarga", - "pitlatrine": "Fossa/Latrina", + "bucket": "Balde", "chemical": "Químico", - "bucket": "Balde" + "flush": "Descarga", + "pitlatrine": "Fossa/Latrina" } }, "tourism": { @@ -1301,26 +1325,26 @@ }, "tracktype": { "label": "Tipo de trilha", - "placeholder": "Sólido, Na maioria das vezes sólido, Macio...", "options": { "grade1": "Sólido: Pavimentado ou superfície de pedra britada fortemente compactada", "grade2": "Na maioria das vezes sólido: Cascalho/rocha com algum material macio mesclado.", "grade3": "Mistura em parte iguais de materiais duros e macios", "grade4": "Na maioria das vezes macio: terra/areia/grama com algum material duro mesclado.", "grade5": "Macio: terra/areia/grama" - } + }, + "placeholder": "Sólido, Na maioria das vezes sólido, Macio..." }, "trail_visibility": { "label": "Visibilidade da Trilha", - "placeholder": "Excelente, Bom, Ruim...", "options": { + "bad": "Ruim: sem sinais, o caminho algumas vezes não é visível ou não existe", "excellent": "Excelente: caminho claro ou sinais em toda a parte", "good": "Bom: sinais visíveis, algumas vezes requer uma busca", - "intermediate": "Intermediário: poucos sinais, caminho visível na maioria das vezes", - "bad": "Ruim: sem sinais, o caminho algumas vezes não é visível ou não existe", "horrible": "Horrível: frequentemente sem caminho, algumas habilidades em localização são necessárias", + "intermediate": "Intermediário: poucos sinais, caminho visível na maioria das vezes", "no": "Não: sem caminho, são necessárias excelentes habilidades em localização" - } + }, + "placeholder": "Excelente, Bom, Ruim..." }, "trees": { "label": "Árvores" @@ -1496,7 +1520,7 @@ "terms": "Aluguel de Carros" }, "amenity/car_sharing": { - "name": "Carsharing", + "name": "Compartilhamento de carros", "terms": "Carsharing, " }, "amenity/car_wash": { @@ -1671,13 +1695,16 @@ "name": "Restaurante", "terms": "Restaurante" }, + "amenity/sanitary_dump_station": { + "name": "Ponto de Descarga de Dejetos (para trailers)" + }, "amenity/school": { "name": "Escola", "terms": "Área Escolar, Terreno Escolar, Pátio Escolar" }, "amenity/shelter": { - "name": "Abrigo", - "terms": "Abrigo" + "name": "Abrigo contra Intempéries", + "terms": "Abrigo contra Intempéries" }, "amenity/social_facility": { "name": "Unidade de Assistência Social", @@ -1725,7 +1752,7 @@ }, "amenity/university": { "name": "Área Universitária", - "terms": "Área de Universidade" + "terms": "Área de Universidade, Faculdade, Área de Faculdade, Centro Universitário" }, "amenity/vending_machine": { "name": "Máquina de Venda", @@ -1848,7 +1875,7 @@ "terms": "Igreja" }, "building/college": { - "name": "Edifício de escola técnica", + "name": "Edifício de Escola Técnica", "terms": "Colégio técnico, Ensino profissionalizante, Educação profissional" }, "building/commercial": { @@ -1857,7 +1884,7 @@ }, "building/construction": { "name": "Edifício em construção", - "terms": "Edificação em Construção" + "terms": "Edificação em Construção, Construção, Obras" }, "building/detached": { "name": "Casa Separada", @@ -1949,7 +1976,7 @@ }, "building/university": { "name": "Edifício Universitário", - "terms": "Edifício Universitário" + "terms": "Edifício Universitário, Faculdade, Edifício de Faculdade" }, "building/warehouse": { "name": "Armazém", @@ -2440,16 +2467,16 @@ "terms": "Construção" }, "landuse/farm": { - "name": "Fazenda", - "terms": "Campo agrícola, agricultura, campanha, quinta, agrícola, rural, terra arável" + "name": "Área de Plantação", + "terms": "Campo agrícola, agricultura, campanha, quinta, agrícola, rural, terra arável, fazenda, lavoura," }, "landuse/farmland": { - "name": "Fazenda", - "terms": "Campo agrícola, agricultura, campanha, quinta, agrícola, rural, terra arável" + "name": "Área de Plantação", + "terms": "Campo agrícola, agricultura, campanha, quinta, agrícola, rural, terra arável, fazenda, lavoura" }, "landuse/farmyard": { "name": "Pátio de Fazenda", - "terms": "Pátio de Fazenda" + "terms": "Pátio de Fazenda, Chácara, Sítio" }, "landuse/forest": { "name": "Floresta manejada", @@ -2472,8 +2499,8 @@ "terms": "Aterro Sanitário, Depósito de Lixo" }, "landuse/meadow": { - "name": "Prado", - "terms": "Prado, Pasto, Pradaria" + "name": "Pasto / Prado", + "terms": "Prado, Pasto, Pradaria, Área de Pasto, Pastagem, Fazenda" }, "landuse/military": { "name": "Área militar", @@ -2631,10 +2658,17 @@ "name": "Farol", "terms": "Farol" }, + "man_made/mast": { + "name": "Torre de Rádio", + "terms": "Torre de Comunicação, Torre de Telecomunicações, Antena" + }, "man_made/observation": { "name": "Torre de Observação", "terms": "Torre de observação" }, + "man_made/petroleum_well": { + "name": "Poço de Petróleo" + }, "man_made/pier": { "name": "Píer", "terms": "Píer" @@ -2643,6 +2677,9 @@ "name": "Tubulação", "terms": "Encanamento, Duto" }, + "man_made/silo": { + "name": "Silo" + }, "man_made/survey_point": { "name": "Ponto de Levantamento Geográfico", "terms": "Marco Geodésico, Equipamento de GPS Diferencial" @@ -2765,7 +2802,7 @@ }, "natural/wood": { "name": "Mata Nativa", - "terms": "Bosque, Floresta" + "terms": "Floresta, Bosque" }, "office": { "name": "Escritório", @@ -2863,6 +2900,10 @@ "name": "Cidade Maior", "terms": "Cidade, Município" }, + "place/farm": { + "name": "Fazenda", + "terms": "Localidade isolada, Fazenda" + }, "place/hamlet": { "name": "Lugarejo", "terms": "Lugarejo" @@ -3016,7 +3057,7 @@ "terms": "Loja" }, "shop/alcohol": { - "name": "Loja de Licores", + "name": "Loja de alcoólicos licenciada", "terms": "Loja de Licores" }, "shop/anime": { @@ -3300,7 +3341,7 @@ "terms": "Concessionária de Motos" }, "shop/music": { - "name": "Loja de Instrumentos Musicais", + "name": "Loja de Discos Musicais", "terms": "Loja de Discos Musicais, Loja de CD's, Loja de Vinil, Loja Musical" }, "shop/musical_instrument": { @@ -3332,7 +3373,7 @@ "terms": "casa de penhores, loja" }, "shop/pet": { - "name": "Pet Shop", + "name": "Loja de animais", "terms": "Pet Shop" }, "shop/photo": { @@ -3356,8 +3397,8 @@ "terms": "Loja de Mergulho" }, "shop/seafood": { - "name": "Loja de frutos do mar", - "terms": "Peixaria, Petiscaria, Pescado, Petisqueira" + "name": "Peixaria / Frutos do mar", + "terms": "Peixaria, Pescado, Petisqueira, Loja de Frutos do Mar, Camarão, Lagosta, Peixes" }, "shop/second_hand": { "name": "Financeira", @@ -3440,7 +3481,7 @@ "terms": "Loja de Tiro, Loja de Equipamentos de Tiro" }, "shop/window_blind": { - "name": "Loja de Blindagem de Vidros", + "name": "Loja de persianas", "terms": "Loja de Vidros Blindados" }, "shop/wine": { @@ -3651,6 +3692,10 @@ "name": "Valeta de drenagem", "terms": "Dreno" }, + "waterway/fuel": { + "name": "Posto de Combustível Marítimo", + "terms": "Pier de Combustível Marítimo, Ponto de Combustível Marítimo, Ponto de Abastecimento Marítimo" + }, "waterway/river": { "name": "Rio", "terms": "Rio" @@ -3659,6 +3704,9 @@ "name": "Orla Fluvial", "terms": "Orla Fluvial, Margem do Rio" }, + "waterway/sanitary_dump_station": { + "name": "Ponto de Descarga de Dejetos (para barcos)" + }, "waterway/stream": { "name": "Córrego", "terms": "Córrego, Riacho" diff --git a/vendor/assets/iD/iD/locales/pt.json b/vendor/assets/iD/iD/locales/pt.json index 9024bf3ab..2930bfd5c 100644 --- a/vendor/assets/iD/iD/locales/pt.json +++ b/vendor/assets/iD/iD/locales/pt.json @@ -239,12 +239,12 @@ "commit": { "title": "Gravar Alterações", "description_placeholder": "Breve descrição das suas alterações", - "message_label": "Sumário de edição", + "message_label": "Comentário de Sumário", "upload_explanation": "As alterações que enviar ficarão visíveis em todos os mapas que usem dados do OpenStreetMap.", "upload_explanation_with_user": "As alterações que enviar como {user} ficarão visíveis em todos os mapas que usem dados do OpenStreetMap.", "save": "Gravar", "cancel": "Cancelar", - "changes": "{Count} Alterações", + "changes": "{count} Alterações", "warnings": "Avisos", "modified": "Modificado", "deleted": "Eliminado", @@ -252,7 +252,27 @@ }, "contributors": { "list": "Edições de {users}", - "truncated_list": "Edições de {users} e outros {count}" + "truncated_list": "Edições feitas por {users} e outros {count} utilizadores" + }, + "infobox": { + "selected": "{n} selecionados", + "geometry": "Geometria", + "closed": "fechado", + "center": "Centro", + "perimeter": "Perímetro ", + "length": "Comprimento", + "area": "Área", + "centroid": "Centroide ", + "location": "Localização", + "metric": "Metrico", + "imperial": "Imperial" + }, + "geometry": { + "point": "ponto", + "vertex": "vértice", + "line": "lina", + "area": "área", + "relation": "relaçã" }, "geocoder": { "search": "Pesquisar globalmente...", @@ -473,6 +493,7 @@ }, "help": { "title": "Ajuda", + "help": "#Ajuda\n\nEste é um editor para o [OpenStreetMap](http://www.openstreetmap.org/), o mapa livre e editável do mundo.\nPode usar-lo para adicionar e actualizar dados da tua área, tornando-o num mapa de código e dados abertos mundial melhor para todos.\n\nEdições que faças neste mapa serão visíveis para qualquer pessoa que\ndecida usar o OpenStreetMap. De maneira a fazer uma edição, basta\n[iniciar sessão](https://www.openstreetmap.org/login).\n\nO [editor iD](http://ideditor.com/) é um projeto colaborativo com o seu [código disponível no GitHub](https://github.com/openstreetmap/iD).\n", "editing_saving": "# Editar e Gravar\n\nEste editor foi concebido para editar ligado à internet, e está a utilizá-lo\natravés de um site neste momento.\n\n### Selecionar elementos do mapa\n\nPara selecionar um elemento do mapa, como uma estrada ou uma loja,\nclique nesse elemento no mapa. Aparecerá de seguida um painel lateral\ncom informações sobre o elemento onde poderá eliminar, alterar ou\nacrescentar informações.\n\nPara selecionar vários elementos manter premida a tecla 'Shift' (maiúsculas),\nclicar e arrastar com o rato no mapa. Isto irá selecionar todos os elementos\ndentro do retângulo selecionado, permitindo fazer alterações em todos\nos elementos selecionados de uma só vez.\n\n### Gravar Edições\n\nQuando faz alterações como editar estradas, edifícios e locais, as alterações\nsão gravadas no seu computador até que clique no botão Gravar para enviar\nas alterações para o OpenStreetMap. Não se preocupe caso cometa algum\nerro - pode desfazer as alterações clicando no botão de Desfazer, assim\ncomo refazer as alterações desfeitas clicando no botão Refazer que se\nencontram no topo do ecrã.\n\nClique em 'Gravar' para terminar um conjunto de alterações - por exemplo,\nse terminou as alterações num local e quer fazer alterações noutro local.\nTerá oportunidade de rever as alterações que fez e o editor fornece\nsugestões úteis e avisos caso alguma alteração que não pareça correta.\n\nSe tudo estiver bem, pode introduzir uma breve descrição explicando\nas alterações que fez e clicar de seguida em 'Gravar' de novo para enviar\nas alterações para o [OpenStreetMap.org](http://www.openstreetmap.org/)\nonde estarão visíveis para todos e onde outros podem melhorar e completar.\n\nCaso não possa terminar as edições de uma só vez, pode deixar o editor,\nou inclusive fechar o navegador de internet e mais tarde regressar ao site\ndo OpenStreetMap, editando-o novamente . Será mostrado então um aviso\n(caso seja o mesmo computador e mesmo navegador de internet) que tem\nalterações por gravar e se quer recuperar essas alterações, para continuar.\n", "roads": "# Estradas\n\nPode criar, corrigir e eliminar estradas com o editor. As estradas podem ser\nde qualquer tipo: caminhos, autoestradas, carreiros florestais ou agrícolas,\nruas pedonais, ciclovias, entre outras. Qualquer local que seja frequentemente\natravessado por pessoas deve ser normalmente colocado no mapa.\n\n### Selecionar\n\nClique numa estrada para a selecionar. Aparece o painel lateral direito para\npoder editar as caraterísticas da estrada e botões em redor da estrada.\n\n### Alterar\n\nClique na estrada que quer alterar. Se quiser adicionar pontos à estrada entre\ndois pontos existentes basta clicar 2 vezes sobre o segmento da estrada.\nPode então deslocar esse ponto acabado de criar.\n\nSe existir uma estrada com ligação a outra no terreno mas que no mapa não\nestão ligadas, basta deslocar um ponto de uma das estradas até à outra estrada\npara ficarem ligadas. É muito importante as estradas estarem corretamente\nligadas umas às outras para que os programas de rotas possam fornecer\ninformações corretas aos utilizadores.\n\nPode também clicar no botão de 'Mover' ou premir a tecla 'M' para mover\na estrada toda de uma só vez. No entanto deve-se ter cuidado ao fazer isso\npois todos os pontos da estrada, incluindo os pontos partilhados com\noutras estradas, serão todos movidos.\n\nPara dividir uma estrada em duas, útil por exemplo quando existe uma estrada\nno mapa que na realidade são 2 estradas diferentes com referências diferentes,\nclique no ponto da estrada onde quer dividir e clique no botão da tesoura que\naparece ao lado do ponto. Esse botão aparece apenas se estiver o ponto\nselecionado e não a linha. Pode também combinar as 2 linhas numa só\nselecionando as duas estradas e clicando no botão + que aparece ao lado.\nSe existirem no mapa 2 estradas ligadas (nas extremidades ou num cruzamento)\nmas que na realidade não se ligam ou cruzam, basta selecionar o ponto comum\ne clicar no botão ao lado de desligar as linhas. Pode então deslocar o ponto\npara outro local.\n\n### Eliminar\n\nSe uma estrada estiver errada - pode-se confirmar pela imagem de satélite (ter em\nconta que a imagem de satélite pode ter alguns anos e a estrada pode ter sido\nconstruida posteriormente) e preferencialmente confirmar presencialmente - pode\neliminar a estrada toda. É necessária precaução ao eliminar elementos do mapa.\nTal como qualquer outra alteração, os resultados serão visíveis a todos os outros.\n\nPode eliminar uma estrada clicando nela para a selecionar e de seguida\nclicar no ícone do caixote do lixo que aparece ao lado, ou simplesmente\npressionar na tecla 'Del' do teclado.\n\n### Criar\n\nEncontrou alguma estrada que não existe no mapa? Clique no botão 'Linha' que\nestá na parte superior ou pressione a tecla '2' para começar a desenhar a linha.\n\nClique no ponto inicial da estrada para começar a desenhá-la. Se Já existir\numa estrada no mapa, mas que está incompleta, pode continuá-la bastando\npara isso clicar no ponto da extremidade da estrada existente.\n\nAdicione então outros pontos de acordo com as imagens de satélite ou os trilhos\nGPS. Se a estrada que está a desenhar cruzar com outra estrada, crie um ponto\npor cima da outra estrada onde se cruzam. Quando terminar de desenhar\na estrada, clique duas vezes no último ponto da estrada ou pressione as teclas\nde mudança de linha ou 'Enter'.\n", "gps": "# GPS\n\nOs dados de GPS são a fonte mais fidedigna de dados no OpenStreetMap.\nEste editor suporta tracejamentos locais - ficheiros `.gpx` que estejam no\nseu computador. Pode também coleccionar este tipo de traços de GPS\natravés das várias aplicações existentes para smartphones assim como\nsistemas pessoais de GPS.\n\nPara mais informações sobre como realizar um exame topográfico com GPS,\nleia [Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/).\n\nPara usar um traço GPX para mapear, arraste e coloque o ficheiro GPX no\nmapa do editor. Se for reconhecido com sucesso, o troço será adicionado\nno mapa, aparecendo como uma linha de cor roxa. Clique no menu\n'Dados do Mapa' à direita para ativar, desativar ou enquadrar nesta nova\ncamada onde se situa o GPX.\n\nO troço GPX não é enviado diretamente para o OpenStreetMap - a melhor\nmaneira de usar-lo é como uma referência para desenhar elementos no\nmapa que precisem de ser mapeados ou alinhados corretamente. Também\npode [enviar os tracejamentos](http://www.openstreetmap.org/trace/create) que faça para o OpenStreetMap de modo a ajudar outros\nutilizadores que podem vir a utilizar esses dados.\n", @@ -567,39 +588,39 @@ "fields": { "access": { "label": "Acesso", - "placeholder": "Desconhecido", - "types": { - "access": "Geral", - "foot": "Peões", - "motor_vehicle": "Veículos Motorizados", - "bicycle": "Bicicletas", - "horse": "Animais" - }, "options": { - "yes": { - "title": "Permitido", - "description": "Acesso permitido por lei" + "designated": { + "description": "Acesso permitido de acordo com a sinalética e/ou com leis locais específicas; como p. ex. o Código da Estrada", + "title": "Designado" + }, + "destination": { + "description": "Acesso permitido apenas para chegar a determinado destino; como p. ex. parques de estacionamento ou centros comerciais", + "title": "Destino" }, "no": { - "title": "Proibido", - "description": "Acesso não permitido ao público em geral" + "description": "Acesso não permitido ao público em geral", + "title": "Proibido" }, "permissive": { - "title": "Permissivo", - "description": "Acesso permitido até o proprietário revogar a permissão" + "description": "Acesso permitido até o proprietário revogar a permissão", + "title": "Permissivo" }, "private": { - "title": "Privado", - "description": "Acesso permitido apenas com permissão do proprietário de forma individual" + "description": "Acesso permitido apenas com permissão do proprietário de forma individual", + "title": "Privado" }, - "designated": { - "title": "Designado", - "description": "Acesso permitido de acordo com a sinalética e/ou com leis locais específicas; como p. ex. o Código da Estrada" - }, - "destination": { - "title": "Destino", - "description": "Acesso permitido apenas para chegar a determinado destino; como p. ex. parques de estacionamento ou centros comerciais" + "yes": { + "description": "Acesso permitido por lei", + "title": "Permitido" } + }, + "placeholder": "Desconhecido", + "types": { + "access": "Geral", + "bicycle": "Bicicletas", + "foot": "Peões", + "horse": "Animais", + "motor_vehicle": "Veículos Motorizados" } }, "access_simple": { @@ -612,19 +633,19 @@ "address": { "label": "Morada", "placeholders": { + "city": "Localidade", + "country": "País", + "district": "Distrito", + "hamlet": "Aldeia", "housename": "Nome da Habitação", "housenumber": "123", - "street": "Rua", - "city": "Localidade", - "postcode": "Código Postal", "place": "Sítio", - "hamlet": "Aldeia", - "suburb": "Subúrbio ", - "subdistrict": "Subdistrito", - "district": "Distrito", + "postcode": "Código Postal", "province": "Província", "state": "Estado", - "country": "País" + "street": "Rua", + "subdistrict": "Subdistrito", + "suburb": "Subúrbio " } }, "admin_level": { @@ -636,9 +657,9 @@ "aerialway/access": { "label": "Acesso", "options": { + "both": "Ambas", "entry": "Entrada", - "exit": "Saída", - "both": "Ambas" + "exit": "Saída" } }, "aerialway/bubble": { @@ -662,9 +683,9 @@ "aerialway/summer/access": { "label": "Acesso (verão)", "options": { + "both": "Ambas", "entry": "Entrada", - "exit": "Saída", - "both": "Ambas" + "exit": "Saída" } }, "aeroway": { @@ -713,29 +734,29 @@ "cardinal_direction": { "label": "Direção", "options": { - "N": "Norte", "E": "Este", - "S": "Sul", - "W": "Oeste", - "NE": "Nordeste", - "SE": "Sudeste", - "SW": "Sudoeste", - "NW": "Noroeste", - "NNE": "Nor-nordeste", "ENE": " Lés-nordeste", "ESE": "Lés-sudeste", + "N": "Norte", + "NE": "Nordeste", + "NNE": "Nor-nordeste", + "NNW": "Nor-noroeste", + "NW": "Noroeste", + "S": "Sul", + "SE": "Sudeste", "SSE": "Su-sudeste", "SSW": "Su-sudoeste", - "WSW": "Oés-sudoeste", + "SW": "Sudoeste", + "W": "Oeste", "WNW": "Oés-noroeste", - "NNW": "Nor-noroeste" + "WSW": "Oés-sudoeste" } }, "clock_direction": { "label": "Direção", "options": { - "clockwise": "Sentido dos Ponteiros do Relógio", - "anticlockwise": "Sentido Contrário aos Ponteiros do Relógio." + "anticlockwise": "Sentido Contrário aos Ponteiros do Relógio.", + "clockwise": "Sentido dos Ponteiros do Relógio" } }, "collection_times": { @@ -744,6 +765,9 @@ "construction": { "label": "Tipo" }, + "content": { + "label": "Conteúdos" + }, "country": { "label": "País" }, @@ -779,13 +803,13 @@ }, "electrified": { "label": "Eletrificação", - "placeholder": "Catenária, Linha Eletrificada...", "options": { "contact_line": "Catenária (Linha de contacto)", + "no": "Não", "rail": "Linha Eletrificada", - "yes": "Sim (não especificada)", - "no": "Não" - } + "yes": "Sim (não especificada)" + }, + "placeholder": "Catenária, Linha Eletrificada..." }, "elevation": { "label": "Elevação" @@ -810,9 +834,9 @@ "label": "Tipo", "options": { "pillar": "Superfície ", + "pond": "Poça", "underground": "Subterrâneo ", - "wall": "Muro", - "pond": "Poça" + "wall": "Muro" } }, "fixme": { @@ -853,12 +877,12 @@ }, "gender": { "label": "Género", - "placeholder": "Desconhecido", "options": { - "male": "Masculino", "female": "Feminino", + "male": "Masculino", "unisex": "Unisexo" - } + }, + "placeholder": "Desconhecido" }, "generator/method": { "label": "Método" @@ -899,8 +923,8 @@ "incline_steps": { "label": "Inclinação", "options": { - "up": "Para cima", - "down": "Para baixo" + "down": "Para baixo", + "up": "Para cima" } }, "information": { @@ -909,11 +933,11 @@ "internet_access": { "label": "Acesso à Internet", "options": { - "yes": "Sim", "no": "Não", - "wlan": "Wi-Fi", + "terminal": "Terminal de acesso", "wired": "Com fio", - "terminal": "Terminal de acesso" + "wlan": "Wi-Fi", + "yes": "Sim" } }, "lamp_type": { @@ -932,20 +956,20 @@ "leaf_cycle": { "label": "Ciclo das Folhas", "options": { - "evergreen": "Persistente", "deciduous": "Caduca", - "semi_evergreen": "Semi-Presistente", + "evergreen": "Persistente", + "mixed": "Mistura", "semi_deciduous": "Semi-Caduca", - "mixed": "Mistura" + "semi_evergreen": "Semi-Presistente" } }, "leaf_type": { "label": "Tipo de Folha", "options": { "broadleaved": "Largas", - "needleleaved": "Agulhas", + "leafless": "Sem folha", "mixed": "Mistura", - "leafless": "Sem folha" + "needleleaved": "Agulhas" } }, "leisure": { @@ -973,7 +997,6 @@ }, "mtb/scale": { "label": "Dificuldade para Bicicletas de Montanha", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Terreno sólido com cascalho ou terra compactada, com nenhum obstáculo, curvas largas, etc.", "1": "1: Algum terreno solto, com pequenos obstáculos, curvas fáceis, etc.", @@ -982,22 +1005,22 @@ "4": "4: Terreno muito solto, com pedregulhos grandes, curvas muito pequenas e perigosas, etc.", "5": "5: Deslizamentos de terra, depressões grandes e profundas, etc.", "6": "6: Não transitável exceto aos melhores ciclistas de montanha" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Dificuldade de Caminhar definido pela IMBA", - "placeholder": "Fácil, Médio, Difícil...", "options": { "0": "Muito fácil (circulo branco)", "1": "Fácil (circulo verde)", "2": "Médio (quadrado azul)", "3": "Difícil (diamante negro)", "4": "Muito Difícil (duplo diamante negro)" - } + }, + "placeholder": "Fácil, Médio, Difícil..." }, "mtb/scale/uphill": { "label": "Dificuldade da Subida para Bicicletas de Montanha", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Inclinação média de <10%, superfície de cascalho ou de terra compactada, com nenhum obstáculos, etc.", "1": "1. Inclinação média de <15%, superfície de cascalho ou terra de compactada, com alguns obstáculos, etc.", @@ -1005,7 +1028,8 @@ "3": "3. Inclinação média de <25%, superfície por vezes solta, com pedras/raízes, etc.", "4": "4. Inclinação média de <30%, superfície em más condições, com grandes pedras/raízes, etc.", "5": "5. Muito inclinado, é geralmente necessário empurrar ou levar a bicicleta à mão." - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Nome", @@ -1026,17 +1050,17 @@ "oneway": { "label": "Sentido Único?", "options": { + "no": "Não", "undefined": "Assumido que seja Não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "oneway_yes": { "label": "Sentido Único", "options": { + "no": "Não", "undefined": "Assumido que seja Sim", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "opening_hours": { @@ -1055,13 +1079,13 @@ "parking": { "label": "Tipo", "options": { - "surface": "Superfície", - "multi-storey": "Edifício-garagem", - "underground": "Subterrâneo", - "sheds": "Barracões", "carports": "Telheiros", "garage_boxes": "Garagens", - "lane": "Estacionamento Paralelo à Estrada" + "lane": "Estacionamento Paralelo à Estrada", + "multi-storey": "Edifício-garagem", + "sheds": "Barracões", + "surface": "Superfície", + "underground": "Subterrâneo" } }, "phone": { @@ -1070,24 +1094,24 @@ }, "piste/difficulty": { "label": "Dificuldade de Esquiar ", - "placeholder": "Fácil, Intermédio, Avançado...", "options": { - "novice": "Muito Fácil (instrucional) ", - "easy": "Fácil (Círculo verde)", - "intermediate": "Médio (quadrado azul)", "advanced": "Difícil (losango negro)", + "easy": "Fácil (Círculo verde)", "expert": "Muito Difícil (duplo losango negro)", + "extreme": "Extremo (material de escalagem é necessário)", "freeride": "Freeride (não supervisionada)", - "extreme": "Extremo (material de escalagem é necessário)" - } + "intermediate": "Médio (quadrado azul)", + "novice": "Muito Fácil (instrucional) " + }, + "placeholder": "Fácil, Intermédio, Avançado..." }, "piste/grooming": { "label": "Niveladora de Neve", "options": { - "classic": "Clássico", - "mogul": "Estilo Livre", "backcountry": "Freeride", + "classic": "Clássico", "classic+skating": "Clássico e Patinagem ", + "mogul": "Estilo Livre", "scooter": "Scooter / Mota de Neve", "skating": "Patinagem " } @@ -1096,14 +1120,14 @@ "label": "Tipo", "options": { "downhill": "Downhill", + "hike": "Passeio", + "ice_skate": "Patins no Gelo ", "nordic": "Esqui nórdico", + "playground": "Parque Infantil", "skitour": "Esqui Turístico", "sled": "Trenó ", - "hike": "Passeio", "sleigh": "Trenó", - "ice_skate": "Patins no Gelo ", - "snow_park": "Snowpark", - "playground": "Parque Infantil" + "snow_park": "Snowpark" } }, "place": { @@ -1115,6 +1139,9 @@ "power": { "label": "Tipo" }, + "power_supply": { + "label": "Fonte de Energia" + }, "railway": { "label": "Tipo" }, @@ -1153,15 +1180,15 @@ }, "sac_scale": { "label": "Dificuldade de Caminhar", - "placeholder": "Caminhada de Montanha, Caminhada Alpina...", "options": { - "hiking": "T1: Caminhada Normal", - "mountain_hiking": "T2: Caminhada de Montanha", - "demanding_mountain_hiking": "T3: Caminhada de Montanha Exigente", "alpine_hiking": "T4: Caminhada Alpina", "demanding_alpine_hiking": "T5: Caminhada Alpina Exigente", - "difficult_alpine_hiking": "T6: Caminhada Muito Difícil" - } + "demanding_mountain_hiking": "T3: Caminhada de Montanha Exigente", + "difficult_alpine_hiking": "T6: Caminhada Muito Difícil", + "hiking": "T1: Caminhada Normal", + "mountain_hiking": "T2: Caminhada de Montanha" + }, + "placeholder": "Caminhada de Montanha, Caminhada Alpina..." }, "seasonal": { "label": "Sazonal" @@ -1172,26 +1199,26 @@ "service/bicycle/chain_tool": { "label": "Ferramenta para Correia", "options": { + "no": "Não", "undefined": "Assumido que seja Não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "service/bicycle/pump": { "label": "Bomba de Ar", "options": { + "no": "Não", "undefined": "Assumido que seja Não", - "yes": "Sim", - "no": "Não" + "yes": "Sim" } }, "service_rail": { "label": "Tipo de Serviço", "options": { - "spur": "Ramal de inserção", - "yard": "Linha de manobras", + "crossover": "Linha de serviço", "siding": "Linha de ultrapassagem", - "crossover": "Linha de serviço" + "spur": "Ramal de inserção", + "yard": "Linha de manobras" } }, "shelter": { @@ -1208,29 +1235,29 @@ }, "smoking": { "label": "Fumar", - "placeholder": "Não, Separado, Sim", "options": { - "no": "Fumar não é permitido", - "separated": "Em zona de fumadores, não isolada do estabelecimento", + "dedicated": "Dedicado a fumadores (por exemplo, clube de fumadores)", "isolated": "Em zona de fumadores, isolada do estabelecimento ", + "no": "Fumar não é permitido", "outside": "Permitido no exterior", - "yes": "Fumar é permitido em todo o estabelecimento ", - "dedicated": "Dedicado a fumadores (por exemplo, clube de fumadores)" - } + "separated": "Em zona de fumadores, não isolada do estabelecimento", + "yes": "Fumar é permitido em todo o estabelecimento " + }, + "placeholder": "Não, Separado, Sim" }, "smoothness": { "label": "Qualidade da Estrada", - "placeholder": "Excelente, Boa, Má...", "options": { + "bad": "Intermédia: carros de cidade, camiões, etc.", "excellent": "Excelente: skates, patins em linha, etc.", "good": "Muito boa: bicicletas de corrida, carros desportivos etc.", + "horrible": "Muito má: bicicletas de montanha, carros todo-o-terreno, etc.", + "impassable": "Intransitável / Veículos sem rodas", "intermediate": "Boa: bicicletas de cidade, cadeira de rodas, scooters, etc.", - "bad": "Intermédia: carros de cidade, camiões, etc.", "very_bad": "Má: carroças, SUVs, etc.", - "horrible": "Muito má: bicicletas de montanha, carros todo-o-terreno, etc.", - "very_horrible": "Péssima: tratores, moto-quatros, etc.", - "impassable": "Intransitável / Veículos sem rodas" - } + "very_horrible": "Péssima: tratores, moto-quatros, etc." + }, + "placeholder": "Excelente, Boa, Má..." }, "social_facility_for": { "label": "Pessoas Servidas", @@ -1250,14 +1277,14 @@ }, "structure": { "label": "Estrutura", - "placeholder": "Desconhecido", "options": { "bridge": "Ponte", - "tunnel": "Túnel", - "embankment": "Elevação no terreno", "cutting": "Corte no terreno", - "ford": "Vau" - } + "embankment": "Elevação no terreno", + "ford": "Vau", + "tunnel": "Túnel" + }, + "placeholder": "Desconhecido" }, "studio_type": { "label": "Tipo" @@ -1276,20 +1303,20 @@ }, "takeaway": { "label": "Take Away", - "placeholder": "Sim, Não, Apenas Take Away", "options": { - "yes": "Sim", "no": "Não", - "only": "Apenas Take Away" - } + "only": "Apenas Take Away", + "yes": "Sim" + }, + "placeholder": "Sim, Não, Apenas Take Away" }, "toilets/disposal": { "label": "Método de Eliminação de Resíduos", "options": { - "flush": "Descarregamento", - "pitlatrine": "Fosso / Latrina", + "bucket": "Balde", "chemical": "Químico ", - "bucket": "Balde" + "flush": "Descarregamento", + "pitlatrine": "Fosso / Latrina" } }, "tourism": { @@ -1300,26 +1327,26 @@ }, "tracktype": { "label": "Qualidade da Superfície ", - "placeholder": "Sólido, Intermédio, Macio...", "options": { "grade1": "1 - Sólida: pavimentada ou com material fortemente compactado", "grade2": "2 - Sobretudo sólida: cascalho ou pedras misturadas com algum material macio", "grade3": "3 - Intermédia, mistura de materiais sólidos e macios", "grade4": "4 - Sobretudo macia: terra, erva ou areia misturadas com algum material sólido", "grade5": "5 - Macia: Terra, erva ou areia" - } + }, + "placeholder": "Sólido, Intermédio, Macio..." }, "trail_visibility": { "label": "Visibilidade", - "placeholder": "Excelente, Boa, Má...", "options": { + "bad": "Má: caminho pouco visível", "excellent": "Excelente: caminho claramente marcado ou com vários marcos de informações", "good": "Boa: caminho muito visível", - "intermediate": "Intermédia: caminho visível ou com poucos marcos de informações", - "bad": "Má: caminho pouco visível", "horrible": "Péssima: por vezes sem caminho ou com nenhum marco de informação", + "intermediate": "Intermédia: caminho visível ou com poucos marcos de informações", "no": "Nenhuma: caminho não é visível, boa habilidade de orientação é necessária" - } + }, + "placeholder": "Excelente, Boa, Má..." }, "trees": { "label": "Árvores" @@ -1333,6 +1360,9 @@ "water": { "label": "Tipo" }, + "water_point": { + "label": "Bebedouro" + }, "waterway": { "label": "Tipo" }, @@ -1474,6 +1504,10 @@ "name": "Estação de Reparação de Bicicletas", "terms": "Bicycle Repair Station" }, + "amenity/biergarten": { + "name": "Jardim da Cerveja", + "terms": "Beer Garden, Biergarten" + }, "amenity/boat_rental": { "name": "Aluguer de Barcos", "terms": "Boat Rental" @@ -2630,10 +2664,18 @@ "name": "Farol", "terms": "Faról, Lighthouse" }, + "man_made/mast": { + "name": "Torre de Rádio", + "terms": "Radio Mast, Mastro de Rádio" + }, "man_made/observation": { "name": "Torre de Observação", "terms": "Observatório Tower, Miradouro" }, + "man_made/petroleum_well": { + "name": "Poço de Petróleo", + "terms": "Oil Well" + }, "man_made/pier": { "name": "Pontão / Atracadouro", "terms": "Pier, Porto, Doca" @@ -2642,6 +2684,12 @@ "name": "Gasoduto / Oleoduto", "terms": "Tubo, Pipeline" }, + "man_made/silo": { + "name": "Silo" + }, + "man_made/storage_tank": { + "name": "Depósito de Armazenamento" + }, "man_made/survey_point": { "name": "Vértice Geodésico / Talefe", "terms": "Survey Point" @@ -2862,6 +2910,10 @@ "name": "Capital de Distrito", "terms": "City, Cidade, Capital, Distrito" }, + "place/farm": { + "name": "Quinta", + "terms": "Farm, Fazenda, Pasto" + }, "place/hamlet": { "name": "Aldeia", "terms": "Hamlet, Aldeamento" @@ -3650,6 +3702,10 @@ "name": "Vala de Drenagem", "terms": "Drain" }, + "waterway/fuel": { + "name": "Posto de Combustível Marinho", + "terms": "Marine Fuel Station" + }, "waterway/river": { "name": "Rio", "terms": "Afluente, Barra, Barroca, Canal, Corga, Curso de Água, Delta, Estuário, Grota, Ria" diff --git a/vendor/assets/iD/iD/locales/ro-RO.json b/vendor/assets/iD/iD/locales/ro-RO.json index af4799573..bd4307270 100644 --- a/vendor/assets/iD/iD/locales/ro-RO.json +++ b/vendor/assets/iD/iD/locales/ro-RO.json @@ -138,7 +138,6 @@ "commit": { "title": "Salveaza modificarile", "description_placeholder": "O scurtă descriere a contribuției tale.", - "message_label": "Consemnează mesaj.", "save": "Salveaza", "cancel": "Renunță", "warnings": "Atenționări", @@ -265,8 +264,8 @@ "address": { "label": "Adresă", "placeholders": { - "street": "Stradă", - "city": "Oraș" + "city": "Oraș", + "street": "Stradă" } }, "aeroway": { @@ -320,9 +319,9 @@ "internet_access": { "label": "Acces internet", "options": { - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Conectat", - "terminal": "Terminal" + "wlan": "Wifi" } }, "landuse": { diff --git a/vendor/assets/iD/iD/locales/ru.json b/vendor/assets/iD/iD/locales/ru.json index 80dc34fe4..24b48e124 100644 --- a/vendor/assets/iD/iD/locales/ru.json +++ b/vendor/assets/iD/iD/locales/ru.json @@ -254,6 +254,26 @@ "list": "Отредактировано {users}", "truncated_list": "Отредактировано {users} и ещё {count} другими" }, + "infobox": { + "selected": "выбрано {n}", + "geometry": "Геометрия", + "closed": "закрыто", + "center": "Центр", + "perimeter": "Периметр", + "length": "Длина", + "area": "Площадь", + "centroid": "Центроид", + "location": "Местоположение", + "metric": "Метрическая", + "imperial": "Имперская" + }, + "geometry": { + "point": "точка", + "vertex": "вершина", + "line": "линия", + "area": "область", + "relation": "связь" + }, "geocoder": { "search": "Глобальный поиск...", "no_results_visible": "Нет результатов в видимой области карты", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Легальный доступ", - "placeholder": "не указанно", - "types": { - "access": "Для всех", - "foot": "Пешеходам", - "motor_vehicle": "Автомототранспорт", - "bicycle": "Велосипедистам", - "horse": "Наездникам" - }, "options": { - "yes": { - "title": "Разрешено", - "description": "Доступ разрешён законом; право пройти" + "designated": { + "description": "Доступ разрешен в соответствии со знаками или специфичными местными законами", + "title": "Предназначенный" + }, + "destination": { + "description": "Доступ разрешён только до места назначения", + "title": "До места назначения" }, "no": { - "title": "Запрещено", - "description": "Посторонним доступ запрещён" + "description": "Посторонним доступ запрещён", + "title": "Запрещено" }, "permissive": { - "title": "Допускается", - "description": "Доступ возможен до тех пор, пока владелец не отменит разрешение в любой момент" + "description": "Доступ возможен до тех пор, пока владелец не отменит разрешение в любой момент", + "title": "Допускается" }, "private": { - "title": "С разрешения владельца", - "description": "Доступ разрешён только с разрешения владельца в индивидуальном порядке" + "description": "Доступ разрешён только с разрешения владельца в индивидуальном порядке", + "title": "С разрешения владельца" }, - "designated": { - "title": "Предназначенный", - "description": "Доступ разрешен в соответствии со знаками или специфичными местными законами" - }, - "destination": { - "title": "До места назначения", - "description": "Доступ разрешён только до места назначения" + "yes": { + "description": "Доступ разрешён законом; право пройти", + "title": "Разрешено" } + }, + "placeholder": "не указанно", + "types": { + "access": "Для всех", + "bicycle": "Велосипедистам", + "foot": "Пешеходам", + "horse": "Наездникам", + "motor_vehicle": "Автомототранспорт" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Адресная информация", "placeholders": { + "city": "Город", + "country": "Страна", + "district": "Район", + "hamlet": "Малое село", "housename": "Housename", "housenumber": "Номер", - "street": "Улица", - "city": "Город", - "postcode": "Почтовый индекс", "place": "Населённый пункт", - "hamlet": "Малое село", - "suburb": "Пригород", - "subdistrict": "Subdistrict", - "district": "Район", + "postcode": "Почтовый индекс", "province": "Провинция", "state": "Штат", - "country": "Страна" + "street": "Улица", + "subdistrict": "Subdistrict", + "suburb": "Пригород" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Доступ", "options": { + "both": "Оба", "entry": "Вход", - "exit": "Выход", - "both": "Оба" + "exit": "Выход" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Доступ (летом)", "options": { + "both": "Оба", "entry": "Вход", - "exit": "Выход", - "both": "Оба" + "exit": "Выход" } }, "aeroway": { @@ -705,7 +725,7 @@ "label": "Здание" }, "building_area": { - "label": "Здание" + "label": "Тип здания" }, "capacity": { "label": "Вместимость", @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Направление", "options": { - "N": "Север", "E": "Восток", - "S": "Юг", - "W": "Запад", - "NE": "Северо-восток", - "SE": "Юго-восток", - "SW": "Юго-запад", - "NW": "Северо-запад", - "NNE": "Северо-северо-восток", "ENE": "Северо-восток-восток", "ESE": "Юго-восток-восток", + "N": "Север", + "NE": "Северо-восток", + "NNE": "Северо-северо-восток", + "NNW": "Северо-северо-запад", + "NW": "Северо-запад", + "S": "Юг", + "SE": "Юго-восток", "SSE": "Юго-юго-восток", "SSW": "Юго-юго-запад", - "WSW": "Юго-запад-запад", + "SW": "Юго-запад", + "W": "Запад", "WNW": "Северо-запад-запад", - "NNW": "Северо-северо-запад" + "WSW": "Юго-запад-запад" } }, "clock_direction": { "label": "Направление", "options": { - "clockwise": "По часовой стрелке", - "anticlockwise": "Против часовой стрелки" + "anticlockwise": "Против часовой стрелки", + "clockwise": "По часовой стрелке" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Тип строящейся дороги" }, + "content": { + "label": "Содержимое" + }, "country": { "label": "Страна" }, @@ -775,15 +798,18 @@ "description": { "label": "Описание" }, + "drive_through": { + "label": "Доступен не выходя из машины" + }, "electrified": { "label": "Электрификация", - "placeholder": "Контактная линия, электрифицированная линия...", "options": { "contact_line": "Контактная линия", + "no": "Нет", "rail": "Электрифицированная линия", - "yes": "Да (без уточнения)", - "no": "Нет" - } + "yes": "Да (без уточнения)" + }, + "placeholder": "Контактная линия, электрифицированная линия..." }, "elevation": { "label": "Высота над уровнем моря" @@ -808,9 +834,9 @@ "label": "Тип пожарного гидранта", "options": { "pillar": "Наземный", + "pond": "Около пруда", "underground": "Подземный", - "wall": "Настенный", - "pond": "Около пруда" + "wall": "Настенный" } }, "fixme": { @@ -851,12 +877,12 @@ }, "gender": { "label": "Пол", - "placeholder": "Неизвестно", "options": { - "male": "Мужчина", "female": "Женщина", + "male": "Мужчина", "unisex": "Унисекс" - } + }, + "placeholder": "Неизвестно" }, "generator/method": { "label": "Метод" @@ -882,7 +908,7 @@ "label": "Тип" }, "hoops": { - "label": "Ворота", + "label": "Кол-во колец", "placeholder": "1, 2, 4..." }, "iata": { @@ -892,13 +918,13 @@ "label": "ICAO" }, "incline": { - "label": "Склон" + "label": "Перепад высоты вдоль пути" }, "incline_steps": { "label": "Уклон", "options": { - "up": "Вверх", - "down": "Вниз" + "down": "Вниз", + "up": "Вверх" } }, "information": { @@ -907,11 +933,11 @@ "internet_access": { "label": "Доступ в интернет", "options": { - "yes": "Да", "no": "Нет", - "wlan": "Wifi", + "terminal": "Терминал", "wired": "Проводной", - "terminal": "Терминал" + "wlan": "Wifi", + "yes": "Да" } }, "lamp_type": { @@ -930,20 +956,20 @@ "leaf_cycle": { "label": "Цикл листвы у деревьев", "options": { - "evergreen": "Вечнозелёные", "deciduous": "Листопадные", - "semi_evergreen": "Полу-вечнозеленые", + "evergreen": "Вечнозелёные", + "mixed": "Смешанный", "semi_deciduous": "Полу-листопадные", - "mixed": "Смешанный" + "semi_evergreen": "Полу-вечнозеленые" } }, "leaf_type": { "label": "Тип листьев", "options": { "broadleaved": "Широколиственные", - "needleleaved": "Хвойные", + "leafless": "Без листьев", "mixed": "Смешанные", - "leafless": "Без листьев" + "needleleaved": "Хвойные" } }, "leisure": { @@ -953,7 +979,7 @@ "label": "Длина (метры)" }, "levels": { - "label": "Этажи", + "label": "Кол-во этажей", "placeholder": "2, 4, 6..." }, "lit": { @@ -971,7 +997,6 @@ }, "mtb/scale": { "label": "Сложность трассы для горного велосипеда", - "placeholder": "0, 1, 2, 3…", "options": { "0": "0: ровный гравий/утоптанная земля, без препятствий, широкие повороты", "1": "1. Несколько рассыпная поверхность, небольшие препятствия, широкие повороты", @@ -980,22 +1005,22 @@ "4": "4. Скользкая поверхность или препятствия, опасные крутые повороты", "5": "5. Максимальная сложность, каменные поля, оползни", "6": "6. Не пригодно для езды кроме самых лучших маунтинбайкеров" - } + }, + "placeholder": "0, 1, 2, 3…" }, "mtb/scale/imba": { "label": "Сложность по рейтингу IMBA", - "placeholder": "Лёгкая, средняя, сложная...", "options": { "0": "Легчайшая (белый круг)", "1": "Лёгкая (зелёный круг)", "2": "Средняя (синий квадрат)", "3": "Сложная (чёрный ромб)", "4": "Экстремально сложная (двойной чёрный круг)" - } + }, + "placeholder": "Лёгкая, средняя, сложная..." }, "mtb/scale/uphill": { "label": "Сложность подъёма на маунтинбайке", - "placeholder": "0, 1, 2, 3…", "options": { "0": "0: Средний подъём <10%, гравий/утоптанная земля, без препятствий", "1": "1: Средний подъём <15%, гравий/утоптанная земля, несколько небольших объектов", @@ -1003,7 +1028,8 @@ "3": "3: Средний подъём <25%, переменная поверхность, камни/ветки размером с кулак", "4": "4: Средний подъём <30%, плохое состояние, большие камни/ветки", "5": "5: Отвесный подъём, велосипед обычно приходится толкать или нести" - } + }, + "placeholder": "0, 1, 2, 3…" }, "name": { "label": "Название", @@ -1024,17 +1050,17 @@ "oneway": { "label": "Одностороннее движение", "options": { + "no": "Нет", "undefined": "Предполагается «нет»", - "yes": "Да", - "no": "Нет" + "yes": "Да" } }, "oneway_yes": { "label": "Одностороннее движение", "options": { + "no": "Нет", "undefined": "Предполагается «да»", - "yes": "Да", - "no": "Нет" + "yes": "Да" } }, "opening_hours": { @@ -1053,13 +1079,13 @@ "parking": { "label": "Тип", "options": { - "surface": "Наземная", - "multi-storey": "Многоярусная", - "underground": "Подземная", - "sheds": "Сараи рядом с домом", "carports": "Автомобильный навес", "garage_boxes": "Одноярусные гаражи", - "lane": "Полоса вдоль дороги" + "lane": "Полоса вдоль дороги", + "multi-storey": "Многоярусная", + "sheds": "Сараи рядом с домом", + "surface": "Наземная", + "underground": "Подземная" } }, "phone": { @@ -1068,24 +1094,24 @@ }, "piste/difficulty": { "label": "Сложность", - "placeholder": "Простая, средней сложности, высокой сложности...", "options": { - "novice": "Для начинающих (учебная)", - "easy": "Простейшая (зелёный круг)", - "intermediate": "Средняя (синий квадрат)", "advanced": "Сложная (чёрный ромб)", + "easy": "Простейшая (зелёный круг)", "expert": "Для экспертов (двойной чёрный ромб)", + "extreme": "Экстремальный (нужно снаряжение для скалолазания)", "freeride": "Фрирайд", - "extreme": "Экстремальный (нужно снаряжение для скалолазания)" - } + "intermediate": "Средняя (синий квадрат)", + "novice": "Для начинающих (учебная)" + }, + "placeholder": "Простая, средней сложности, высокой сложности..." }, "piste/grooming": { "label": "Снегоукладка", "options": { - "classic": "Классическая", - "mogul": "Могул", "backcountry": "Самопрокладные", + "classic": "Классическая", "classic+skating": "Классика и конёк", + "mogul": "Могул", "scooter": "Малый снегоход", "skating": "Конёк" } @@ -1094,14 +1120,14 @@ "label": "Тип", "options": { "downhill": "Горнолыжная трасса", + "hike": "Пеший туризм", + "ice_skate": "Для конькового хода", "nordic": "Для классического хода", + "playground": "Детская трасса", "skitour": "Лыжный курорт", "sled": "Для саней", - "hike": "Пеший туризм", "sleigh": "Для грузовых саней", - "ice_skate": "Для конькового хода", - "snow_park": "Снежный парк", - "playground": "Детская трасса" + "snow_park": "Снежный парк" } }, "place": { @@ -1151,15 +1177,15 @@ }, "sac_scale": { "label": "Сложность SAC", - "placeholder": "Горный пеший туризм, Альпинизм…", "options": { - "hiking": "T1: Пеший туризм", - "mountain_hiking": "T2: Горный пеший туризм", - "demanding_mountain_hiking": "T3: Пеший туризм с подъемом в горы", "alpine_hiking": "T4: Альпийский пеший туризм", "demanding_alpine_hiking": "T5: Альпийский туризм с подъемом в горы", - "difficult_alpine_hiking": "T6: Сложный альпинизм" - } + "demanding_mountain_hiking": "T3: Пеший туризм с подъемом в горы", + "difficult_alpine_hiking": "T6: Сложный альпинизм", + "hiking": "T1: Пеший туризм", + "mountain_hiking": "T2: Горный пеший туризм" + }, + "placeholder": "Горный пеший туризм, Альпинизм…" }, "seasonal": { "label": "Сезонное" @@ -1169,17 +1195,17 @@ }, "service/bicycle/chain_tool": { "options": { + "no": "Нет", "undefined": "Предполагается «нет»", - "yes": "Да", - "no": "Нет" + "yes": "Да" } }, "service/bicycle/pump": { "label": "Насос", "options": { + "no": "Нет", "undefined": "Предполагается «нет»", - "yes": "Да", - "no": "Нет" + "yes": "Да" } }, "shelter": { @@ -1196,29 +1222,29 @@ }, "smoking": { "label": "Курение", - "placeholder": "Запрещено, в отдельной зоне, разрешено…", "options": { - "no": "Курить запрещено везде", - "separated": "В зоне для курящих, не отделённой физически", + "dedicated": "Предназначено для курящих (например, сигарный клуб)", "isolated": "В зоне для курящих, отделённой физически", + "no": "Курить запрещено везде", "outside": "Разрешено снаружи", - "yes": "Разрешено везде", - "dedicated": "Предназначено для курящих (например, сигарный клуб)" - } + "separated": "В зоне для курящих, не отделённой физически", + "yes": "Разрешено везде" + }, + "placeholder": "Запрещено, в отдельной зоне, разрешено…" }, "smoothness": { "label": "Проходимость", - "placeholder": "Ролики, колёса, внедорожники...", "options": { + "bad": "Крепкие колёса: гибридные велосипеды, машины, рикши", "excellent": "Ролики: роликовые коньки, скейтборды", "good": "Тонкие колёса: гоночные велосипеды", + "horrible": "Внедорожники: полноценные внедорожники", + "impassable": "Непроходимо ни для какой колесной техники", "intermediate": "Колёса: городские велосипеды, коляски, скутеры", - "bad": "Крепкие колёса: гибридные велосипеды, машины, рикши", "very_bad": "Большой клиренс: автомобили и малые внедорожники", - "horrible": "Внедорожники: полноценные внедорожники", - "very_horrible": "Специализированные внедорожники: трактора, мотовездеходы, танки, триалбайки", - "impassable": "Непроходимо ни для какой колесной техники" - } + "very_horrible": "Специализированные внедорожники: трактора, мотовездеходы, танки, триалбайки" + }, + "placeholder": "Ролики, колёса, внедорожники..." }, "social_facility_for": { "label": "Кого обслуживает", @@ -1238,14 +1264,14 @@ }, "structure": { "label": "Сооружение", - "placeholder": "не указанно", "options": { "bridge": "Мост", - "tunnel": "Тоннель", - "embankment": "Насыпь", "cutting": "Выемка", - "ford": "Брод" - } + "embankment": "Насыпь", + "ford": "Брод", + "tunnel": "Тоннель" + }, + "placeholder": "не указанно" }, "studio_type": { "label": "Тип студии" @@ -1264,20 +1290,20 @@ }, "takeaway": { "label": "На вынос", - "placeholder": "Да, Нет, Только на вынос", "options": { - "yes": "Да", "no": "Нет", - "only": "Только на вынос" - } + "only": "Только на вынос", + "yes": "Да" + }, + "placeholder": "Да, Нет, Только на вынос" }, "toilets/disposal": { "label": "Тип смыва", "options": { - "flush": "Смыв", - "pitlatrine": "Яма / отхожее место", + "bucket": "Ведро", "chemical": "Химический", - "bucket": "Ведро" + "flush": "Смыв", + "pitlatrine": "Яма / отхожее место" } }, "tourism": { @@ -1287,27 +1313,27 @@ "label": "Тип башни" }, "tracktype": { - "label": "Покрытие просёлочных дорог", - "placeholder": "Твердая, скорее твёрдая, мягкая", + "label": "Тип просёлочных дорог", "options": { "grade1": "Твердая: с покрытием, мощение плитами, камнем, кирпичом, укатанный гравий, кирпичный лом", "grade2": "Скорее твердая: без покрытия, гравий, хорошо укатанный грунт, песок ", "grade3": "Ровная смесь грунта, песка, гравия ", "grade4": "Скорее мягкая: укатанный грунт с примесями твёрдых материалов ", "grade5": "Мягкая: неукатанный грунт, песок, трава " - } + }, + "placeholder": "Твердая, скорее твёрдая, мягкая" }, "trail_visibility": { "label": "Видимость пути", - "placeholder": "Отличная, хорошая, плохая...", "options": { + "bad": "Плохой: нет указателей, путь иногда невидим/неразличим", "excellent": "Превосходная: различимые пути либо указатели везде", "good": "Хорошая: указатели видимы, иногда требуют поиска", - "intermediate": "Средняя: несколько указателей, путь в основном видимый", - "bad": "Плохой: нет указателей, путь иногда невидим/неразличим", "horrible": "Ужасная: часто путь неотличим, требует навыков ориентации", + "intermediate": "Средняя: несколько указателей, путь в основном видимый", "no": "Никакой: неразличимый путь, требуются превосходные навыки ориентации" - } + }, + "placeholder": "Отличная, хорошая, плохая..." }, "trees": { "label": "Деревья" @@ -1439,8 +1465,8 @@ "terms": "Банк" }, "amenity/bar": { - "name": "Бар", - "terms": "Бар" + "name": "Бар / рюмочная", + "terms": "Бар, рюмочная" }, "amenity/bbq": { "name": "Барбекю/Гриль", @@ -1627,11 +1653,11 @@ "terms": "Почтовый ящик" }, "amenity/post_office": { - "name": "Почтовый офис", + "name": "Почтовое отделение", "terms": "почта, почтовое отделение, почтамт" }, "amenity/pub": { - "name": "Паб", + "name": "Паб / ресторан", "terms": "Паб" }, "amenity/public_bookcase": { @@ -1730,7 +1756,7 @@ "terms": "препятствие, преграда, барьер, заграждение" }, "barrier/block": { - "name": "Бетонный блок", + "name": "Блок от автомобилей (бетонный, асфальтовый)", "terms": "Блок, преграда" }, "barrier/bollard": { @@ -1754,16 +1780,16 @@ "terms": "канава, ров" }, "barrier/entrance": { - "name": "Проход", - "terms": "вход, дверь, главный вход" + "name": "Безпрепятственный проход", + "terms": "вход, дыра, проход" }, "barrier/fence": { "name": "Прозрачная ограда", "terms": "Забор, Ограда, Изгородь" }, "barrier/gate": { - "name": "Ворота", - "terms": "ворота" + "name": "Ворота / калитка", + "terms": "ворота, калитка, дверь" }, "barrier/hedge": { "name": "Живая изгородь", @@ -2040,8 +2066,8 @@ "terms": "фотограф, фото оператор" }, "craft/photographic_laboratory": { - "name": "Фотолаборатория", - "terms": "фото, заказ, печать, свадьба, событие, документы" + "name": "Печать фото / проявка", + "terms": "фото, заказ, печать, свадьба, событие, документы, проявка" }, "craft/plasterer": { "name": "Штуратур", @@ -2376,7 +2402,7 @@ "terms": "монумент" }, "historic/ruins": { - "name": "Развалины", + "name": "Руины с историческим значением", "terms": "руины, развалины" }, "historic/wayside_cross": { @@ -2444,7 +2470,7 @@ "terms": "промзона, завод" }, "landuse/landfill": { - "name": "Свалка", + "name": "Стихийная свалка / промышленные отходы", "terms": "свалка, отходы" }, "landuse/meadow": { @@ -2607,10 +2633,18 @@ "name": "Маяк", "terms": "маяк" }, + "man_made/mast": { + "name": "Коммуникационная мачта (до 20 метров)", + "terms": "мачта, радио, телефон, сотовая, вышка" + }, "man_made/observation": { "name": "Смотровая башня", "terms": "Смотровая башня, Обзорная башня" }, + "man_made/petroleum_well": { + "name": "Нефтяная скважина", + "terms": "скважина, нефть" + }, "man_made/pier": { "name": "Пирс", "terms": "пирс, причал" @@ -2619,6 +2653,14 @@ "name": "Трубопровод", "terms": "трубопровод" }, + "man_made/silo": { + "name": "Силос (склад сыпучего)", + "terms": "зерно, пшеница, мука" + }, + "man_made/storage_tank": { + "name": "Cооружение для хранения жидкостей или газов", + "terms": "контейнер, танк, танкер" + }, "man_made/survey_point": { "name": "Тригонометрический пункт", "terms": "Тригонометрический пункт" @@ -2985,8 +3027,8 @@ "terms": "Магазин, Торговая лавка, Точка продаж" }, "shop/alcohol": { - "name": "Винный магазин", - "terms": "Винный магазин, Винная лавка, Вино-водочный магазин" + "name": "Алкогольный магазин", + "terms": "Вино-водочный магазин, горилка, пиво, пивной" }, "shop/anime": { "name": "Магазин аниме", @@ -3219,8 +3261,8 @@ "terms": "новостной киоск, киоск новостей, киоск с новостями, журналы, табачные изделия, газеты, сладости, подарки, открытки" }, "shop/kitchen": { - "name": "Магазин продающий мебель для кухни на заказ", - "terms": "кухонная фурнитура, установка кухонь, кухни на заказ, планировка кухни" + "name": "Кухонная студия", + "terms": "кухонная фурнитура, установка кухонь, кухни на заказ, планировка кухни, кухни" }, "shop/laundry": { "name": "Прачечная", @@ -3507,7 +3549,7 @@ "terms": "Мультиполигон, Многоугольник" }, "type/restriction": { - "name": "Запрет поворота", + "name": "Ограничение манёвра", "terms": "Ограничение, Ограничение направлений движения, Ограничение манёвра, Запрет на поворот, Запрет поворота" }, "type/restriction/no_left_turn": { diff --git a/vendor/assets/iD/iD/locales/si.json b/vendor/assets/iD/iD/locales/si.json index 34468db29..d0829e939 100644 --- a/vendor/assets/iD/iD/locales/si.json +++ b/vendor/assets/iD/iD/locales/si.json @@ -235,7 +235,6 @@ "commit": { "title": "වෙනස්කම් සුරකින්න", "description_placeholder": "ඔබේ දායකත්වය පිළිබද කෙටි සටහනක්", - "message_label": "තිර කිරීමේ සටහන", "upload_explanation": "ඔබ ඇතුලත් කරන ලද වෙනස්කම් OpenStreetMap දත්ත බාවිතා කරන සියලු සිතියම් තුල දිස්වනු ඇත", "upload_explanation_with_user": "{user} වශයෙන් ඔබ ඇතුලත් කරන ලද වෙනස්කම් OpenStreetMap දත්ත බාවිතා කරන සියලු සිතියම් තුල දිස්වනු ඇත", "save": "සුරකින්න", diff --git a/vendor/assets/iD/iD/locales/sk.json b/vendor/assets/iD/iD/locales/sk.json index 668cd3088..3dfa44d19 100644 --- a/vendor/assets/iD/iD/locales/sk.json +++ b/vendor/assets/iD/iD/locales/sk.json @@ -254,6 +254,26 @@ "list": "Úpravy od {users}", "truncated_list": "Úpravy od {users} a {count} ďalších" }, + "infobox": { + "selected": "{n} označených", + "geometry": "Tvar", + "closed": "zatvorené", + "center": "Stred", + "perimeter": "Obvod", + "length": "Dĺžka", + "area": "Plocha", + "centroid": "Ťažisko", + "location": "Poloha", + "metric": "Metrické", + "imperial": "Imperiálne" + }, + "geometry": { + "point": "bod", + "vertex": "vrchol", + "line": "čiara", + "area": "plocha", + "relation": "relácia" + }, "geocoder": { "search": "Hľadaj celosvetovo...", "no_results_visible": "Žiadne výsledky v zobrazenej oblasti", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Prístup", - "placeholder": "Neznámy", - "types": { - "access": "Všeobecné", - "foot": "Chodci", - "motor_vehicle": "Motorové vozidlá", - "bicycle": "Bicykle", - "horse": "Kone" - }, "options": { - "yes": { - "title": "Povolené", - "description": "Vstup povolený zo zákona" + "designated": { + "description": "Povolenie vstupu je riadené dopravnými značkami alebo miestnymi zákonmi", + "title": "Vyznačené" + }, + "destination": { + "description": "Vstup povolený iba dosiahnutie cieľa", + "title": "Prejazd zakázaný" }, "no": { - "title": "Zakázané", - "description": "Verejnosti vstup zakázaný" + "description": "Verejnosti vstup zakázaný", + "title": "Zakázané" }, "permissive": { - "title": "Povolený", - "description": "Vstup povolený pokiaľ majiteľ povolenie neodvolá" + "description": "Vstup povolený pokiaľ majiteľ povolenie neodvolá", + "title": "Povolený" }, "private": { - "title": "Súkromné", - "description": "Vstup možný iba s povolením vlastníka na individuálnom základe" + "description": "Vstup možný iba s povolením vlastníka na individuálnom základe", + "title": "Súkromné" }, - "designated": { - "title": "Vyznačené", - "description": "Povolenie vstupu je riadené dopravnými značkami alebo miestnymi zákonmi" - }, - "destination": { - "title": "Prejazd zakázaný", - "description": "Vstup povolený iba dosiahnutie cieľa" + "yes": { + "description": "Vstup povolený zo zákona", + "title": "Povolené" } + }, + "placeholder": "Neznámy", + "types": { + "access": "Všeobecné", + "bicycle": "Bicykle", + "foot": "Chodci", + "horse": "Kone", + "motor_vehicle": "Motorové vozidlá" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adresa", "placeholders": { + "city": "Mesto", + "country": "Štát", + "district": "Okres", + "hamlet": "Osada/Samota", "housename": "Meno domu", "housenumber": "123", - "street": "Ulica", - "city": "Mesto", - "postcode": "PSČ", "place": "Obec", - "hamlet": "Osada/Samota", - "suburb": "Predmestie", - "subdistrict": "Podoblasť", - "district": "Okres", + "postcode": "PSČ", "province": "Provincia", "state": "Štát", - "country": "Štát" + "street": "Ulica", + "subdistrict": "Podoblasť", + "suburb": "Predmestie" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Prístup", "options": { + "both": "Obidva", "entry": "Vchod", - "exit": "Východ", - "both": "Obidva" + "exit": "Východ" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Prístup (leto)", "options": { + "both": "Obidva", "entry": "Vchod", - "exit": "Východ", - "both": "Obidva" + "exit": "Východ" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Smer", "options": { - "N": "Sever", "E": "Východ", - "S": "Juh", - "W": "Západ", - "NE": "Severtovýchod", - "SE": "Juhovýchod", - "SW": "Juhozápad", - "NW": "Severozápad", - "NNE": "Severo-severovýchod", "ENE": "Východo-severovýchod", "ESE": "Východo-juhovýchod", + "N": "Sever", + "NE": "Severtovýchod", + "NNE": "Severo-severovýchod", + "NNW": "Severo-severozápad", + "NW": "Severozápad", + "S": "Juh", + "SE": "Juhovýchod", "SSE": "Juho-juhovýchod", "SSW": "Juho-juhozápad", - "WSW": "Západo-juhozápad", + "SW": "Juhozápad", + "W": "Západ", "WNW": "Západo-severozápad", - "NNW": "Severo-severozápad" + "WSW": "Západo-juhozápad" } }, "clock_direction": { "label": "Smer", "options": { - "clockwise": "V smere hodinových ručičiek", - "anticlockwise": "Proti smeru hodinových ručičiek" + "anticlockwise": "Proti smeru hodinových ručičiek", + "clockwise": "V smere hodinových ručičiek" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Typ" }, + "content": { + "label": "Obsah" + }, "country": { "label": "štát" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Elektrifikovaná", - "placeholder": "Troleje, elektrifikované koľaje...", "options": { "contact_line": "Troleje", + "no": "Nie", "rail": "Elektrifikované koľaje", - "yes": "Áno (nešpecifikované)", - "no": "Nie" - } + "yes": "Áno (nešpecifikované)" + }, + "placeholder": "Troleje, elektrifikované koľaje..." }, "elevation": { "label": "Nadmorská výška" @@ -811,9 +834,9 @@ "label": "Typ", "options": { "pillar": "Stĺpik/Nadzemný", + "pond": "Požiarna nádrž", "underground": "Podzemný", - "wall": "Nastenný", - "pond": "Požiarna nádrž" + "wall": "Nastenný" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Pohlavie", - "placeholder": "Neznáme", "options": { - "male": "Muži", "female": "Ženy", + "male": "Muži", "unisex": "Unisex" - } + }, + "placeholder": "Neznáme" }, "generator/method": { "label": "Metóda" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Sklon", "options": { - "up": "Nahor", - "down": "Nadol" + "down": "Nadol", + "up": "Nahor" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Prístup k Internetu", "options": { - "yes": "Áno", "no": "Nie", - "wlan": "Wifi", + "terminal": "Terminál", "wired": "Káblom", - "terminal": "Terminál" + "wlan": "Wifi", + "yes": "Áno" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Opadavosť", "options": { - "evergreen": "Neopadavý", "deciduous": "Opadavý", - "semi_evergreen": "Poloopadavý", + "evergreen": "Neopadavý", + "mixed": "Zmiešaný", "semi_deciduous": "Krátkoopadavý", - "mixed": "Zmiešaný" + "semi_evergreen": "Poloopadavý" } }, "leaf_type": { "label": "Typ listov", "options": { "broadleaved": "Širokolisté", - "needleleaved": "Ihličnaté", + "leafless": "Bezlisté", "mixed": "Zmiešané", - "leafless": "Bezlisté" + "needleleaved": "Ihličnaté" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Obtiažnosť pre horské bicykle", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Štrk/zhutnená pôda, bez prekážok, široké zákruty", "1": "1: Miestami nespevnený povrch, malé prekážky, široké zákruty", @@ -983,22 +1005,22 @@ "4": "4: Nespevnený povrch alebo balvany, nebezpečné vlásenky", "5": "5: Najväčšia obtiažnosť, skalné polia, zosuvy pôdy", "6": "6: Nezjazdné okrem najlepších horských bicyklistov" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Obtiažnosť podľa IMBA", - "placeholder": "Lahká, stredná, ťažká...", "options": { "0": "Najľahšia (biely kruh)", "1": "Ľahká (zelený kruh)", "2": "Stredná (modrý štvorec)", "3": "Ťažká (čierny kosoštvorec)", "4": "Veľmi ťažká (dvojitý čierny kosoštvorec)" - } + }, + "placeholder": "Lahká, stredná, ťažká..." }, "mtb/scale/uphill": { "label": "Obtiažnosť jazdy do kopca", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Priem. sklon <10%, štrk/udupaná hlina, bez prekážok", "1": "1: Priem. sklon <15%, štrk/udupaná hlina, niekoľko malých objektov", @@ -1006,7 +1028,8 @@ "3": "3: Priem. sklon <25%, premenlivý povrch, kamene/korene veľkosti päste", "4": "4: Priem. sklon <30%, nevhodné podmienky, veľké kamene/konáre", "5": "5: Veľmi strmé, bicykel sa musí tlačiť alebo preniesť" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Názov", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Jednosmerná", "options": { + "no": "Nie", "undefined": "Pravdepodobne nie", - "yes": "Áno", - "no": "Nie" + "yes": "Áno" } }, "oneway_yes": { "label": "Jednosmerná", "options": { + "no": "Nie", "undefined": "Pravdepodobne áno", - "yes": "Áno", - "no": "Nie" + "yes": "Áno" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Typ", "options": { - "surface": "Povrch", - "multi-storey": "Viacúrovňové", - "underground": "Podzemné", - "sheds": "Šopy", "carports": "Kryté", "garage_boxes": "Garáže", - "lane": "Postranné" + "lane": "Postranné", + "multi-storey": "Viacúrovňové", + "sheds": "Šopy", + "surface": "Povrch", + "underground": "Podzemné" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Obtiažnosť", - "placeholder": "Ľahká, stredná, pokročilá...", "options": { - "novice": "Pre začiatočníkov (inštruktážny)", - "easy": "Ľahká (zelený kruh)", - "intermediate": "Stredná (modrý štvorec)", "advanced": "Pokročilá (čierny kosoštvorec)", + "easy": "Ľahká (zelený kruh)", "expert": "Pre expertov (dvojitý čierny kosoštvorec)", + "extreme": "Extrémna (potrebné horolezecké vybavenie)", "freeride": "Voľný zjazd (mimo zjazdovky)", - "extreme": "Extrémna (potrebné horolezecké vybavenie)" - } + "intermediate": "Stredná (modrý štvorec)", + "novice": "Pre začiatočníkov (inštruktážny)" + }, + "placeholder": "Ľahká, stredná, pokročilá..." }, "piste/grooming": { "label": "Úprava", "options": { - "classic": "Klasické", - "mogul": "Bubny", "backcountry": "Bežky", + "classic": "Klasické", "classic+skating": "Klasické a korčuľovanie", + "mogul": "Bubny", "scooter": "Snežné skútre", "skating": "Korčuľovanie" } @@ -1097,14 +1120,14 @@ "label": "Typ", "options": { "downhill": "Zjazd", + "hike": "Pešie túry", + "ice_skate": "Korčuľovanie", "nordic": "Severské lyžovanie", + "playground": "Ihrisko", "skitour": "Bežkovanie do kopca", "sled": "Sánky", - "hike": "Pešie túry", "sleigh": "Záprah", - "ice_skate": "Korčuľovanie", - "snow_park": "Snežný park", - "playground": "Ihrisko" + "snow_park": "Snežný park" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Typ" }, + "power_supply": { + "label": "Elektrický zdoj" + }, "railway": { "label": "Typ" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Obtiažnosť turistickej trasy", - "placeholder": "Horská turistika, vysokohorská turistika...", "options": { - "hiking": "T1: Turistika", - "mountain_hiking": "T2: Horská turistika", - "demanding_mountain_hiking": "T3: Náročná horská turistika", "alpine_hiking": "T4: Vysokohorská turistika", "demanding_alpine_hiking": "T5: Náročná vysokohorská turistika", - "difficult_alpine_hiking": "T6: Obtiažna vysokohorská turistika" - } + "demanding_mountain_hiking": "T3: Náročná horská turistika", + "difficult_alpine_hiking": "T6: Obtiažna vysokohorská turistika", + "hiking": "T1: Turistika", + "mountain_hiking": "T2: Horská turistika" + }, + "placeholder": "Horská turistika, vysokohorská turistika..." + }, + "sanitary_dump_station": { + "label": "Vyprázdňovanie toaliet" }, "seasonal": { "label": "Sezónne" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Oprava reťaze", "options": { + "no": "Nie", "undefined": "Pravdepodobne nie", - "yes": "Áno", - "no": "Nie" + "yes": "Áno" } }, "service/bicycle/pump": { "label": "Vzduchová pumpa", "options": { + "no": "Nie", "undefined": "Pravdepodobne nie", - "yes": "Áno", - "no": "Nie" + "yes": "Áno" } }, "service_rail": { "label": "Typ koľaje", "options": { - "spur": "Vlečka", - "yard": "Zoraďovacia koľaj", + "crossover": "Výhybka", "siding": "Výhybňa", - "crossover": "Výhybka" + "spur": "Vlečka", + "yard": "Zoraďovacia koľaj" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Fajčenie", - "placeholder": "Nie, odelene, áno...", "options": { - "no": "Zákaz fajčenia", - "separated": "Vo fajčiarskom priestore, bez fyzického oddelenia", + "dedicated": "Určený pre fajčiarov (napr. fajčiarský klub)", "isolated": "Vo fajčiarskom priestore, fyzicky oddelený", + "no": "Zákaz fajčenia", "outside": "Vo vonkajšich priestoroch", - "yes": "Povolené všade", - "dedicated": "Určený pre fajčiarov (napr. fajčiarský klub)" - } + "separated": "Vo fajčiarskom priestore, bez fyzického oddelenia", + "yes": "Povolené všade" + }, + "placeholder": "Nie, odelene, áno..." }, "smoothness": { "label": "Rovnosť vozovky", - "placeholder": "Malé kolieska, kolesá, off-road...", "options": { + "bad": "Pevné kolesá: trekový bicykel, auto, rikša", "excellent": "Malé kolieska: kolieskové korčule, skateboard", "good": "Tenké kolesá: závodný bicykel", + "horrible": "Off-road: výkonné off-road vozidlo", + "impassable": "Nepriechodné / Nie pre kolesové vozidlá", "intermediate": "Kolesá: mestský bicykel, invalidný vozík, skúter", - "bad": "Pevné kolesá: trekový bicykel, auto, rikša", "very_bad": "Zvýšený podvozok: ľahké off-road vozidlo", - "horrible": "Off-road: výkonné off-road vozidlo", - "very_horrible": "Špecializovaný off-road: traktor, štvorkolka", - "impassable": "Nepriechodné / Nie pre kolesové vozidlá" - } + "very_horrible": "Špecializovaný off-road: traktor, štvorkolka" + }, + "placeholder": "Malé kolieska, kolesá, off-road..." }, "social_facility_for": { "label": "Služby poskytované pre", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Štruktúra", - "placeholder": "Neznáme", "options": { "bridge": "Most", - "tunnel": "Tunel", - "embankment": "Násyp", "cutting": "Výkop", - "ford": "Brod" - } + "embankment": "Násyp", + "ford": "Brod", + "tunnel": "Tunel" + }, + "placeholder": "Neznáme" }, "studio_type": { "label": "Typ" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Jedlo so sebou", - "placeholder": "Áno, Nie, Iba so sebou...", "options": { - "yes": "Áno", "no": "Nie", - "only": "Iba so sebou" - } + "only": "Iba so sebou", + "yes": "Áno" + }, + "placeholder": "Áno, Nie, Iba so sebou..." }, "toilets/disposal": { "label": "Odstraňovanie", "options": { - "flush": "Splachovacie", - "pitlatrine": "Latrína", + "bucket": "Suché", "chemical": "Chemické", - "bucket": "Suché" + "flush": "Splachovacie", + "pitlatrine": "Latrína" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Typ lesnej cesty", - "placeholder": "Pevná, väčšinou pevná, mäkká...", "options": { "grade1": "Pevná: spevnený alebo silne skompaktnený povrch", "grade2": "Väčšinou pevná: štrk zmiešaný s mäkkými materiálmi", "grade3": "Vyvážená zmes tvrdých a mäkkých materiálov", "grade4": "Väčšinou jemná: pôda/piesok/tráva s zmiešané s tvrdým materiálom", "grade5": "Mäkká: pôda/piesok/tráva" - } + }, + "placeholder": "Pevná, väčšinou pevná, mäkká..." }, "trail_visibility": { "label": "Viditeľnosť trasy", - "placeholder": "Výborná, dobrá, zlá...", "options": { + "bad": "Zlá: bez značenia, chodník občas nepozorovateľný", "excellent": "Výborná: jednoznačný chodník alebo časté značenie", "good": "Dobrá: značenie viditeľné, občasne vyžaduje hľadanie", - "intermediate": "Stredná: riedke značenie, chodník zväčša viditeľný", - "bad": "Zlá: bez značenia, chodník občas nepozorovateľný", "horrible": "Veľmi zlá: často bez chodníka, čiastočne vyžaduje orientačné zručnosti", + "intermediate": "Stredná: riedke značenie, chodník zväčša viditeľný", "no": "Nie: bez chodníka, vyžaduje výborné orientačné zručnosti" - } + }, + "placeholder": "Výborná, dobrá, zlá..." }, "trees": { "label": "Stromy" @@ -1334,6 +1363,9 @@ "water": { "label": "Typ" }, + "water_point": { + "label": "Zdroj vody" + }, "waterway": { "label": "Typ" }, @@ -1475,6 +1507,10 @@ "name": "Stojan pre opravu bicyklov", "terms": "stojan,oprava,bicykle,bicykel,reťaz,retaz,pumpa,hustilka,vzduch,koleso,kolesá,kolesa" }, + "amenity/biergarten": { + "name": "Záhradná piváreň", + "terms": "zahradna pivaren,pivnica,hostinec,krčma,krcma,vonkajšie posedenie,vonkajsie posedenie" + }, "amenity/boat_rental": { "name": "Prenájom lodí", "terms": "prenajom lodi,požičovňa lodí,pozicovna lodi,prenájom člnov,prenajom clnov,pozivocna clnov,požičovňa člnov, čln,cln,člny,clny,lode,skútre,skutre,vodné skútre,vodne skutre" @@ -1671,6 +1707,10 @@ "name": "Reštaurácia", "terms": "bar,kafetéria,kantýna,jedáleň,pizzeria,jedlo,rýchloobčerstvenie,fastfood,večera,reštaurácia,reštika,jedenie,kantyna,jedalen,rychloobcerstvenie,vecera,restauracia,restika" }, + "amenity/sanitary_dump_station": { + "name": "Vyprázdňovanie karavánových toaliet", + "terms": "vyprazdnovanie karavanovych toaliet" + }, "amenity/school": { "name": "Školský areál", "terms": "Skolsky areal,skola,druzina" @@ -2631,10 +2671,18 @@ "name": "Maják", "terms": "majak,výstraha,vystraha" }, + "man_made/mast": { + "name": "Telekomunikačný stožiar", + "terms": "telekomunikacny stoziar,stlp,veza,veža,stĺp" + }, "man_made/observation": { "name": "Výhliadková veža", "terms": "vyhliadkova veza,veza,veža,výhliadka,vyhliadka" }, + "man_made/petroleum_well": { + "name": "Ropný vrt", + "terms": "ropny vrt,ropa" + }, "man_made/pier": { "name": "Mólo", "terms": "molo,stĺpy,stlpy,kotva,kotvenie,ukotvenie,lode,promenáda,promenada,lávka,lavka" @@ -2643,6 +2691,14 @@ "name": "Potrubie", "terms": "rúra,rura,rúry,rury,transport,vodovod,ropovod,plynovod,kanál,kanal,rozvod" }, + "man_made/silo": { + "name": "Silo", + "terms": "siláž,silaz,silazna veza,silážna veža" + }, + "man_made/storage_tank": { + "name": "Zásobník", + "terms": "zasobnik,rezervoár,rezervoar,cisterna,nádrž,nadrz" + }, "man_made/survey_point": { "name": "Triangulačný bod", "terms": "triangulacny bod,nivelizacny bod,nivelizačný bod,nivelácia,nivelacia,referencny bod,referenčný bod" @@ -2863,6 +2919,10 @@ "name": "Veľkomesto", "terms": "velkomesto,mesto" }, + "place/farm": { + "name": "Farma", + "terms": "farma" + }, "place/hamlet": { "name": "Osada", "terms": "laz,kopanice,kopanica,samota,kolónia,kolonia" @@ -3651,6 +3711,10 @@ "name": "Odvodňovací kanál", "terms": "odvodnovaci kanal,kanal,jarok" }, + "waterway/fuel": { + "name": "Čerpacia stanica pre lode", + "terms": "cerpacia stanica pre lode,benzín,benzin,nafta,palivo" + }, "waterway/river": { "name": "Rieka", "terms": "riečka,potok,potúčik,potocik,bystrina" @@ -3659,6 +3723,10 @@ "name": "Breh rieky", "terms": "riečny breh,riecny breh,bok,strana,pobrežie,pobrezie,rieky,bok rieky,strana rieky" }, + "waterway/sanitary_dump_station": { + "name": "Vyprázdnovanie lodných toaliet", + "terms": "vyprazdnovanie lodnych toaliet" + }, "waterway/stream": { "name": "Potok", "terms": "potok,potôčik,bystrina,riečka,kanál,potocik,riecka,kanal,pstruha" diff --git a/vendor/assets/iD/iD/locales/sl.json b/vendor/assets/iD/iD/locales/sl.json index c680bd13a..8687063f4 100644 --- a/vendor/assets/iD/iD/locales/sl.json +++ b/vendor/assets/iD/iD/locales/sl.json @@ -226,7 +226,6 @@ "commit": { "title": "Shrani spremembe", "description_placeholder": "Kratek opis vaših sprememb", - "message_label": "Povzetek sprememb", "upload_explanation": "Spremembe, ki ji boste naložili, bodo vidne na vseh zemljevidih, ki uporabljajo podatke OpenStreetMap.", "upload_explanation_with_user": "Spremembe, ki jih boste naložili kot {user}, bodo vidne na vseh zemljevidih, ki uporabljajo podatke OpenStreetMap.", "save": "Shrani", @@ -443,39 +442,39 @@ "fields": { "access": { "label": "Dostop", - "placeholder": "Neznano", - "types": { - "access": "Splošno", - "foot": "Peš", - "motor_vehicle": "Motorna vozila", - "bicycle": "Kolesarji", - "horse": "Konji" - }, "options": { - "yes": { - "title": "Dovoljeno", - "description": "Dostopno po zakonu; služnostna pravica" + "designated": { + "description": "Dostop je dovoljen v skladu z znaki ali posebnimi krajevnimi zakoni", + "title": "Namembno" + }, + "destination": { + "description": "Dostop je dovoljen samo za dostavo", + "title": "Za dostavo" }, "no": { - "title": "Prepovedano", - "description": "Dostop za splošno javnosto NI dovoljen" + "description": "Dostop za splošno javnosto NI dovoljen", + "title": "Prepovedano" }, "permissive": { - "title": "Začasno dovoljen", - "description": "Dostop je dovoljen začasno, dokler lastnik dovoljenja ne prekliče" + "description": "Dostop je dovoljen začasno, dokler lastnik dovoljenja ne prekliče", + "title": "Začasno dovoljen" }, "private": { - "title": "Zasebno", - "description": "Dostop je dovoljen samo z osebnim dovoljenjem lastnika" - }, - "designated": { - "title": "Namembno", - "description": "Dostop je dovoljen v skladu z znaki ali posebnimi krajevnimi zakoni" + "description": "Dostop je dovoljen samo z osebnim dovoljenjem lastnika", + "title": "Zasebno" }, - "destination": { - "title": "Za dostavo", - "description": "Dostop je dovoljen samo za dostavo" + "yes": { + "description": "Dostopno po zakonu; služnostna pravica", + "title": "Dovoljeno" } + }, + "placeholder": "Neznano", + "types": { + "access": "Splošno", + "bicycle": "Kolesarji", + "foot": "Peš", + "horse": "Konji", + "motor_vehicle": "Motorna vozila" } }, "access_simple": { @@ -488,19 +487,19 @@ "address": { "label": "Naslov", "placeholders": { + "city": "Mesto", + "country": "Država", + "district": "Okrožje", + "hamlet": "Zaselek", "housename": "Hišno/domače ime", "housenumber": "123", - "street": "Ulica", - "city": "Mesto", - "postcode": "Poštna številka", "place": "Kraj", - "hamlet": "Zaselek", - "suburb": "Predmestje", - "subdistrict": "Okraj", - "district": "Okrožje", + "postcode": "Poštna številka", "province": "Pokrajina", "state": "Zvezna država", - "country": "Država" + "street": "Ulica", + "subdistrict": "Okraj", + "suburb": "Predmestje" } }, "admin_level": { @@ -512,9 +511,9 @@ "aerialway/access": { "label": "Dostop", "options": { + "both": "Oboje", "entry": "Vhod", - "exit": "Izhod", - "both": "Oboje" + "exit": "Izhod" } }, "aerialway/bubble": { @@ -538,9 +537,9 @@ "aerialway/summer/access": { "label": "Dostop (poleti)", "options": { + "both": "Oboje", "entry": "Vhod", - "exit": "Izhod", - "both": "Oboje" + "exit": "Izhod" } }, "aeroway": { @@ -583,29 +582,29 @@ "cardinal_direction": { "label": "Smer", "options": { - "N": "Sever", "E": "Vzhod", - "S": "Jug", - "W": "Zahod", - "NE": "Severovzhod", - "SE": "Jugovzhod", - "SW": "Jugozahod", - "NW": "Severozahod", - "NNE": "Sever-severovzhod", "ENE": "Vzhod-severovzhod", "ESE": "Vzhod-jugovzhod", + "N": "Sever", + "NE": "Severovzhod", + "NNE": "Sever-severovzhod", + "NNW": "Sever-severozahod", + "NW": "Severozahod", + "S": "Jug", + "SE": "Jugovzhod", "SSE": "Jug-jugovzhod", "SSW": "Jug-jugozahod", - "WSW": "Zahod-jugozahod", + "SW": "Jugozahod", + "W": "Zahod", "WNW": "Zahod-severozahod", - "NNW": "Sever-severozahod" + "WSW": "Zahod-jugozahod" } }, "clock_direction": { "label": "Smer", "options": { - "clockwise": "V smeri urinega kazalca", - "anticlockwise": "Proti smeri urinega kazalca" + "anticlockwise": "Proti smeri urinega kazalca", + "clockwise": "V smeri urinega kazalca" } }, "collection_times": { @@ -640,13 +639,13 @@ }, "electrified": { "label": "Elektrifikacija", - "placeholder": "Elektrificiran tir", "options": { "contact_line": "Kontaktni vod", + "no": "Ne", "rail": "Prevodne tračnice", - "yes": "Da (vrsta ni določena)", - "no": "Ne" - } + "yes": "Da (vrsta ni določena)" + }, + "placeholder": "Elektrificiran tir" }, "elevation": { "label": "Nadmorska višina" @@ -671,9 +670,9 @@ "label": "Vrsta", "options": { "pillar": "Nadzemni", + "pond": "Črpališče iz ribnika", "underground": "Podzemni", - "wall": "Zidni", - "pond": "Črpališče iz ribnika" + "wall": "Zidni" } }, "fixme": { @@ -754,11 +753,11 @@ "internet_access": { "label": "Dostop do interneta", "options": { - "yes": "Da", "no": "Ne", - "wlan": "Wifi - brezžično", + "terminal": "Računalniški terminal", "wired": "Žično", - "terminal": "Računalniški terminal" + "wlan": "Wifi - brezžično", + "yes": "Da" } }, "lamp_type": { @@ -799,7 +798,6 @@ }, "mtb/scale": { "label": "Gorsko-kolesarska zahtevnost", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Trden konglomerat (prodniki)/zbita prst, brez ovir, široki zavoji", "1": "1: Ponekod nestabilna podlaga, majhne ovire, široki zavoji", @@ -808,22 +806,22 @@ "4": "4: Nestabilna podlaga ali večje skale, tvegano obračanje na prednjem kolesu", "5": "5: Največja zahtevnost, večja območja skal, zemeljski plazovi, usadi", "6": "6: Ni mogoče premagati na kolesu, razen za najbolj izurjene gorske kolesarje" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Zahtevnost po IMBA", - "placeholder": "Nezahtevno, srednje zahtevno, zahtevno", "options": { "0": "Najlažje (bel krogec)", "1": "Lahko (zelen krogec)", "2": "Srednje zahtevno (moder kvadratek)", "3": "Zahtevno (črn karo)", "4": "Izjemno zahtevno (dvojni črn karo)" - } + }, + "placeholder": "Nezahtevno, srednje zahtevno, zahtevno" }, "mtb/scale/uphill": { "label": "Zahtevnost vzpona na kolesu", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Povprečen naklon <10%, prod/zbita prst, brez ovir", "1": "1: Povprečen naklon <15%, prod/zbita prst, nekaj manjših ovir", @@ -831,7 +829,8 @@ "3": "3: Povprečen naklon <25%, spremenljiva podlaga, kamenje do velikosti pesti, veje", "4": "4: Povprečen naklon <30%, v slabem stanju, veliki kamni, veje", "5": "5: Zelo strmo, kolo je večinoma potrebno potiskati oz. ga nositi" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Ime", @@ -852,17 +851,17 @@ "oneway": { "label": "Enosmerna", "options": { + "no": "Ne", "undefined": "Predpostavljeno: NE", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "oneway_yes": { "label": "Enosmerna", "options": { + "no": "Ne", "undefined": "Predpostavljeno: DA", - "yes": "Da", - "no": "Ne" + "yes": "Da" } }, "opening_hours": { @@ -881,13 +880,13 @@ "parking": { "label": "Vrsta", "options": { - "surface": "Na prostem", - "multi-storey": "V več nadstropjih", - "underground": "Podzemno", - "sheds": "Samostoječa zasebna garaža", "carports": "Nadstrešek", "garage_boxes": "Garažni boks", - "lane": "Pas za parkiranje" + "lane": "Pas za parkiranje", + "multi-storey": "V več nadstropjih", + "sheds": "Samostoječa zasebna garaža", + "surface": "Na prostem", + "underground": "Podzemno" } }, "phone": { @@ -896,24 +895,24 @@ }, "piste/difficulty": { "label": "Zahtevnost", - "placeholder": "Lahke, srednje zahtevne, zahtevne...", "options": { - "novice": "Za začetnike", - "easy": "Lahka", - "intermediate": "Srednje zahtevna", "advanced": "Zahtevna", + "easy": "Lahka", "expert": "Zelo zahtevna", + "extreme": "Izjemno zahtevna (za vzpon nujna uporaba plezalnih pripomočkov)", "freeride": "Variantno smučanje - neteptana", - "extreme": "Izjemno zahtevna (za vzpon nujna uporaba plezalnih pripomočkov)" - } + "intermediate": "Srednje zahtevna", + "novice": "Za začetnike" + }, + "placeholder": "Lahke, srednje zahtevne, zahtevne..." }, "piste/grooming": { "label": "Teptanje", "options": { - "classic": "Klasično", - "mogul": "Grbine", "backcountry": "Smučarsko pohodništvo", + "classic": "Klasično", "classic+skating": "Tek na smučeh - klasična in drsalna tehnika", + "mogul": "Grbine", "scooter": "Snežne sani", "skating": "Tek na smučeh - drsalna tehnika" } @@ -922,14 +921,14 @@ "label": "Vrsta", "options": { "downhill": "Alpsko smučanje", + "hike": "Zimsko pohodništvo", + "ice_skate": "Drsanje", "nordic": "Nordijsko smučanje", + "playground": "Igrišče", "skitour": "Turno smučanje", "sled": "Sankanje", - "hike": "Zimsko pohodništvo", "sleigh": "Snežna vprega", - "ice_skate": "Drsanje", - "snow_park": "Snežni park", - "playground": "Igrišče" + "snow_park": "Snežni park" } }, "place": { @@ -979,15 +978,15 @@ }, "sac_scale": { "label": "Težavnost hoje", - "placeholder": "Različne stopnje težavnosti poti...", "options": { - "hiking": "T1: Hiking", - "mountain_hiking": "T2: Mountain Hiking", - "demanding_mountain_hiking": "T3: Demanding Mountain Hiking", "alpine_hiking": "T4: Alpine Hiking", "demanding_alpine_hiking": "T5: Demanding Alpine Hiking", - "difficult_alpine_hiking": "T6: Difficult Alpine Hiking" - } + "demanding_mountain_hiking": "T3: Demanding Mountain Hiking", + "difficult_alpine_hiking": "T6: Difficult Alpine Hiking", + "hiking": "T1: Hiking", + "mountain_hiking": "T2: Mountain Hiking" + }, + "placeholder": "Različne stopnje težavnosti poti..." }, "seasonal": { "label": "Sezonskost" @@ -1009,28 +1008,28 @@ }, "smoking": { "label": "Kajenje", - "placeholder": "Ne, ločeno, da...", "options": { - "no": "Prepovedano brez izjem", - "separated": "Prostor za kadilce, ki ni ločen s pregrado", + "dedicated": "Namenjeno kadilcem.", "isolated": "Prostor za kadilce, ki je ločen s pregrado", + "no": "Prepovedano brez izjem", "outside": "Dovoljeno zunaj.", - "yes": "Dovoljeno povsod.", - "dedicated": "Namenjeno kadilcem." - } + "separated": "Prostor za kadilce, ki ni ločen s pregrado", + "yes": "Dovoljeno povsod." + }, + "placeholder": "Ne, ločeno, da..." }, "smoothness": { "label": "Gladkost", - "placeholder": "Za rolerje, kolesa, terence ...", "options": { + "bad": "Robustna kolesa: za treking kolo, avto, rikšo ipd.", "excellent": "Ozka kolesca - tudi za rolerje, rolke ipd.", "good": "Ozka kolesa: za cestno kolo ipd.", + "horrible": "Terenska vozila: za terenska vozila ipd.", "intermediate": "Kolesa: za cestno kolo, invalidski voziček, skuter ipd.", - "bad": "Robustna kolesa: za treking kolo, avto, rikšo ipd.", "very_bad": "Visoko podvozje: za vozila z večjim odmikom od tal, lažje terence", - "horrible": "Terenska vozila: za terenska vozila ipd.", "very_horrible": "Posebna terenska vozila: traktor, štirikolesnik, tank, gorsko kolo" - } + }, + "placeholder": "Za rolerje, kolesa, terence ..." }, "social_facility_for": { "label": "Socialna ustanova - ciljna skupina", @@ -1050,14 +1049,14 @@ }, "structure": { "label": "Premostitveni objekt", - "placeholder": "Neznano", "options": { "bridge": "Most", - "tunnel": "Predor", - "embankment": "Nasip", "cutting": "Usek", - "ford": "Plitvina" - } + "embankment": "Nasip", + "ford": "Plitvina", + "tunnel": "Predor" + }, + "placeholder": "Neznano" }, "studio_type": { "label": "Vrsta" @@ -1074,10 +1073,10 @@ "toilets/disposal": { "label": "Odstranjevanje odpadkov", "options": { - "flush": "Splakovanje", - "pitlatrine": "Štrbunk", + "bucket": "Posoda", "chemical": "Kemično", - "bucket": "Posoda" + "flush": "Splakovanje", + "pitlatrine": "Štrbunk" } }, "tourism": { @@ -1088,26 +1087,26 @@ }, "tracktype": { "label": "Tip kolovoza", - "placeholder": "Trdno, pretežno trdno, mehko...", "options": { "grade1": "Trdno: asfaltirano ali močno zbito vozišče", "grade2": "Pretežno trdno: prodniki/kamni, pomešani z mehkejšim materialom", "grade3": "Enakovredna zmes trdnega in mehkega materiala", "grade4": "Pretežno mehko: prst/pesek/traka z dodatki tršega materiala", "grade5": "Mehko: prst/pesek/trava" - } + }, + "placeholder": "Trdno, pretežno trdno, mehko..." }, "trail_visibility": { "label": "Vidnost poti", - "placeholder": "Odlična, dobra, slaba...", "options": { + "bad": "Slaba: ni oznak poti, pot ponekod ni vidna oz. je sploh ni", "excellent": "Odlična: nedvoumen potek poti ali pa zelo dobro označena", "good": "Dobra: vidne oznake poti, ponekod je lahko potrebno iskanje", - "intermediate": "Srednja: le nekaj oznak poti, pot je večinoma vidna", - "bad": "Slaba: ni oznak poti, pot ponekod ni vidna oz. je sploh ni", "horrible": "Obupna: pogosto brezpotje, terja sposobnost orientacije", + "intermediate": "Srednja: le nekaj oznak poti, pot je večinoma vidna", "no": "Ne: brezpotje, terja zelo dobro sposobnost orientacije" - } + }, + "placeholder": "Odlična, dobra, slaba..." }, "trees": { "label": "Drevesa" diff --git a/vendor/assets/iD/iD/locales/sr.json b/vendor/assets/iD/iD/locales/sr.json index df087a092..4a7875ff9 100644 --- a/vendor/assets/iD/iD/locales/sr.json +++ b/vendor/assets/iD/iD/locales/sr.json @@ -208,7 +208,6 @@ "commit": { "title": "Сачувај измене", "description_placeholder": "Кратак опис ваших доприноса", - "message_label": "Предавање поруке", "upload_explanation": "Промене које учитате ће бити видљиве на свим мапама које користе Опенстреетмап податке.", "upload_explanation_with_user": "Промене које учитате као {user} ће бити видљиве на свим мапама које користе Опенстреетмап податке.", "save": "Сачувај", @@ -421,39 +420,39 @@ "fields": { "access": { "label": "Приступ", - "placeholder": "Непознато", - "types": { - "access": "Општи", - "foot": "Пешке", - "motor_vehicle": "За моторна возила", - "bicycle": "За бицикле", - "horse": "За коње" - }, "options": { - "yes": { - "title": "Дозвољен", - "description": "Приступе дозвољен законом, правом проласка" + "designated": { + "description": "Приступ дозвољен само према знацима или одређеним локалним законима", + "title": "Наменски" + }, + "destination": { + "description": "Приступ дозвољен само за пролазак до одредишта", + "title": "Одредиште" }, "no": { - "title": "Забрањен", - "description": "Приступ није дозвољен за ширу јавност" + "description": "Приступ није дозвољен за ширу јавност", + "title": "Забрањен" }, "permissive": { - "title": "Пропустљив", - "description": "Приступе дозвољен све док власник опозове дозволу" + "description": "Приступе дозвољен све док власник опозове дозволу", + "title": "Пропустљив" }, "private": { - "title": "Приватан", - "description": "Приступ дозвољен само уз одобрење власника на индивидуалној основи" + "description": "Приступ дозвољен само уз одобрење власника на индивидуалној основи", + "title": "Приватан" }, - "designated": { - "title": "Наменски", - "description": "Приступ дозвољен само према знацима или одређеним локалним законима" - }, - "destination": { - "title": "Одредиште", - "description": "Приступ дозвољен само за пролазак до одредишта" + "yes": { + "description": "Приступе дозвољен законом, правом проласка", + "title": "Дозвољен" } + }, + "placeholder": "Непознато", + "types": { + "access": "Општи", + "bicycle": "За бицикле", + "foot": "Пешке", + "horse": "За коње", + "motor_vehicle": "За моторна возила" } }, "access_simple": { @@ -466,18 +465,18 @@ "address": { "label": "Адреса", "placeholders": { + "city": "Град", + "country": "Држава", + "district": "Округ", + "hamlet": "Засеок", "housename": "Назив куће", "housenumber": "123", - "street": "Улица", - "city": "Град", "place": "Место", - "hamlet": "Засеок", - "suburb": "Предграђе", - "subdistrict": "Подокруг", - "district": "Округ", "province": "Провинција", "state": "Савезна држава", - "country": "Држава" + "street": "Улица", + "subdistrict": "Подокруг", + "suburb": "Предграђе" } }, "admin_level": { @@ -554,29 +553,29 @@ "cardinal_direction": { "label": "Правац", "options": { - "N": "Север", "E": "Исток", - "S": "Југ", - "W": "Запад", - "NE": "Североисток", - "SE": "Југоисток", - "SW": "Југозапад", - "NW": "Северозапад", - "NNE": "Север-северозапад", "ENE": "Исток-североисток", "ESE": "Исток-југоисток", + "N": "Север", + "NE": "Североисток", + "NNE": "Север-северозапад", + "NNW": "Север-северозапад", + "NW": "Северозапад", + "S": "Југ", + "SE": "Југоисток", "SSE": "Југ-југоисток", "SSW": "Југ-југозапад", - "WSW": "Запад-југозапад", + "SW": "Југозапад", + "W": "Запад", "WNW": "Запад-северозапад", - "NNW": "Север-северозапад" + "WSW": "Запад-југозапад" } }, "clock_direction": { "label": "Правац", "options": { - "clockwise": "У смеру казаљке на сату", - "anticlockwise": "Супротно смеру казаљке на сату" + "anticlockwise": "Супротно смеру казаљке на сату", + "clockwise": "У смеру казаљке на сату" } }, "collection_times": { @@ -610,8 +609,8 @@ "label": "Електрификација", "options": { "contact_line": "Контактна мрежа", - "yes": "Да (неодређено)", - "no": "Не" + "no": "Не", + "yes": "Да (неодређено)" } }, "elevation": { @@ -637,9 +636,9 @@ "label": "Врста", "options": { "pillar": "Стуб/Надземни", + "pond": "Резервоар", "underground": "Подземни", - "wall": "Зид", - "pond": "Резервоар" + "wall": "Зид" } }, "fixme": { @@ -710,11 +709,11 @@ "internet_access": { "label": "Приступ Интернету", "options": { - "yes": "Да", "no": "Не", - "wlan": "Бежични Интернет", + "terminal": "Терминал", "wired": "Кабловски", - "terminal": "Терминал" + "wlan": "Бежични Интернет", + "yes": "Да" } }, "lamp_type": { @@ -778,15 +777,15 @@ "oneway": { "label": "Једносмерни", "options": { - "yes": "Да", - "no": "Не" + "no": "Не", + "yes": "Да" } }, "oneway_yes": { "label": "Једносмерна", "options": { - "yes": "Да", - "no": "Не" + "no": "Не", + "yes": "Да" } }, "opening_hours": { @@ -805,8 +804,8 @@ "label": "Врста", "options": { "multi-storey": "Вишеспратни", - "underground": "Подземни", - "sheds": "Наткривени" + "sheds": "Наткривени", + "underground": "Подземни" } }, "phone": { @@ -900,13 +899,13 @@ }, "structure": { "label": "Грађевина", - "placeholder": "Непознато", "options": { "bridge": "Мост", - "tunnel": "Тунел", + "cutting": "Усек", "embankment": "Насип", - "cutting": "Усек" - } + "tunnel": "Тунел" + }, + "placeholder": "Непознато" }, "studio_type": { "label": "Врста" diff --git a/vendor/assets/iD/iD/locales/sv.json b/vendor/assets/iD/iD/locales/sv.json index e2b7bafed..ef6fbed50 100644 --- a/vendor/assets/iD/iD/locales/sv.json +++ b/vendor/assets/iD/iD/locales/sv.json @@ -239,7 +239,7 @@ "commit": { "title": "Spara ändringar", "description_placeholder": "Kort beskrivning av dina ändringar", - "message_label": "Skicka meddelande", + "message_label": "Ändringskommentar", "upload_explanation": "De redigeringar du bidrar med kommer att synas på alla kartor som använder OpenStreetMaps data.", "upload_explanation_with_user": "De redigeringar du bidrar med som {user} kommer att synas på alla kartor som använder OpenStreetMaps data.", "save": "Spara", @@ -254,6 +254,26 @@ "list": "Ändrad av {users}", "truncated_list": "Ändrad av {users} och {count} andra" }, + "infobox": { + "selected": "{n} vald(a)", + "geometry": "Geometri", + "closed": "sluten", + "center": "Centrum", + "perimeter": "Omkrets", + "length": "Längd", + "area": "Area", + "centroid": "Centrumpunkt", + "location": "Positionering", + "metric": "Metriskt", + "imperial": "Brittiskt" + }, + "geometry": { + "point": "Punkt", + "vertex": "Hörn", + "line": "Linje", + "area": "area", + "relation": "relation" + }, "geocoder": { "search": "Sök hela världen...", "no_results_visible": "Inget hittades i visad kartyta", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Tillgång", - "placeholder": "Okänt", - "types": { - "access": "Generell", - "foot": "Fotgängare", - "motor_vehicle": "Motorfordon", - "bicycle": "Cyklar", - "horse": "Hästar" - }, "options": { - "yes": { - "title": "Tillåtna", - "description": "Tillträde är tillåtet enligt lag" + "designated": { + "description": "Åtkomst tillåten enligt skyltar eller specifika lokala lagar", + "title": "Föredragen" + }, + "destination": { + "description": "Åtkomst tillåten endast för att nå en destination", + "title": "Destination" }, "no": { - "title": "Förbjudet", - "description": "Tillträde ej tillåten för allmänheten" + "description": "Tillträde ej tillåten för allmänheten", + "title": "Förbjudet" }, "permissive": { - "title": "Påbjuden", - "description": "Tillträde tillåten fram till dess ägare återkallar tillståndet" + "description": "Tillträde tillåten fram till dess ägare återkallar tillståndet", + "title": "Påbjuden" }, "private": { - "title": "Privat", - "description": "Tillträde tillåten endast med tillstånd av ägaren på individuell basis" - }, - "designated": { - "title": "Föredragen", - "description": "Åtkomst tillåten enligt skyltar eller specifika lokala lagar" + "description": "Tillträde tillåten endast med tillstånd av ägaren på individuell basis", + "title": "Privat" }, - "destination": { - "title": "Destination", - "description": "Åtkomst tillåten endast för att nå en destination" + "yes": { + "description": "Tillträde är tillåtet enligt lag", + "title": "Tillåtna" } + }, + "placeholder": "Okänt", + "types": { + "access": "Generell", + "bicycle": "Cyklar", + "foot": "Fotgängare", + "horse": "Hästar", + "motor_vehicle": "Motorfordon" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Adress", "placeholders": { + "city": "Stad", + "country": "Land", + "district": "Distrikt", + "hamlet": "Småort", "housename": "Husnamn", "housenumber": "123", - "street": "Gata", - "city": "Stad", - "postcode": "Postnummer", "place": "Plats", - "hamlet": "Småort", - "suburb": "Stadsdel", - "subdistrict": "Deldistrikt", - "district": "Distrikt", + "postcode": "Postnummer", "province": "Provins", "state": "Stat", - "country": "Land" + "street": "Gata", + "subdistrict": "Deldistrikt", + "suburb": "Stadsdel" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Tillgång", "options": { + "both": "Båda", "entry": "Ingång", - "exit": "Utgång", - "both": "Båda" + "exit": "Utgång" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Tillgång (sommar)", "options": { + "both": "Båda", "entry": "Ingång", - "exit": "Utgång", - "both": "Båda" + "exit": "Utgång" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Riktning", "options": { - "N": "Norr", "E": "Öster", - "S": "Söder", - "W": "Väster", - "NE": "Nordost", - "SE": "Sydost", - "SW": "Sydväst", - "NW": "Nordväst", - "NNE": "Nordnordost", "ENE": "Ostnordost", "ESE": "Ostsydost", + "N": "Norr", + "NE": "Nordost", + "NNE": "Nordnordost", + "NNW": "Nordnordväst", + "NW": "Nordväst", + "S": "Söder", + "SE": "Sydost", "SSE": "Sydsydost", "SSW": "Sydsydväst", - "WSW": "Västsydväst", + "SW": "Sydväst", + "W": "Väster", "WNW": "Västnordväst", - "NNW": "Nordnordväst" + "WSW": "Västsydväst" } }, "clock_direction": { "label": "Riktning", "options": { - "clockwise": "Medsols", - "anticlockwise": "Motsols" + "anticlockwise": "Motsols", + "clockwise": "Medsols" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Typ" }, + "content": { + "label": "Innehåll" + }, "country": { "label": "Land" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Elförsörjning", - "placeholder": "Kontaktledning, elektrifierad räls...", "options": { "contact_line": "Kontaktledning", + "no": "Nej", "rail": "Elektrifierad räls", - "yes": "Ja (ospecificerad)", - "no": "Nej" - } + "yes": "Ja (ospecificerad)" + }, + "placeholder": "Kontaktledning, elektrifierad räls..." }, "elevation": { "label": "Höjd" @@ -811,9 +834,9 @@ "label": "Typ", "options": { "pillar": "Stolpe/Ovan jord", + "pond": "Damm", "underground": "Underjordisk", - "wall": "Vägg", - "pond": "Damm" + "wall": "Vägg" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Kön", - "placeholder": "Okänt", "options": { - "male": "Man", "female": "Kvinna", + "male": "Man", "unisex": "Unisex" - } + }, + "placeholder": "Okänt" }, "generator/method": { "label": "Metod" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Lutning", "options": { - "up": "Upp", - "down": "Ner" + "down": "Ner", + "up": "Upp" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Internetaccess", "options": { - "yes": "Ja", "no": "Nej", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Trådbunden", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Ja" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Lövcykel", "options": { - "evergreen": "Vintergröna", "deciduous": "Lövfällande", - "semi_evergreen": "Delvist vintergröna", + "evergreen": "Vintergröna", + "mixed": "Mixat", "semi_deciduous": "Delvist lövfällande", - "mixed": "Mixat" + "semi_evergreen": "Delvist vintergröna" } }, "leaf_type": { "label": "Lövtyp", "options": { "broadleaved": "Löv", - "needleleaved": "Barr", + "leafless": "Utan löv", "mixed": "Blandat", - "leafless": "Utan löv" + "needleleaved": "Barr" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Mountainbike-svårighet", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Fast grus/packad jord, inga hinder, breda kurvor", "1": "1: Delvis löst underlag, små hinder, breda kurvor", @@ -983,22 +1005,22 @@ "4": "4: löst underlag eller stenblock, farliga hårnålar", "5": "5: Maximal svårighet, blockfält, jordskred", "6": "6: Inte körbar förutom för de allra bästa mountainbikecyklisterna" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Svårighetsgrad enligt IMBA", - "placeholder": "Enkel, medel, svår...", "options": { "0": "Enklast (vita cirkel)", "1": "Enkel (gröna cirkel)", "2": "Medium (blå fyrkant)", "3": "Svår (svart diamant)", "4": "Extremt svårt (dubbel svart diamant)" - } + }, + "placeholder": "Enkel, medel, svår..." }, "mtb/scale/uphill": { "label": "Mountainbike svårighetsgrad uppför", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Genomsnittlig lutning <10%, grus/packad jord, inga hinder", "1": "1: Genomsnittlig lutning <15%, grus/packad jord, få små hinder", @@ -1006,7 +1028,8 @@ "3": "3: Genomsnittlig lutning <25%, varierande underlag, stena/grenar stora som en knytnäve", "4": "4: Genomsnittlig lutning <30%, dåliga förutsättningar, stora stena/grenar", "5": "5: Mycket brant, cykel måste i regel skjutas eller bäras" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Namn", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Enkelriktat", "options": { + "no": "Nej", "undefined": "Förväntas vara Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "oneway_yes": { "label": "Enkelriktat", "options": { + "no": "Nej", "undefined": "Förväntas vara Ja", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Typ", "options": { - "surface": "Yta", - "multi-storey": "Flera våningar", - "underground": "Underjordisk", - "sheds": "Skjul", "carports": "Carportar", "garage_boxes": "Garageboxar", - "lane": "Fickparkering" + "lane": "Fickparkering", + "multi-storey": "Flera våningar", + "sheds": "Skjul", + "surface": "Yta", + "underground": "Underjordisk" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Svårighetsgrad", - "placeholder": "Lätt, Medel, Avancerad...", "options": { - "novice": "Nybörjare (undervisning)", - "easy": "Enkel (grön cirkel)", - "intermediate": "Medel (blå fyrkant)", "advanced": "Avancerad (svart diamant)", + "easy": "Enkel (grön cirkel)", "expert": "Expert (dubbel svart diamant)", + "extreme": "Extrem (klättringsutrustning krävs)", "freeride": "Friåkning (offpist)", - "extreme": "Extrem (klättringsutrustning krävs)" - } + "intermediate": "Medel (blå fyrkant)", + "novice": "Nybörjare (undervisning)" + }, + "placeholder": "Lätt, Medel, Avancerad..." }, "piste/grooming": { "label": "Stil", "options": { - "classic": "Klassisk", - "mogul": "Puckelpist", "backcountry": "Off-pist", + "classic": "Klassisk", "classic+skating": "Klassisk och skating", + "mogul": "Puckelpist", "scooter": "Scooter/Snöskoter", "skating": "Skating" } @@ -1097,14 +1120,14 @@ "label": "Typ", "options": { "downhill": "Utförsåkning", + "hike": "Vandringsled", + "ice_skate": "Skridskoåkning", "nordic": "Längdskidåkning", + "playground": "Lekplats", "skitour": "Turåkning", "sled": "Pulkabacke", - "hike": "Vandringsled", "sleigh": "Slädåkning ", - "ice_skate": "Skridskoåkning", - "snow_park": "Snöpark", - "playground": "Lekplats" + "snow_park": "Snöpark" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Typ" }, + "power_supply": { + "label": "Strömförsörjning" + }, "railway": { "label": "Typ" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Svårighetsgrad", - "placeholder": "Bergsvandring, alpin vandring", "options": { - "hiking": "T1: Vandring", - "mountain_hiking": "T2: Bergsvandring", - "demanding_mountain_hiking": "T3: Krävande bergsvandring", "alpine_hiking": "T4: Alpin vandring", "demanding_alpine_hiking": "T5: Krävande alpin vandring", - "difficult_alpine_hiking": "T6: Svår alpin vandring" - } + "demanding_mountain_hiking": "T3: Krävande bergsvandring", + "difficult_alpine_hiking": "T6: Svår alpin vandring", + "hiking": "T1: Vandring", + "mountain_hiking": "T2: Bergsvandring" + }, + "placeholder": "Bergsvandring, alpin vandring" + }, + "sanitary_dump_station": { + "label": "Latrintömning " }, "seasonal": { "label": "Säsongsöppen" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Kedjebrytare", "options": { + "no": "Nej", "undefined": "Förväntas vara Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "service/bicycle/pump": { "label": "Cykelpump", "options": { + "no": "Nej", "undefined": "Förväntas vara Nej", - "yes": "Ja", - "no": "Nej" + "yes": "Ja" } }, "service_rail": { "label": "Användningsområde ", "options": { - "spur": "Industrispår", - "yard": "Bangård", + "crossover": "Växelförbindelse", "siding": "Sidospår", - "crossover": "Växelförbindelse" + "spur": "Industrispår", + "yard": "Bangård" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Rökning", - "placeholder": "Nej, separat, ja...", "options": { - "no": "Rökning ej tillåtet", - "separated": "I rökområde, ej fysiskt separerat", + "dedicated": "Dedikerat för rökare (t.ex. rökklubb)", "isolated": "I rökområde, fysiskt separerat", + "no": "Rökning ej tillåtet", "outside": "Tillåtet utomhus", - "yes": "Tillåtet överallt", - "dedicated": "Dedikerat för rökare (t.ex. rökklubb)" - } + "separated": "I rökområde, ej fysiskt separerat", + "yes": "Tillåtet överallt" + }, + "placeholder": "Nej, separat, ja..." }, "smoothness": { "label": "Jämnhet", - "placeholder": "Tunna hjul, hjul, terräng...", "options": { + "bad": "Robusta hjul: trekkingcykel, bil, riksha", "excellent": "Tunna rullar: rollerblade, skateboard", "good": "Tunna Hjul: racercykel", + "horrible": "Terräng: tunga terrängfordon", + "impassable": "Oframkomligt / Inga hjulfordon", "intermediate": "Hjul: cykel, rullstol, scooter", - "bad": "Robusta hjul: trekkingcykel, bil, riksha", "very_bad": "Hög frigång: lätta terrängfordon", - "horrible": "Terräng: tunga terrängfordon", - "very_horrible": "Specialiserade för terräng: traktor, fyrhjuling", - "impassable": "Oframkomligt / Inga hjulfordon" - } + "very_horrible": "Specialiserade för terräng: traktor, fyrhjuling" + }, + "placeholder": "Tunna hjul, hjul, terräng..." }, "social_facility_for": { "label": "Människohjälp", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Struktur", - "placeholder": "Okänt", "options": { "bridge": "Bro", - "tunnel": "Tunnel", - "embankment": "Vägbank", "cutting": "Vägsnitt", - "ford": "Vadställe" - } + "embankment": "Vägbank", + "ford": "Vadställe", + "tunnel": "Tunnel" + }, + "placeholder": "Okänt" }, "studio_type": { "label": "Typ" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Hämtmat", - "placeholder": "Ja, nej, enbart hämtmat", "options": { - "yes": "Ja", "no": "Nej", - "only": "Enbart hämtmat" - } + "only": "Enbart hämtmat", + "yes": "Ja" + }, + "placeholder": "Ja, nej, enbart hämtmat" }, "toilets/disposal": { "label": "Omhändertagande", "options": { - "flush": "Spola", - "pitlatrine": "Grop/Latrin", + "bucket": "Behållare", "chemical": "Kemisk", - "bucket": "Behållare" + "flush": "Spola", + "pitlatrine": "Grop/Latrin" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Typ av bruksväg", - "placeholder": "Fast, Mestadels fast, Mjuk ...", "options": { "grade1": "Fast: asfalterad eller kraftigt packad hård yta", "grade2": "Mestadels fast: grus/sten med inslag av mjukt material", "grade3": "Jämn blandning av hårda och mjuka material", "grade4": "Mestadels mjukt: jord/sand/gräs med inslag av hårt material", "grade5": "Mjukt: jord/sand/gräs" - } + }, + "placeholder": "Fast, Mestadels fast, Mjuk ..." }, "trail_visibility": { "label": "Synlighet", - "placeholder": "Utmärkt, bra, dåligt...", "options": { + "bad": "Dåligt: inga markörer, stig ibland osynlig/stiglös", "excellent": "Utmärkt: Tydlig väg eller markörer överallt", "good": "Bra: markörer synliga men ibland svåra att hitta", - "intermediate": "Medel: få markörer, stig mestadels synliga", - "bad": "Dåligt: inga markörer, stig ibland osynlig/stiglös", "horrible": "Hemsk: ofta stiglös, en del orienteringskunskaper krävs", + "intermediate": "Medel: få markörer, stig mestadels synliga", "no": "Ingen: stiglös, utmärkta orienteringskunskaper krävs" - } + }, + "placeholder": "Utmärkt, bra, dåligt..." }, "trees": { "label": "Träd" @@ -1334,6 +1363,9 @@ "water": { "label": "Typ" }, + "water_point": { + "label": "Vattenpåfyllning" + }, "waterway": { "label": "Typ" }, @@ -1475,6 +1507,10 @@ "name": "Station för cykelreparation ", "terms": "Cykelreparation, kedjebrytare, cykelpump, tryckluft, pumpstation, cykel, " }, + "amenity/biergarten": { + "name": "Ölträdgård", + "terms": "ölträdgård, Biergarten, uteservering,ölcafé, utecafé, trädgårdspub" + }, "amenity/boat_rental": { "name": "Båtuthyrning", "terms": "Båtuthyrning, båtlån, båtleasing, lånebåt, hyrbåt" @@ -1671,6 +1707,9 @@ "name": "Restaurang", "terms": "Restaurang, matservering, matställe, servering, restauration, näringsställe, grillbar, bar, krog, värdshus, pub, bodega, brasserie, rotisseri, pizzeria, kafé, cafeteria, sylta" }, + "amenity/sanitary_dump_station": { + "name": "Latrintömning" + }, "amenity/school": { "name": "Skolområde", "terms": "Skolgård, skolområde, Campus, universitetsområde, högskoleområde, universitet, högskola" diff --git a/vendor/assets/iD/iD/locales/ta.json b/vendor/assets/iD/iD/locales/ta.json index 1fd9be7c3..44d8338b4 100644 --- a/vendor/assets/iD/iD/locales/ta.json +++ b/vendor/assets/iD/iD/locales/ta.json @@ -127,24 +127,24 @@ }, "fields": { "access": { - "placeholder": "அறியப்படவில்லை", - "types": { - "horse": "குதிரைகள்" - }, "options": { - "yes": { - "title": "அனுமதிக்கப்படுகிறது" - }, "private": { "title": "தனியார்" + }, + "yes": { + "title": "அனுமதிக்கப்படுகிறது" } + }, + "placeholder": "அறியப்படவில்லை", + "types": { + "horse": "குதிரைகள்" } }, "address": { "label": "முகவரி", "placeholders": { - "street": "தெரு", - "city": "மாநகரம்" + "city": "மாநகரம்", + "street": "தெரு" } }, "aerialway": { diff --git a/vendor/assets/iD/iD/locales/te.json b/vendor/assets/iD/iD/locales/te.json index f4873a5b3..bd1503617 100644 --- a/vendor/assets/iD/iD/locales/te.json +++ b/vendor/assets/iD/iD/locales/te.json @@ -150,7 +150,6 @@ "commit": { "title": "మార్పులను భద్రపరచు", "description_placeholder": "మీ మార్పులకు టూకీ వివరణ", - "message_label": "మార్పుని తెలిపే సందేశం", "upload_explanation": "మీరు ఎక్కించే మార్పులు ఓపెన్‌స్ట్రీట్‌మ్యాప్ డేటాను వాడే పటాలన్నింటిలోనూ కనిపిస్తాయి.", "save": "భద్రపరచు", "cancel": "రద్దుచేయి", @@ -259,22 +258,22 @@ "presets": { "fields": { "access": { - "types": { - "access": "సాధారణం", - "bicycle": "సైకిళ్ళు", - "horse": "గుర్రాలు" - }, "options": { "destination": { "title": "గమ్యం" } + }, + "types": { + "access": "సాధారణం", + "bicycle": "సైకిళ్ళు", + "horse": "గుర్రాలు" } }, "address": { "label": "చిరునామా", "placeholders": { - "street": "వీధి", - "city": "నగరం" + "city": "నగరం", + "street": "వీధి" } }, "aeroway": { diff --git a/vendor/assets/iD/iD/locales/tl.json b/vendor/assets/iD/iD/locales/tl.json index 3e871095b..e3d7c0bf1 100644 --- a/vendor/assets/iD/iD/locales/tl.json +++ b/vendor/assets/iD/iD/locales/tl.json @@ -224,7 +224,6 @@ "commit": { "title": "I-save ang mga binago.", "description_placeholder": "Maikling paglalarawan ng iyong mga ambag o edits", - "message_label": "Mag-commit mensahe", "upload_explanation": "Ang mga pagbabagong na-upload ay makikita sa lahat ng mapang gumagamit ng datos ng OpenStreetMap.", "upload_explanation_with_user": "Ang mga pagbabagong na-upload bilang {user} ay makikita sa lahat ng mapang gumagamit ng datos ng OpenStreetMap.", "save": "I-save", @@ -413,8 +412,8 @@ "address": { "label": "Address", "placeholders": { - "street": "Kalsada", - "city": "Siyudad" + "city": "Siyudad", + "street": "Kalsada" } }, "aerialway": { diff --git a/vendor/assets/iD/iD/locales/tr.json b/vendor/assets/iD/iD/locales/tr.json index feac258b5..5e1a56d01 100644 --- a/vendor/assets/iD/iD/locales/tr.json +++ b/vendor/assets/iD/iD/locales/tr.json @@ -226,7 +226,6 @@ "commit": { "title": "Değişiklikleri kaydet", "description_placeholder": "Katkı sağlayanlar hakkında kısa açıklama", - "message_label": "Mesajı işle", "upload_explanation": "Yüklediğin değişiklikler OpenStreetMap verilerini kullanan bütün haritalarda görülebilecek. ", "upload_explanation_with_user": "{user} olarak yüklediğin değişiklikler OpenStreetMap verilerini kullanan bütün haritalarda görülebilecek. ", "save": "Kaydet", @@ -487,39 +486,39 @@ "fields": { "access": { "label": "Ulaşım", - "placeholder": "Bilinmeyen", - "types": { - "access": "Genel", - "foot": "Yürüyerek", - "motor_vehicle": "Motorlu araçlar", - "bicycle": "Bisikletler", - "horse": "Atlar" - }, "options": { - "yes": { - "title": "Serbest", - "description": "Yasaca girişe izin verilmiş; geçme önceliği" + "designated": { + "description": "Giriş, imlere ya da yerel yasalara göre olurlanmış", + "title": "Ayrılmış" + }, + "destination": { + "description": "Giriş, yalnız varılacak yere ulaşmak için olurlu", + "title": "Hedef" }, "no": { - "title": "Yasak", - "description": "Giriş kamuya açık değildir" + "description": "Giriş kamuya açık değildir", + "title": "Yasak" }, "permissive": { - "title": "İzin veren", - "description": "Sahibi geri çekene kadar giriş açık" + "description": "Sahibi geri çekene kadar giriş açık", + "title": "İzin veren" }, "private": { - "title": "Özel", - "description": "Giriş, sahibinin oluruna bağlı" - }, - "designated": { - "title": "Ayrılmış", - "description": "Giriş, imlere ya da yerel yasalara göre olurlanmış" + "description": "Giriş, sahibinin oluruna bağlı", + "title": "Özel" }, - "destination": { - "title": "Hedef", - "description": "Giriş, yalnız varılacak yere ulaşmak için olurlu" + "yes": { + "description": "Yasaca girişe izin verilmiş; geçme önceliği", + "title": "Serbest" } + }, + "placeholder": "Bilinmeyen", + "types": { + "access": "Genel", + "bicycle": "Bisikletler", + "foot": "Yürüyerek", + "horse": "Atlar", + "motor_vehicle": "Motorlu araçlar" } }, "access_simple": { @@ -532,16 +531,16 @@ "address": { "label": "Adres", "placeholders": { + "city": "Şehir", + "country": "Ülke", + "hamlet": "Küçük köy", "housename": "Ev adı", "housenumber": "123", - "street": "Sokak", - "city": "Şehir", - "postcode": "Posta kodu", "place": "Yer", - "hamlet": "Küçük köy", + "postcode": "Posta kodu", "province": "İl", "state": "Uçbeylik", - "country": "Ülke" + "street": "Sokak" } }, "admin_level": { @@ -553,9 +552,9 @@ "aerialway/access": { "label": "Erişim", "options": { + "both": "İkisi", "entry": "Giriş", - "exit": "Çıkış", - "both": "İkisi" + "exit": "Çıkış" } }, "aerialway/bubble": { @@ -579,9 +578,9 @@ "aerialway/summer/access": { "label": "Erişim (yaz)", "options": { + "both": "İkisi", "entry": "Giriş", - "exit": "Çıkış", - "both": "İkisi" + "exit": "Çıkış" } }, "aeroway": { @@ -702,11 +701,11 @@ "internet_access": { "label": "İnternet Bağlantısı", "options": { - "yes": "Evet", "no": "Hayır", - "wlan": "Wifi", + "terminal": "Terminal", "wired": "Kablolu", - "terminal": "Terminal" + "wlan": "Wifi", + "yes": "Evet" } }, "lamp_type": { @@ -829,11 +828,11 @@ }, "structure": { "label": "Yapı", - "placeholder": "Bilinmeyen", "options": { "bridge": "Köprü", "tunnel": "Tünel" - } + }, + "placeholder": "Bilinmeyen" }, "supervised": { "label": "Gözetimli" diff --git a/vendor/assets/iD/iD/locales/uk.json b/vendor/assets/iD/iD/locales/uk.json index 9f05d6f8b..93ec2cb43 100644 --- a/vendor/assets/iD/iD/locales/uk.json +++ b/vendor/assets/iD/iD/locales/uk.json @@ -45,7 +45,7 @@ "title": "Далі", "description": "Продовжуйте цю лінію.", "not_eligible": "Немає лінії, яку можна продовжити.", - "multiple": "Тут є кліка ліній, які можна продовжити. Для вибору ліні натисніть Shift та клацніть на потрібну лінію.", + "multiple": "Тут є кілька ліній, які можна продовжити. Для вибору ліні натисніть Shift та клацніть на потрібну лінію.", "annotation": { "line": "Лінію подовжено.", "area": "Полігон змінено." @@ -73,7 +73,7 @@ }, "not_closed": "Неможливо перетворити на коло — лінія не замкнена.", "too_large": "Неможливо перетворити на коло, не все що є видно.", - "connected_to_hidden": "Неможливо перетворити на коло, мається з’єднання з прихованим об’єктом" + "connected_to_hidden": "Неможливо перетворити на коло, мається з’єднання з прихованим об’єктом." }, "orthogonalize": { "title": "Випрямити кути", @@ -96,7 +96,7 @@ "key": "S", "annotation": "Лінія випрямлена.", "too_bendy": "Цю лінію не вдалось випрямити, бо вона надто вигнута.", - "connected_to_hidden": "Лінію неможливо випрямити, так як мається з’єднання з прихованим об’єктом." + "connected_to_hidden": "Лінію неможливо випрямити, оскільки мається з’єднання з прихованим об’єктом." }, "delete": { "title": "Вилучити", @@ -110,8 +110,8 @@ "multiple": "Вилучено {n} об’єктів." }, "incomplete_relation": "Цей об’єкт неможливо вилучити, бо він не повністю завантажений.", - "part_of_relation": "Цей елемент неможливо вилучити, томущо він є частиною велікого зв'язку. Його потрібно вилучити спочатку із самого зв'язку.", - "connected_to_hidden": "Об’єкт неможливо вилучити, так як мається з’єднання з прихованим об’єктом." + "part_of_relation": "Цей елемент неможливо вилучити, тому що він є частиною велікого зв’язку. Його потрібно вилучити спочатку із самого зв'язку.", + "connected_to_hidden": "Об’єкт неможливо вилучити, оскільки мається з’єднання з прихованим об’єктом." }, "add_member": { "annotation": "Додано члена зв’язку." @@ -131,17 +131,17 @@ "title": "Від’єднати", "description": "Роз’єднати лінії/полігони.", "key": "D", - "annotation": "Роз’єднано лінії.", + "annotation": "Роз’єднано лінії/полігони.", "not_connected": "Недостатньо ліній/полігонів для роз’єднання.", - "connected_to_hidden": "Об’єкт немжливо від’єднати, так як мається з’єднання з прихованим об’єктом." + "connected_to_hidden": "Об’єкт немжливо від’єднати, оскільки мається з’єднання з прихованим об’єктом." }, "merge": { "title": "Об’єднати", "description": "Об’єднати лінії.", "key": "C", "annotation": "Об’єднати {n} ліній.", - "not_eligible": "Ці об’єкти неможливо злити.", - "not_adjacent": "Ці лінії неможливо злити, бо вони не з’єднані.", + "not_eligible": "Ці об’єкти неможливо об’єднати.", + "not_adjacent": "Ці лінії неможливо об’єднати, бо вони не з’єднані.", "restriction": "Ці лінії не можуть бути об’єднані, принаймні одна з них є членом зв’язку \"{relation}\".", "incomplete_relation": "Ці об’єкти не можуть бути об’єднані, принаймні один з них завантажений не повністю." }, @@ -158,7 +158,7 @@ }, "incomplete_relation": "Цей об’єкт неможливо пересунути, бо він не повністю завантажний.", "too_large": "Неможливо перемістити об’єкт, він не повністю відкритий.", - "connected_to_hidden": "Об’єкт неможливо пересунути, так як мається з’єднання з прихованим об’єктом." + "connected_to_hidden": "Об’єкт неможливо пересунути, оскільки мається з’єднання з прихованим об’єктом." }, "rotate": { "title": "Обернути", @@ -169,7 +169,7 @@ "area": "Полігон обернуто." }, "too_large": "Неможливо обернути об’єкт, він не повністю відкритий.", - "connected_to_hidden": "Об’єкт неможливо обертати, так як мається з’єднання з прихованим об’єктом." + "connected_to_hidden": "Об’єкт неможливо обертати, оскільки мається з’єднання з прихованим об’єктом." }, "reverse": { "title": "Розвернути", @@ -192,14 +192,14 @@ }, "not_eligible": "Неможливо розділити лінію на її початку чи кінці.", "multiple_ways": "Забагато ліній для розділення.", - "connected_to_hidden": "Об’єкт неможливо розділити, так як мається з’єднання з прихованим об’єктом." + "connected_to_hidden": "Об’єкт неможливо розділити, оскільки мається з’єднання з прихованим об’єктом." }, "restriction": { "help": { - "select": "Натисніть для вибору відрізку дороги", - "toggle": "Натисніть для перемикання заборони повороту", - "toggle_on": "Натисніть для додавання заборони \"{restriction}\".", - "toggle_off": "Натисніть для видалення заборони \"{restriction}\"." + "select": "Клацніть для вибору відрізку дороги", + "toggle": "Клацніть для вибору заборони повороту", + "toggle_on": "Клацніть для додавання заборони \"{restriction}\".", + "toggle_off": "Клацніть для видалення заборони \"{restriction}\"." }, "annotation": { "create": "Додано заборону повороту", @@ -208,8 +208,8 @@ } }, "undo": { - "tooltip": "Відмінити: {action}", - "nothing": "Нема чого відміняти." + "tooltip": "Скасувати: {action}", + "nothing": "Нема чого скасовувати." }, "redo": { "tooltip": "Повернути: {action}", @@ -233,13 +233,13 @@ }, "status": { "error": "Неможливо з’єднатись з API.", - "offline": "API оффлайн. Будь ласка, спробуйте внести зміни пізніше.", + "offline": "API в стані оффлайн. Будь ласка, спробуйте внести зміни пізніше.", "readonly": "API доступний тільки для читання. Вам потрібно зачекати, щоб зберегти зміни." }, "commit": { "title": "Зберегти зміни", "description_placeholder": "Короткий опис ваших правок", - "message_label": "Надіслати повідомлення", + "message_label": "Пояснення до набору змін", "upload_explanation": "Зміни, зроблені вами, з’являться на всіх мапах, що використовують дані OpenStreetMap.", "upload_explanation_with_user": "Зміни, зроблені вами під іменем {user}, з’являться на всіх мапах, що використовують дані OpenStreetMap.", "save": "Зберегти", @@ -251,8 +251,28 @@ "created": "Створено" }, "contributors": { - "list": "Змінено: {users}", - "truncated_list": "Змінено {users} та {count} іншими" + "list": "Редагували: {users}", + "truncated_list": "Редагували: {users} та {count} інших" + }, + "infobox": { + "selected": "{n} виділено", + "geometry": "Геометрія", + "closed": "закрито", + "center": "Центр", + "perimeter": "Периметр", + "length": "Довжина", + "area": "Полігон", + "centroid": "Центроїд", + "location": "Місцезнаходження", + "metric": "Метрична", + "imperial": "Імперська" + }, + "geometry": { + "point": "точка", + "vertex": "вершина", + "line": "лінія", + "area": "полігон", + "relation": "зв’язок" }, "geocoder": { "search": "Шукати по всьому світу…", @@ -273,7 +293,7 @@ "new_relation": "Новий зв’язок…", "role": "Роль", "choose": "Виберіть тип об’єкта", - "results": "знайдено {n} об’єктів на запит {search}", + "results": "знайдено {n} об’єктів за запитом {search}", "reference": "Подивитись на OpenStreetMap Wiki", "back_tooltip": "Змінити об’єкт", "remove": "Вилучити", @@ -311,7 +331,7 @@ "data_layers": "Шари даних", "fill_area": "Заливати полігони", "map_features": "Об’єкти на мапі", - "autohidden": "Ці об’єкти були автоматично приховані, щоб незахаращувати мапу на екрані. Ви можете наблизитись щоб редагувати їх." + "autohidden": "Ці об’єкти були автоматично приховані, щоб не захаращувати мапу на екрані. Ви можете наблизитись щоб редагувати їх." }, "feature": { "points": { @@ -416,17 +436,17 @@ } }, "success": { - "edited_osm": "Відредаговано OSM!", - "just_edited": "Ви щойно відредагували мапу OpenStreetMap!", + "edited_osm": "OSM змінено!", + "just_edited": "Ви щойно внесли зміни на мапу OpenStreetMap!", "view_on_osm": "Подивитись в OSM", - "facebook": "Поділитись на Facebook", - "twitter": "Поділитись на Twitter", - "google": "Поділитись на Google+", + "facebook": "Поділитись у Facebook", + "twitter": "Поділитись у Twitter", + "google": "Поділитись у Google+", "help_html": "Ваші зміни повинні з’явитись в «Стандартному» шарі за кілька хвилин. \nЗміни інших шарів та об’єктів можуть відбуватись довше (докладніше англійською).\n" }, "confirm": { "okay": "Готово", - "cancel": "Відмінити" + "cancel": "Скасувати" }, "splash": { "welcome": "Ласкаво просимо до редактора OpenStreetMap — iD", @@ -463,33 +483,33 @@ "gpx": { "local_layer": "Локальний файл GPX", "drag_drop": "Перетягніть файл .gpx на сторінку чи натисніть кнопку праворуч для вибору файлу", - "zoom": "Масштабувати за треком GPX", + "zoom": "Масштабувати до треку GPX", "browse": "Вибрати файл .gpx" }, "mapillary": { "tooltip": "Знімки з вулиць від Mapillary", "title": "Фото-шар (Mapillary)", - "view_on_mapillary": "Подивитись цей знімок на " + "view_on_mapillary": "Переглянути цей знімок на Mapillary" }, "help": { "title": "Довідка", "help": "# Довідка\n\nЦе редактор [OpenStreetMap](http://www.openstreetmap.org/) —\nвільної мапи світу, правити яку може кожен. Ви можете використовувати\nйого для додавання та виправлення даних, створюючи найкращу \nвідкриту мапу світу з вільними, доступними всім, картографічними даними.\n\nЗміни, які ви вносите до цієї мапи, будуть доступні всім\nіншим, хто використовує OpenStreetMap. Для того, щоб вносити\nзміни вам потрібно \n[Ввійти](https://www.openstreetmap.org/login).\n\n[Редактор iD](http://ideditor.com/) — є спільним проектом з [сирцями\nдоступними на GitHub](https://github.com/openstreetmap/iD).\n", - "editing_saving": "# Редагування та збереження\n\nЦей редактор створений переважно для роботи онлайн, і ви зараз\nпрацюєте з ним на веб-сайті.\n\n### Виділення об’єктів\n\nДля виділення об’єктів на мапі, таких як дороги чи пам’ятки, треба\nклацнути по них на мапі. Виділені об’єкти будуть підсвічені, з’явиться\nпанель з подробицями про них та меню із переліком того, що можна\nзробити.\n\nДля виділення кількох об’єктів натисніть 'Shift', або клацніть та потягніть\nмишею по мапі. Будуть виділені всі об’єкти, що попали у прямокутник\nвиділення, це дозволить вам виконувати дії одночасно над кількома\nоб’єктами.\n\n### Збереження правок\n\nПісля того як ви зробили зміни, виправивши дорогу, чи будинок, вони є\nлокальними доки ви не збережете їх на сервері. Не хвилюйтесь, якщо\nви припустились помилки, ви можете відмінити зміни натиснувши на\nкнопку 'Відмінити', а також повернути зміни — натиснувши 'Повернути'\n\nНатисніть 'Зберегти', щоб закінчити групу правок, наприклад, якщо ви\nзакінчили роботу над одним районом міста і бажаєте перейти до іншого.\nВи будете мати можливість переглянути те, що ви зробили, а редактор\nзапропонує вам корисні поради та видасть попередження, якщо ваші\nправки не виглядають вірними.\n\nЯкщо все виглядає добре, ви можете додати коротке пояснення того, що\nви зробили та натиснути кнопку 'Зберегти' ще раз, щоб надіслати зміни\nдо [OpenStreetMap.org](http://www.openstreetmap.org/), де вони стануть\nдоступні для всіх інших користувачів для перегляду та вдосконалення.\n\nЯкщо ви не можете закінчити ваші правки за один раз, ви можете лишити\nвікно з редактором відкритим і повернутись (на тому самому комп’ютері та\nоглядачі) до роботи потім — редактор запропонує вам відновити вашу\nроботу.\n", - "roads": "# Дороги\n\nВи можете створювати, виправляти та вилучати дороги з допомогою\nцього редактора. Дороги можуть бути будь-якого типу: автомагістралі, \nстежки, велодоріжки та багато інших — все що частіше за все має\nперетин між собою, повинне бути нанесено на мапу.\n\n### Виділення\n\nКлацніть по дорозі для того щоб її вибрати. Вона стані підсвіченою\nпо всій довжині, поряд на мапі з’явиться невеличке меню з інструментами,\nа на бічній панелі буде показано додаткову інформацію про дорогу.\n\n### Зміна\n\nДоволі часто вам будуть траплятись дороги, що не співпадають із дорогами\nна супутниковому знімку чи треками GPS. Ви можете виправити їх положення.\nАле з початку вирівняйте положення знімку по треках GPS. \n\nПотім клацніть по дорозі, яку ви маєте намір змінити. Вона стане підсвіченою\nі на ній з’являться контрольні точки, які можна рухати, підлаштовуючи положення\nта форму дороги. Якщо вам потрібно додати нову точку, для підвищення деталізації,\nдодайте її подвійним клацанням на відрізку дороги. \n\nЯкщо дорога повинна з’єднуватись з іншою дорогою, але на мапі лінії не\nз’єднані, підтягніть одну із контрольних точок однієї дорого до іншої, для\nїх з’єднання. Мати з’єднані дороги — дуже важливо для мапи, а особливо\nдля впровадження можливості прокладання маршрутів.\n\nВи також можете обрати інструмент 'Перемістити' або натиснути 'M' для \nпереміщення всієї дороги, повторне клацання зберігає нове положення\nдороги.\n\n### Вилучення\n\nЯкщо дороги накреслені зовсім невірно і це добре видно по супутникових\nзнімках, а, в ідеалі, ви точно знаєте що їх у цьому місці немає — ви можете\nїх вилучити, що призведе до їх вилучення з мапи. Проте будьте уважними,\nвилучення, як і інші виправлення, призведуть до змін на мапі, що доступна\nкожному; також зауважте, що супутникові знімки з часом застарівають, отже\nновозбудована дорога буде на них відсутня. \n\nВи можете вилучити дорогу клацнувши на неї для виділення, потім натиснувши\nна значок із смітником чи натиснувши клавішу 'Delete'.\n\n### Створення\n\nЩо робити — знайшли місце де повинна бути дорога, а її там немає? Оберіть \nінструмент 'Лінія' зверху ліворуч або натисніть клавішу '2' для того, щоб\nрозпочати креслення ліній.\n\nКлацніть на початку дороги на мапі для того, щоб розпочати креслення. Якщо\nдорога відгалужується від існуючої дороги, розпочніть з місця їх з’єднання.\n\nПотім клацайте вздовж дороги так щоб утворився правильний шлях, відповідно\nдо супутникових знімків та/чи треків GPS. Якщо дорога, яку ви креслите, перетинає\nіншу дорогу, з’єднуйте їх клацаючи в точці їх перехрещення. Для закінчення\nкреслення виконайте подвійне клацання мишею чи натисніть 'Enter' на \nклавіатурі.\n", - "gps": "# GPS\n\nДані GPS є найбільш надійним джерелом даних для OpenStreetMap. Редактор\nпідтримує локальні треки – файли `.gpx` на вашому комп’ютері. Ви можете\nотримати GPS треки за допомогою численних застосунків для смартфонів\nтак само, як і з допомогою спеціального GPS-обладнання. \n\nДля того, щоб дізнатись як проводити збір GPS-даних прочитайте\n[Збір інформації за допомогою GPS](http://learnosm.org/en/beginner/using-gps/).\n\nЩоб використати записаний трек для мапінгу, перетягніть GPX-файл з треком на\nмапу в редакторі. Після того, як його буде розпізнано, він буде доданий на мапу\nу вигляді світло-фіолетової лінії. Клацніть на меню 'Дані мапи' праворуч, щоб показати, приховати або масштабуватись до нового шару з GPX-треком.\n\nGPX трек не буде завантажений безпосередньо до OpenStreetMap, кращий спосіб\nйого використання — креслити об’єкти на мапі, використовуючи його як орієнтир\nдля додавання об’єктів; трек також можна \n[завантажити на OpenStreetMap](http://www.openstreetmap.org/trace/create), \nдля використання іншими учасниками.\n", - "imagery": "# Тло\n\nВикористання аерофотознімків є важливим засобом картографування.\nЗнімки, зроблені з літака, супутника, а також отримані з відкритих джерел\nдоступні в редакторі у меню 'Налаштування тла' праворуч.\n\nТипово вибраним шаром з супутниковими знімками є [Bing Maps](http://www.bing.com/maps/),\nале у різних місцях та на різних масштабах будуть доступні й інші джерела.\nДеякі країни, як, наприклад, Сполучені Штати, Франція, Данія,\nмають дуже високоякісні знімки певних територій.\n\nЗображення тла іноді є зміщеним відносно даних мапи через помилки\nпостачальників знімків. Якщо ви помітили, що дороги є зміщеними\nвідносно знімків, не кидайтесь пересувати їх так, щоб вони співпали \nз дорогами на знімку. Спробуйте спочатку підлаштувати положення тла так,\nщоб воно співпадало з даними за допомогою підменю 'Виправити зсув'\nнаприкінці меню 'Налаштування тла'.\n", - "addresses": "# Адреси\n\nАдреси є однією з найважливіших видів інформації на мапі.\n\nХоча адреси часто представляються як частини вулиць, в OpenStreetMap \nвони записані як атрибути будівель і місць вздовж вулиць.\n\nВи можете додавати інформацію з адресою до будівель, що позначені\nполігонами, так само як і до будівель позначених точками. Найкращим\nджерелом інформації про адреси є проведення досліджень на місцевості,\nабо ваші особисті знання про об’єкти, що знаходяться поруч з вами,\nадже як і вся інша інформація в проекті, вона не повинна бути скопійована\nз комерційних/закритих джерел. Копіювання, наприклад з Google Maps,\nє суворо забороненим.\n", - "inspector": "# Використання Інспектора\n\nІнспектор — частина інтерфейсу ліворуч, що дозволяє змінювати \nдеталі виділеного об’єкта.\n\n### Вибір типу об’єкта\n\nПісля додавання точки, лінії чи полігону, ви можете вибрати\nтип об’єкта. Наприклад, це може бути автомагістраль, вулиця,\nсупермаркет або кафе. Інспектор запропонує вам обрати серед\nнайпопулярніших типів, а також ви можете пошукати потрібний\nтип об’єкта, увівши його назву у пошуковий рядок.\n\nНатисніть на кнопку \"i\" праворуч від типу, щоб дізнатися більше\nпро нього. Натисніть на тип, щоб застосувати його до об’єкта.\n\n### Використання форм та редагування теґів\n\nПісля вибору типу нового об’єкта чи виділення вже існуючого об’єкта\nпевного типу інспектор покаже поля властивостей, наприклад, \nназву та адресу.\n\nНижче ви побачите рядок значків для додавання інших деталей:\nпосилання на [Wikipedia](http://www.wikipedia.org/), вказання на можливість\nпересування інвалідним візком, та інші.\n\nЩоб додати до об’єкта довільні теґи, потрібно розкрити пункт 'Всі теґи' \nвнизу інспектора. \n[Taginfo](http://taginfo.openstreetmap.org/) є хорошим джерелом інформації про поширені\nкомбінації застосування теґів.\n\nЗміни, які ви здійснюєте у інспекторі, автоматично застосовуються до мапи.\nВи можете скасувати їх, натиснувши кнопку 'Відмінити'.\n", + "editing_saving": "# Редагування та збереження\n\nЦей редактор створений переважно для роботи онлайн, і ви зараз\nпрацюєте з ним на веб-сайті.\n\n### Виділення об’єктів\n\nДля виділення об’єктів на мапі, таких як дороги чи пам’ятки, треба\nклацнути по них на мапі. Виділені об’єкти будуть підсвічені, з’явиться\nпанель з подробицями про них та меню із переліком того, що можна\nзробити.\n\nДля виділення кількох об’єктів натисніть 'Shift', або клацніть та потягніть\nмишею по мапі. Будуть виділені всі об’єкти, що потрапили у прямокутник\nвиділення, це дозволить вам виконувати дії одночасно над кількома\nоб’єктами.\n\n### Збереження правок\n\nПісля того як ви зробили зміни, виправивши дорогу, чи будинок, вони є\nлокальними доки ви не збережете їх на сервері. Не хвилюйтесь, якщо\nви припустились помилки, ви можете скасувати зміни натиснувши на\nкнопку 'Скасувати', а також повернути зміни — натиснувши 'Повернути'\n\nНатисніть 'Зберегти', щоб закінчити групу правок, наприклад, якщо ви\nзакінчили роботу над одним районом міста і бажаєте перейти до іншого.\nВи будете мати можливість переглянути те, що ви зробили, а редактор\nзапропонує вам корисні поради та видасть попередження, якщо ваші\nправки не виглядають правильними.\n\nЯкщо все виглядає добре, ви можете додати коротке пояснення того, що\nви зробили та натиснути кнопку 'Зберегти' ще раз, щоб надіслати зміни\nдо [OpenStreetMap.org](http://www.openstreetmap.org/), де вони стануть\nдоступні для всіх інших користувачів для перегляду та вдосконалення.\n\nЯкщо ви не можете закінчити ваші правки за один раз, ви можете лишити\nвікно з редактором відкритим і повернутись (на тому самому комп’ютері та\nоглядачі) до роботи потім — редактор запропонує вам відновити вашу\nроботу.\n", + "roads": "# Дороги\n\nВи можете створювати, виправляти та вилучати дороги з допомогою\nцього редактора. Дороги можуть бути будь-якого типу: автомагістралі, \nстежки, велодоріжки та багато інших — все що частіше за все має\nперетин між собою, повинне бути нанесено на мапу.\n\n### Виділення\n\nКлацніть по дорозі для того щоб її вибрати. Вона стані підсвіченою\nпо всій довжині, поряд на мапі з’явиться невеличке меню з інструментами,\nа на бічній панелі буде показано додаткову інформацію про дорогу.\n\n### Зміна\n\nДоволі часто вам будуть траплятись дороги, що не збігаються із дорогами\nна супутниковому знімку чи треками GPS. Ви можете виправити їхнє положення.\nАле спочатку вирівняйте положення знімку за треками GPS. \n\nПотім клацніть по дорозі, яку ви маєте намір змінити. Вона стане підсвіченою\nі на ній з’являться контрольні точки, які можна рухати, підлаштовуючи положення\nта форму дороги. Якщо вам потрібно додати нову точку, для підвищення деталізації,\nдодайте її подвійним клацанням на відрізку дороги. \n\nЯкщо дорога повинна з’єднуватись з іншою дорогою, але на мапі лінії не\nз’єднані, підтягніть одну із контрольних точок однієї дорого до іншої, для\nїх з’єднання. Мати з’єднані дороги — дуже важливо для мапи, а особливо\nдля впровадження можливості прокладання маршрутів.\n\nВи також можете обрати інструмент 'Перемістити' або натиснути 'M' для \nпереміщення всієї дороги, повторне клацання зберігає нове положення\nдороги.\n\n### Вилучення\n\nЯкщо дороги накреслені зовсім неправильно і це добре видно на супутникових\nзнімках, а, в ідеалі, ви точно знаєте що їх у цьому місці немає — ви можете\nїх вилучити, що призведе до їх вилучення з мапи. Проте будьте уважними,\nвилучення, як і інші виправлення, призведуть до змін на мапі, що доступна\nкожному; також зауважте, що супутникові знімки з часом застарівають, отже\nновозбудована дорога буде на них відсутня. \n\nВи можете вилучити дорогу клацнувши на неї для виділення, потім натиснувши\nна значок із смітником чи натиснувши клавішу 'Delete'.\n\n### Створення\n\nЩо робити — знайшли місце де повинна бути дорога, а її там немає? Оберіть \nінструмент 'Лінія' зверху ліворуч або натисніть клавішу '2' для того, щоб\nрозпочати креслення ліній.\n\nКлацніть на початку дороги на мапі для того, щоб розпочати креслення. Якщо\nдорога відгалужується від наявної дороги, розпочніть з місця їх з’єднання.\n\nПотім клацайте вздовж дороги так щоб утворився правильний шлях, відповідно\nдо супутникових знімків та/чи треків GPS. Якщо дорога, яку ви креслите, перетинає\nіншу дорогу, з’єднуйте їх клацаючи в точці їх перехрещення. Для закінчення\nкреслення виконайте подвійне клацання мишею чи натисніть 'Enter' на \nклавіатурі.\n", + "gps": "# GPS\n\nДані GPS є найнадійнішим джерелом даних для OpenStreetMap. Редактор\nпідтримує локальні треки – файли `.gpx` на вашому комп’ютері. Ви можете\nотримати GPS треки за допомогою численних застосунків для смартфонів\nтак само, як і з допомогою спеціального GPS-обладнання. \n\nДля того, щоб дізнатись як проводити збір GPS-даних прочитайте\n[Збір інформації за допомогою GPS](http://learnosm.org/en/beginner/using-gps/).\n\nЩоб використати записаний трек для мапінгу, перетягніть GPX-файл з треком на\nмапу в редакторі. Після того, як його буде розпізнано, він буде доданий на мапу\nу вигляді світло-фіолетової лінії. Клацніть на меню 'Дані мапи' праворуч, щоб показати, приховати або масштабуватись до нового шару з GPX-треком.\n\nGPX трек не буде завантажений безпосередньо до OpenStreetMap, кращий спосіб\nйого використання — креслити об’єкти на мапі, використовуючи його як орієнтир\nдля додавання об’єктів; трек також можна \n[завантажити на OpenStreetMap](http://www.openstreetmap.org/trace/create), \nдля використання іншими учасниками.\n", + "imagery": "# Тло\n\nВикористання аерофотознімків є важливим засобом картографування.\nЗнімки, зроблені з літака, супутника, а також отримані з відкритих джерел\nдоступні в редакторі у меню 'Налаштування тла' праворуч.\n\nТипово вибраним шаром з супутниковими знімками є [Bing Maps](http://www.bing.com/maps/),\nале у різних місцях та на різних масштабах будуть доступні й інші джерела.\nДеякі країни, як, наприклад, Сполучені Штати, Франція, Данія,\nмають дуже високоякісні знімки певних територій.\n\nЗображення тла іноді є зміщеним відносно даних мапи через помилки\nпостачальників знімків. Якщо ви помітили, що дороги є зміщеними\nвідносно знімків, не кидайтесь пересувати їх так, щоб вони збіглися \nз дорогами на знімку. Спробуйте спочатку підлаштувати положення тла так,\nщоб воно збігалося з даними за допомогою підменю 'Виправити зсув'\nнаприкінці меню 'Налаштування тла'.\n", + "addresses": "# Адреси\n\nАдреси є однією з найважливіших видів інформації на мапі.\n\nХоча адреси часто представляються як частини вулиць, в OpenStreetMap \nвони записані як атрибути будівель і місць вздовж вулиць.\n\nВи можете додавати інформацію з адресою до будівель, що позначені\nполігонами, так само як і до будівель позначених точками. Найкращим\nджерелом інформації про адреси є проведення досліджень на місцевості,\nабо ваші особисті знання про об’єкти, що перебувають поруч з вами,\nадже як і вся інша інформація в проекті, вона не повинна бути скопійована\nз комерційних/закритих джерел. Копіювання, наприклад з Google Maps,\nє суворо забороненим.\n", + "inspector": "# Використання Інспектора\n\nІнспектор — частина інтерфейсу ліворуч, що дозволяє змінювати \nдеталі виділеного об’єкта.\n\n### Вибір типу об’єкта\n\nПісля додавання точки, лінії чи полігону, ви можете вибрати\nтип об’єкта. Наприклад, це може бути автомагістраль, вулиця,\nсупермаркет або кафе. Інспектор запропонує вам обрати серед\nнайпопулярніших типів, а також ви можете пошукати потрібний\nтип об’єкта, увівши його назву у пошуковий рядок.\n\nНатисніть на кнопку \"i\" праворуч від типу, щоб дізнатися більше\nпро нього. Натисніть на тип, щоб застосувати його до об’єкта.\n\n### Використання форм та редагування теґів\n\nПісля вибору типу нового об’єкта чи виділення вже наявного об’єкта\nпевного типу інспектор покаже поля властивостей, наприклад, \nназву та адресу.\n\nНижче ви побачите рядок значків для додавання інших деталей:\nпосилання на [Wikipedia](http://www.wikipedia.org/), вказання на можливість\nпересування інвалідним візком, та інші.\n\nЩоб додати до об’єкта довільні теґи, потрібно розкрити пункт 'Всі теґи' \nвнизу інспектора. \n[Taginfo](http://taginfo.openstreetmap.org/) є хорошим джерелом інформації про поширені\nкомбінації застосування теґів.\n\nЗміни, які ви здійснюєте у інспекторі, автоматично застосовуються до мапи.\nВи можете скасувати їх, натиснувши кнопку 'Скасувати'.\n", "buildings": "# Будівлі\n\nOpenStreetMap — є найбільшою в світі базою даних будівель. Ви можете\nпримати участь у її створенні та покращенні.\n\n### Виділення\n\nДля того, щоб виділити будівлю, потрібно клацнути на її контурі. Вона\nстане підсвіченою і поруч з’явиться невеличке меню з інструментами, а\nна боковій панелі — докладна інформація про будівлю.\n\n### Змінення\n\nІноді будівлі неточно розміщенні або мають неправильні теґи.\n\nДля того, щоб пересунути будівлю, виділіть її, клацніть на інструмент\n'Переміщення'. Рухайте мишею, щоб пересунути будівлю на нове місце,\nпісля чого клацніть мишею ще раз.\n\nДля того щоб надати будівлі певної форми, перетягуйте точки її контуру\nдо досягнення бажаного результату.\n\n\n### Створення\n\nОдне із питань є в тому, що OpenStreetMap підтримує обидва варіанти \nбудівель: у вигляді полігонів та точок. Основне правило полягає в тому,\nщо _наносити будівлі потрібно у вигляді полігонів, якщо це можливо_, а\nкомпанії, помешкання, зручності та інші речі, які розташовані в будинках —\nточками в межах полігону будівлі.\n\nДля того, щоб розпочати креслення будівлі, оберіть інструмент 'Полігон'\nзверху ліворуч, для закінчення креслення натисніть або 'Return' на \nклавіатурі чи клацнувши на першій точці для замкнення полігону.\n\n### Вилучення\n\nЯкщо будівля є зовсім неправильною — її немає на супутниковому знімку\nта, в ідеалі, це підтверджено дослідженнями на місцевості — ви можете\nїї вилучити, що призведе до її зникнення з мапи. Будьте обережні, \nвилучаючи об’єкти, ці дії, так само як і інші зміни вони будуть видимі\nвсім іншим; до того ж супутникові знімки можуть бути застарілими, отже\nновозбудовані будівлі будуть на них відсутні.\n\nДля того, щоб вилучити будівлі, виділіть її, потім натисніть на значок із\nзображенням смітника чи натисніть клавішу 'Delete'.\n", - "relations": "# Зв’язки\n\nЗв’язки є певним типом об’єктів в OpenStreetMap, які складаються з інших\nоб’єктів. Наприклад, двома найпоширенішими типами зв’язків є *маршрути*,\nдо складу яких входять частини доріг, по яких проходить певна автомагістраль,\nта *мультиполігони*, які об’єднують кілька різних ліній для утворення об’єкта\nскладної форми (наприклад, такий що складається із кількох частин, або\nмає дірку, як бублик).\n\nОб’єкти в зв’язку називаються *членами*. На боковій панелі ви можете\nбачити членом якого зв’язку є об’єкт, та клацнувши на зв’язок, маєте\nможливість виділити його. Коли зв’язок виділено, ви можете побачити всіх\nйого членів на боковій панелі, зв’язок також буде підсвічений на мапі.\n\nУ більшості випадків iD піклується про автоматичну обробку зв’язків\nпід час редагування. Головне, що потрібно запам’ятати, так це те, якщо\nви вилучите лінію, для того, щоб її нанести точніше, вам треба переконатись\nв тому, що нова лінія буде включена до складу того ж зв’язку, що й \nоригінальна.\n\n## Редагування зв’язків\n\nТут ви можете ознайомитись із основами редагування зв’язків.\n\nДля того, щоб додати об’єкт до зв’язку, натисніть на кнопку «+» в розділі\n«Всі зв’язки» на боковій панелі та оберіть тип та назву зв’язку.\n\nЩоб створити новий зв’язок, виділіть об’єкт, який повинен входити до його\nскладу, натисніть «+» в розділі «Всі зв’язки» та оберіть «Новий зв’язок…».\n\nДля вилучення об’єкта зі зв’язку — виділіть об’єкт та натисніть на значок\nсмітника поруч із зв’язком, з якого ви бажаєте вилучити об’єкт.\n\nВи можете створити мультиполігон із дірками інструментом «Об’єднати». Накресліть\nдва полігони (зовнішній та внутрішній), виділіть їх утримуючи натиснутим Shift,\nпотім натисніть на клавішу «Об’єднати» (+).\n" + "relations": "# Зв’язки\n\nЗв’язки є певним типом об’єктів в OpenStreetMap, які складаються з інших\nоб’єктів. Наприклад, двома найпоширенішими типами зв’язків є *маршрути*,\nдо складу яких входять частини доріг, по яких проходить певна автомагістраль,\nта *мультиполігони*, які об’єднують кілька різних ліній для утворення об’єкта\nскладної форми (наприклад, такий що складається із кількох частин, або\nмає дірку, як бублик).\n\nОб’єкти в зв’язку називаються *членами*. На боковій панелі ви можете\nбачити членом якого зв’язку є об’єкт, та клацнувши на зв’язок, маєте\nможливість виділити його. Коли зв’язок виділено, ви можете побачити всіх\nйого членів на боковій панелі, зв’язок також буде підсвічений на мапі.\n\nЗдебільшого iD піклується про автоматичну обробку зв’язків\nпід час редагування. Головне, що потрібно запам’ятати, так це те, якщо\nви вилучите лінію, для того, щоб її нанести точніше, вам треба переконатись\nв тому, що нова лінія буде включена до складу того ж зв’язку, що й \nоригінальна.\n\n## Редагування зв’язків\n\nТут ви можете ознайомитись із основами редагування зв’язків.\n\nДля того, щоб додати об’єкт до зв’язку, натисніть на кнопку «+» в розділі\n«Всі зв’язки» на боковій панелі та оберіть тип та назву зв’язку.\n\nЩоб створити новий зв’язок, виділіть об’єкт, який повинен входити до його\nскладу, натисніть «+» в розділі «Всі зв’язки» та оберіть «Новий зв’язок…».\n\nДля вилучення об’єкта зі зв’язку — виділіть об’єкт та натисніть на значок\nсмітника поруч із зв’язком, з якого ви бажаєте вилучити об’єкт.\n\nВи можете створити мультиполігон із дірками інструментом «Об’єднати». Накресліть\nдва полігони (зовнішній та внутрішній), виділіть їх, утримуючи натиснутим Shift,\nпотім натисніть на клавішу «Об’єднати» (+).\n" }, "intro": { "navigation": { "title": "Пересування", "drag": "На основній області редагування мапи показуються дані OpenStreetMap над зображенням тла. Ви можете рухатись мапою перетягуючи її так само, як і на будь якій іншій веб-мапі. **Потягніть мапу!**", - "select": "Об’єкти мапи представлені трьома способами: точками, лініями та полігонами. Для того щоб їх виділити треба клацнути по них. **Клацніть на точку для її виділення.**", + "select": "Об’єкти мапи представлені трьома способами: точками, лініями та полігонами. Для того щоб їх виділити треба клацнути на них. **Клацніть на точку для її виділення.**", "header": "В заголовку показується тип об’єкта.", - "pane": "Коли об’єкт мапи виділено, з’являється редактор його властивостей. В заголовку буде показаний тип об’єкта, а на головній панелі — атрибути об’єкта, такі як його назва та адреса. **Закрийте редактор об’єктів натиснувши на кнопку вгорі праворуч.**" + "pane": "Коли об’єкт мапи виділено, з’являється редактор його властивостей. В заголовку буде показаний тип об’єкта, а на головній панелі — атрибути об’єкта, як от його назва та адреса. **Закрийте редактор об’єктів натиснувши на кнопку вгорі праворуч.**" }, "points": { "title": "Точки", @@ -499,14 +519,14 @@ "choose": "**Виберіть Кафе зі списку.**", "describe": "Тепер наша точка позначена, як кафе. Використовуючи редактор об’єктів ви можете додати більше інформації про об’єкт. **Додайте назву**", "close": "Редактор об’єктів можна закрити клацнувши на кнопку вгорі праворуч. **Закрийте редактор об’єктів**", - "reselect": "Часто точки вже існують, але мають помилки чи не повну інформацію. Ми можемо правити вже існуючі точки. **Виділіть щойно створену точку.**", + "reselect": "Часто точки вже існують, але мають помилки чи не повну інформацію. Ми можемо правити вже наявні точки. **Виділіть щойно створену точку.**", "fixname": "**Змініть її назву та закрите редактор об’єктів.**", "reselect_delete": "Всі об’єкти на мапі можуть бути вилучені. **Виберіть щойно створену точку.**", "delete": "Меню навколо точки містить дії, які можна застосовувати до неї, включаючи вилучення. **Вилучіть точку.**" }, "areas": { "title": "Полігони", - "add": "Полігони використовуються, щоб показати межі об’єктів, наприклад: озер, будинків території житлової забудови. Їх також використовують для більш детального нанесення на мапу об’єктів, які зазвичай позначаються точками. **Натисніть на кнопку Полігон, щоб додати його до мапи.**", + "add": "Полігони використовуються, щоб показати межі об’єктів, наприклад: озер, будинків території житлової забудови. Їх також використовують для детальнішого нанесення на мапу об’єктів, які зазвичай позначаються точками. **Натисніть на кнопку Полігон, щоб додати його до мапи.**", "corner": "Полігони кресляться додаванням точок на межах об’єкта. **Поставте першу точку на куті ігрового майданчика.**", "place": "Окресліть територію, додаючи точки. Закінчіть креслення, клацнувши на першу точку. **Накресліть полігон для ігрового майданчика.**", "search": "**Знайдіть '{name}'.**", @@ -520,14 +540,14 @@ "intersect": "Клацніть, щоб додати ще кілька точок до лінії. Ви можете перетягувати мапу під час креслення у разі потреби. Дороги, та багато ліній інших типів є частиною великих мереж. Тому дуже важливо, щоб вони були правильно з’єднані одна з одною для того, щоб можливо було прокласти по них маршрут. **Клацніть на Flower Street, для того, щоб створити перехрещення, що з’єднує дві лінії.**", "finish": "Закінчити креслення лінії можна клацнувши на її останню точку знов. **Закінчіть креслення дороги.**", "road": "**Виберіть Дороги зі списку**", - "residential": "Існує багато різних типів доріг, найбільш уживаним є Вулиця. **Виберіть Вулицю** ", + "residential": "Існує багато різних типів доріг, найуживанішим є Вулиця. **Виберіть Вулицю** ", "describe": "**Додайте назву дорозі та закрите редактор об’єктів.**", "restart": "Дорога повинна з’єднуватись з Flower Street", "wrong_preset": "Ви не не обрали тип дороги «Дорога місцевого значення». **Спробуйте ще раз**" }, "startediting": { "title": "Розпочати редагування", - "help": "Більш докладна документація та покрокове керівництво знаходиться тут.", + "help": "Докладніша документація та покрокове керівництво міститься тут.", "save": "Не забувайте регулярно зберігати свої зміни!", "start": "Розпочати!" } @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Доступ", - "placeholder": "Невідомо", - "types": { - "access": "Загальний", - "foot": "Пішки", - "motor_vehicle": "Автівкам", - "bicycle": "Велосипедам", - "horse": "Коням" - }, "options": { - "yes": { - "title": "Дозволений", - "description": "Доступ дозволений законодавчо; право проїзду" + "designated": { + "description": "Доступ дозволений відповідними знаками чи на законодавчому рівні", + "title": "Зазначений" + }, + "destination": { + "description": "Доступ дозволений тільки для того, щоб дістатись місця призначення", + "title": "До місця призначення" }, "no": { - "title": "Заборонений", - "description": "Доступ не дозволений для широкого загалу" + "description": "Доступ не дозволений для широкого загалу", + "title": "Заборонений" }, "permissive": { - "title": "З дозволу", - "description": "Доступ дозволений, доки власник не вирішить інакше" + "description": "Доступ дозволений, доки власник не вирішить інакше", + "title": "З дозволу" }, "private": { - "title": "Приватний", - "description": "Доступ дозволений лише за персональним дозволом власника" + "description": "Доступ дозволений лише за персональним дозволом власника", + "title": "Приватний" }, - "designated": { - "title": "Зазначений", - "description": "Доступ дозволений відповідними знаками чи на законодавчому рівні" - }, - "destination": { - "title": "До місця призначення", - "description": "Доступ дозволений тільки для того, щоб дістатись місця призначення" + "yes": { + "description": "Доступ дозволений законодавчо; право проїзду", + "title": "Дозволений" } + }, + "placeholder": "Невідомо", + "types": { + "access": "Загальний", + "bicycle": "Велосипедам", + "foot": "Пішки", + "horse": "Коням", + "motor_vehicle": "Автівкам" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Адреса", "placeholders": { - "housename": "Ім’я будинку", - "housenumber": "123", - "street": "Вулиця", "city": "Місто", - "postcode": "Поштовий індекс", - "place": "Місцевість", - "hamlet": "Хутір", - "suburb": "Передмістя", - "subdistrict": "Підрайон", + "country": "Країна", "district": "Район", + "hamlet": "Хутір", + "housename": "Назва будинку", + "housenumber": "123", + "place": "Місцевість", + "postcode": "Поштовий індекс", "province": "Провінція", "state": "Штат", - "country": "Країна" + "street": "Вулиця", + "subdistrict": "Підрайон", + "suburb": "Передмістя" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Доступ", "options": { + "both": "Вхід/Вихід", "entry": "Вхід", - "exit": "Вихід", - "both": "Вхід/Вихід" + "exit": "Вихід" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Доступ влітку", "options": { + "both": "Вхід/Вихід", "entry": "Вхід", - "exit": "Вихід", - "both": "Вхід/Вихід" + "exit": "Вихід" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Напрямок", "options": { - "N": "Північ", "E": "Схід", - "S": "Південь", - "W": "Захід", - "NE": "Північний схід", - "SE": "Південний схід", - "SW": "Південний захід", - "NW": "Північний захід", - "NNE": "Північно-північний схід", "ENE": "Східно-північний схід", "ESE": "Східно-південний схід", + "N": "Північ", + "NE": "Північний схід", + "NNE": "Північно-північний схід", + "NNW": "Північно-північний захід", + "NW": "Північний захід", + "S": "Південь", + "SE": "Південний схід", "SSE": "Південно-південний схід", "SSW": "Південно-південний захід", - "WSW": "Західно-південний захід", + "SW": "Південний захід", + "W": "Захід", "WNW": "Західно-північний захід", - "NNW": "Північно-північний захід" + "WSW": "Західно-південний захід" } }, "clock_direction": { "label": "Напрямок", "options": { - "clockwise": "За годинниковою стрілкою", - "anticlockwise": "Проти годинникової стрілки" + "anticlockwise": "Проти годинникової стрілки", + "clockwise": "За годинниковою стрілкою" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Тип" }, + "content": { + "label": "Вміст" + }, "country": { "label": "Країна" }, @@ -780,16 +803,16 @@ }, "electrified": { "label": "Електрифікація", - "placeholder": "Контактна лінія, електрифіковані рейки…", "options": { "contact_line": "Контактна лінія", + "no": "Ні", "rail": "Електрифіковані рейки", - "yes": "Так (невизначено)", - "no": "Ні" - } + "yes": "Так (невизначено)" + }, + "placeholder": "Контактна лінія, електрифіковані рейки…" }, "elevation": { - "label": "Висота" + "label": "Висота над р.м." }, "emergency": { "label": "Аварійні служби" @@ -798,7 +821,7 @@ "label": "Тип" }, "except": { - "label": "Вийнятки" + "label": "Винятки" }, "fax": { "label": "Факс", @@ -810,10 +833,10 @@ "fire_hydrant/type": { "label": "Тип", "options": { - "pillar": "Надземний", + "pillar": "Колонка/Надземний", + "pond": "Ставок", "underground": "Підземний", - "wall": "Настінний", - "pond": "Ставок" + "wall": "Настінний" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Стать", - "placeholder": "Невідомо", "options": { - "male": "Чоловіча", "female": "Жіноча", + "male": "Чоловіча", "unisex": "Унісекс" - } + }, + "placeholder": "Невідомо" }, "generator/method": { "label": "Метод" @@ -875,7 +898,7 @@ "placeholder": "Номер лунки (1-18)" }, "handicap": { - "label": "Перешкода", + "label": "Гандікап", "placeholder": "1-18" }, "highway": { @@ -900,8 +923,8 @@ "incline_steps": { "label": "Нахил", "options": { - "up": "Вгору", - "down": "Вниз" + "down": "Вниз", + "up": "Вгору" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Доступ до Інтеренету", "options": { - "yes": "Так", "no": "Ні", - "wlan": "Wifi", + "terminal": "Термінал", "wired": "Дротовий", - "terminal": "Термінал" + "wlan": "Wifi", + "yes": "Так" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Сезонність", "options": { - "evergreen": "Вічнозелений", "deciduous": "Листяний", - "semi_evergreen": "Напів-вичнозелений", + "evergreen": "Вічнозелений", + "mixed": "Змішаний", "semi_deciduous": "Напів-лістяний", - "mixed": "Змішаний" + "semi_evergreen": "Напів-вічнозелений" } }, "leaf_type": { - "label": "Тип лісття", + "label": "Тип лисття", "options": { "broadleaved": "Широколисті", - "needleleaved": "Хвоя", + "leafless": "Без лисття", "mixed": "Змішана", - "leafless": "Без лисття" + "needleleaved": "Хвоя" } }, "leisure": { @@ -974,39 +997,39 @@ }, "mtb/scale": { "label": "Рівень складності для гірських велосипедів", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Твердій гравій/утрамбований ґрунт, перешкод немає, плавні повороти", "1": "1: Деінде пухкі ділянки, невеликі перешкоди, плавні повороти", "2": "2: Багато пухких ділянок, великі перешкоди, легкі шпильки", - "3": "3: Слизькі поверхні, великі перешкоди, жорсткі шпильки", + "3": "3: Слизькі поверхні, великі перешкоди, круті шпильки", "4": "4: Відсутність твердих ділянок чи валуни, небезпечні шпильки", "5": "5: Максимальна складність, поля валунів, зсуви", "6": "6: Не придатне для проїзду, крім найкращих велосипедистів" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "Складність маршруту IMBA", - "placeholder": "Легко, Середньо, Важко…", "options": { "0": "Найпростіший (біле коло)", "1": "Простий (зелене коло)", "2": "Середній (синій квадрат)", "3": "Складний (чорний ромб)", "4": "Надзвичайно складний (подвійний чорний ромб)" - } + }, + "placeholder": "Легко, Середньо, Важко…" }, "mtb/scale/uphill": { "label": "Складність підйому на гору на велосипеді", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: Нахил <10% гравій/втрамбований ґрунт, без перешкод", "1": "1: Нахил <15%, гравій/втрамбований ґрунт, кілька невеликих перешкод", "2": "2: Нахил <20%, стійка поверхня, невеликі камені/корені", "3": "3: Нахил <25%, нестійка поверхня, невеликі камені/гілки", "4": "4: Нахил <30%, поганий стан поверхні, великі камені/гілки", - "5": "5: Нахил >30%, велоспед треба, в основному, або штовхати або нести" - } + "5": "5: Нахил >30%, велоспед треба, в основному, щоб його штовхати або нести" + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "Назва", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Односторонній рух", "options": { + "no": "Ні", "undefined": "Передбачається, Ні", - "yes": "Так", - "no": "Ні" + "yes": "Так" } }, "oneway_yes": { "label": "Односторонній рух", "options": { + "no": "Ні", "undefined": "Передбачається, Так", - "yes": "Так", - "no": "Ні" + "yes": "Так" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Тип", "options": { - "surface": "Покриття", - "multi-storey": "Багаторівнева", - "underground": "Підземна", - "sheds": "Гаражі", "carports": "Навіси", "garage_boxes": "Гаражі", - "lane": "Смуга вздовж дороги" + "lane": "Смуга вздовж дороги", + "multi-storey": "Багаторівнева", + "sheds": "Навіси", + "surface": "Покриття", + "underground": "Підземна" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Складність", - "placeholder": "Легкий, Середній, Складний…", "options": { - "novice": "Для новачків (навчальний)", - "easy": "Проста (зелене коло)", - "intermediate": "Середня (синій квадрат)", "advanced": "Складна (чорний ромб)", + "easy": "Проста (зелене коло)", "expert": "Надзвичайно складна (подвійний чорний ромб)", + "extreme": "Екстремальний (потрібне спорядження для скелелазів)", "freeride": "Фрірайд (без траси)", - "extreme": "Екстремальний (потрібне спорядження для скелелазів)" - } + "intermediate": "Середня (синій квадрат)", + "novice": "Для новачків (навчальний)" + }, + "placeholder": "Легкий, Середній, Складний…" }, "piste/grooming": { "label": "Підготовка траси", "options": { - "classic": "Класична", - "mogul": "Могул", "backcountry": "Беккантрі", + "classic": "Класична", "classic+skating": "Класична та Ковзанковий хід", + "mogul": "Могул", "scooter": "Скутер/Снігохід", "skating": "Ковзанковий хід" } @@ -1097,14 +1120,14 @@ "label": "Тип", "options": { "downhill": "Гірськолижна", + "hike": "Пішки", + "ice_skate": "Ковзанка", "nordic": "Лижня", + "playground": "Ігровий майданчик", "skitour": "Лижний курорт", "sled": "Санчата", - "hike": "Пішки", "sleigh": "Сані", - "ice_skate": "Ковзанка", - "snow_park": "Зимовий парк розваг", - "playground": "Ігровий майданчик" + "snow_park": "Зимовий парк розваг" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Тип" }, + "power_supply": { + "label": "Розетка" + }, "railway": { "label": "Тип" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Складність туристичного маршруту", - "placeholder": "Гірський туризм, Альпінізм…", "options": { - "hiking": "T1: Піший туризм", - "mountain_hiking": "T2: Гірський туризм", - "demanding_mountain_hiking": "T3: Гірський туризм з підйомом на гору", "alpine_hiking": "T4: Альпійський туризм", "demanding_alpine_hiking": "T5: Альпійський туризм з підйомом на гору", - "difficult_alpine_hiking": "T6: Складний альпінізм" - } + "demanding_mountain_hiking": "T3: Гірський туризм з підйомом на гору", + "difficult_alpine_hiking": "T6: Складний альпінізм", + "hiking": "T1: Піший туризм", + "mountain_hiking": "T2: Гірський туризм" + }, + "placeholder": "Гірський туризм, Альпінізм…" + }, + "sanitary_dump_station": { + "label": "Злив каналізаційних відходів" }, "seasonal": { "label": "Сезонний" @@ -1173,30 +1202,30 @@ "service/bicycle/chain_tool": { "label": "Ремонт вело-ланцюгів", "options": { + "no": "Ні", "undefined": "Передбачається, Ні", - "yes": "Так", - "no": "Ні" + "yes": "Так" } }, "service/bicycle/pump": { "label": "Велосипедний насос", "options": { + "no": "Ні", "undefined": "Передбачається, Ні", - "yes": "Так", - "no": "Ні" + "yes": "Так" } }, "service_rail": { "label": "Тип службового шляху", "options": { - "spur": "Вітка", - "yard": "Депо", + "crossover": "Переїзд", "siding": "Запасна колія", - "crossover": "Переїзд" + "spur": "Вітка", + "yard": "Депо" } }, "shelter": { - "label": "Навіс" + "label": "Притулок" }, "shelter_type": { "label": "Тип" @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Паління", - "placeholder": "Заборонено, окремо, дозволено,...", "options": { - "no": "Паління заборонено", - "separated": "У відведених зонах, не ізольованих", + "dedicated": "Призначено для курців", "isolated": "У відведених зонах, ізольованих", + "no": "Паління заборонено", "outside": "Дозволено зовні", - "yes": "Дозволено скрізь", - "dedicated": "Призначено для курців" - } + "separated": "У відведених зонах, не ізольованих", + "yes": "Дозволено скрізь" + }, + "placeholder": "Заборонено, окремо, дозволено,..." }, "smoothness": { "label": "Проходимість", - "placeholder": "Ролики, Колеса, Позашляховики…", "options": { + "bad": "Міцні колеса: гібридні велосипеди, машини, рикші", "excellent": "Ролики: роликові ковзани, скейтборди", "good": "Вузькі колеса: гоночні велосипеди", + "horrible": "Позашляховики: повноцінні позашляховики", + "impassable": "Неможливо для будь-якої колісної техніки", "intermediate": "Колеса: дорожні велосипеди, візки, самокати", - "bad": "Міцні колеса: гібридні велосипеди, машини, рикші", "very_bad": "Великий кліренс: автомобілі і малі позашляховики", - "horrible": "Позашляховики: повноцінні позашляховики", - "very_horrible": "Спеціалізовані позашляховики: трактори, мотоусюдиходи, танки, тріалбайкі", - "impassable": "Неможливо для будь-якої колісної техніки" - } + "very_horrible": "Спеціалізовані позашляховики: трактори, мотоусюдиходи, танки, тріалбайкі" + }, + "placeholder": "Ролики, Колеса, Позашляховики…" }, "social_facility_for": { "label": "Кого обслуговує", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Споруда", - "placeholder": "Невідомо", "options": { "bridge": "Міст", - "tunnel": "Тунель", - "embankment": "Насип", "cutting": "Виїмка", - "ford": "Брід" - } + "embankment": "Насип", + "ford": "Брід", + "tunnel": "Тунель" + }, + "placeholder": "Невідомо" }, "studio_type": { "label": "Тип" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "На винос", - "placeholder": "Так, Ні, Тільки на винос…", "options": { - "yes": "Так", "no": "Ні", - "only": "Тільки на винос" - } + "only": "Тільки на винос", + "yes": "Так" + }, + "placeholder": "Так, Ні, Тільки на винос…" }, "toilets/disposal": { "label": "Тип туалету", "options": { - "flush": "Зливний", - "pitlatrine": "Яма", + "bucket": "Відро", "chemical": "Хімічний", - "bucket": "Відро" + "flush": "Зливний", + "pitlatrine": "Яма" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Тип путівця", - "placeholder": "Тверде, переважно тверде, м’яке", "options": { "grade1": "Тверде: з твердим покриттям чи з ущільненою поверхнею на твердих породах", "grade2": "Переважно тверде: гравій/камінь з домішками м’яких порід", "grade3": "Рівна кількість твердих і м’яких матеріалів", "grade4": "Переважно м’яке: грунт/пісок/трава з домішками твердих порід", "grade5": "М’яке: грунт/пісок/трава" - } + }, + "placeholder": "Тверде, переважно тверде, м’яке" }, "trail_visibility": { "label": "Видимість маршруту", - "placeholder": "Відмінна, Хороша, Погана,...", "options": { + "bad": "Погана: без вказівників, шлях іноді відсутній", "excellent": "Відмінна: чіткий шлях чи вказівники повсюди", "good": "Хороша: вказівники в межах видимості, шлях не завжди чіткий", - "intermediate": "Середня: мала кількість вказівників, шлях в основному видимий", - "bad": "Погана: без вказівників, шлях іноді відсутній", "horrible": "Жахлива: шлях часто відсутній, потребує навичок орієнтування", + "intermediate": "Середня: мала кількість вказівників, шлях в основному видимий", "no": "Немає: шлях відсутній, потребує хороших навичок орієнтування" - } + }, + "placeholder": "Відмінна, Хороша, Погана,..." }, "trees": { "label": "Дерева" @@ -1334,6 +1363,9 @@ "water": { "label": "Тип" }, + "water_point": { + "label": "Заправка водою" + }, "waterway": { "label": "Тип" }, @@ -1357,15 +1389,15 @@ "presets": { "address": { "name": "Адреса", - "terms": "Address, адреса, місце, квартира, будинок, корпус, flhtcf, vscwt, rdfhnbhf, ,elbyjr, rjhgec" + "terms": "address,адреса,місце,квартира,будинок,корпус,flhtcf,vscwt,rdfhnbhf,elbyjr,rjhgec" }, "aerialway": { "name": "Канатна дорога", - "terms": "Aerialway, rfyfnyf ljhjuf, канатна дорога" + "terms": "aerialway,rfyfnyf ljhjuf,канатна дорога,підвісна дорога" }, "aerialway/cable_car": { "name": "Канатний трамвай", - "terms": "Cable car, канат, трамвай, транспорт, громадський" + "terms": "cable car,канат,трамвай,транспорт,громадський" }, "aerialway/chair_lift": { "name": "Крісельний підйомник", @@ -1475,6 +1507,10 @@ "name": "Станція ремонту велосипедів", "terms": "вело-ремонт, ремонт, станція" }, + "amenity/biergarten": { + "name": "Пивний садок", + "terms": "пиво, лавка, їжа, тепло, напої, beer, biergarten, відпочинок" + }, "amenity/boat_rental": { "name": "Прокат човнів", "terms": "Boat Rental,ghjrfn xjdysd, катамарани, прокат човнів" @@ -1671,6 +1707,10 @@ "name": "Ресторан", "terms": "Restaurant, htcnjhfy, ресторан, їжа" }, + "amenity/sanitary_dump_station": { + "name": "Місце зливу каналізації", + "terms": "каналізація,відходи,станція,послуги,кемпер,Motor Home,Camper,Sanitary,Dump Station,Elsan,CDP,CTDP,Chemical Toilet" + }, "amenity/school": { "name": "Територія школи", "terms": "School grounds, nthbnjhsz irjkb, шкільний двір, школа" @@ -2184,12 +2224,12 @@ "terms": "піщана пастка, гольф" }, "golf/fairway": { - "name": "Фарватер", - "terms": "фарватер, вода, течія, маршрут" + "name": "Фервей", + "terms": "Fairway, Фервей, трава, низька, гладенька" }, "golf/green": { - "name": "Нізька трава", - "terms": "гольф, путін грін" + "name": "Ґрін", + "terms": "green, гольф, ґрін, низька трава, лунка" }, "golf/hole": { "name": "Лунка", @@ -2200,12 +2240,12 @@ "terms": "гольф, вода, пастка" }, "golf/rough": { - "name": "Нерівна місцевість", - "terms": "нерівна місцевість" + "name": "Раф", + "terms": "rough, нерівна місцевість, раф, гольф" }, "golf/tee": { "name": "Ті", - "terms": "гольф, початок, підставка" + "terms": "гольф, початок, підставка, tee" }, "golf/water_hazard": { "name": "Водяна пастка", @@ -2631,10 +2671,18 @@ "name": "Маяк", "terms": "Lighthouse, vfzr, сигнал, вогонь, маяк" }, + "man_made/mast": { + "name": "Радіощогла", + "terms": "broadcast tower,cell phone tower,cell tower,guyed tower,mobile phone tower,radio tower,television tower,transmission mast,transmission tower,tv tower, радіовежа,мобільний зв’язок,мачта,вежа,щогла,антена" + }, "man_made/observation": { "name": "Оглядова вежа", "terms": "Observation tower, jukzljdf dtf, пожежна вежа, вежа спостереження" }, + "man_made/petroleum_well": { + "name": "Нафтова свердловина", + "terms": "drilling rig,oil derrick,oil drill,oil horse,oil rig,oil pump,petroleum well,pumpjack,нафта,насос,свердловина,викачування нафти" + }, "man_made/pier": { "name": "Пірс", "terms": "Pier, gshc, причал, пірс" @@ -2643,6 +2691,14 @@ "name": "Трубопровід", "terms": "Pipeline, nhejghjdsl, трубопровід" }, + "man_made/silo": { + "name": "Силос", + "terms": "grain,corn,wheat,зерно,пшениця,ячмінь,елеватор" + }, + "man_made/storage_tank": { + "name": "Резервуар", + "terms": "water,oil,gas,petrol,вода,нафта,газ,бензин" + }, "man_made/survey_point": { "name": "Геодезичний пункт", "terms": "Survey Point, utjltpbxybq geyrn, місце спостереження" @@ -2863,6 +2919,10 @@ "name": "Місто", "terms": "City,vscnj, місто" }, + "place/farm": { + "name": "Ферма", + "terms": "farm,ферма" + }, "place/hamlet": { "name": "Хутір", "terms": "Hamlet, ensh, хутір" @@ -3651,6 +3711,10 @@ "name": "Дренажний канал", "terms": "Drain, lhtyfybq rfyfk, стічна канава, дренаж" }, + "waterway/fuel": { + "name": "АЗС для човнів", + "terms": "petrol,gas,diesel,boat,пальне,бензин,дизпаливо,човен,лодка,газ" + }, "waterway/river": { "name": "Ріка", "terms": "River, hsrf, річка" @@ -3659,6 +3723,10 @@ "name": "Берег ріки", "terms": "Riverbank, thtu hsrb, берег ріки" }, + "waterway/sanitary_dump_station": { + "name": "Місце зливу каналізації для човнів", + "terms": "Boat,Watercraft,Sanitary,Dump Station,Pumpout,Pump out,Elsan,CDP,CTDP,Chemical Toilet,каналізація,відходи,човен,лодка,яхта" + }, "waterway/stream": { "name": "Струмок", "terms": "Stream, cnhevjr, струмок" diff --git a/vendor/assets/iD/iD/locales/vi.json b/vendor/assets/iD/iD/locales/vi.json index 35104626d..113dfeff6 100644 --- a/vendor/assets/iD/iD/locales/vi.json +++ b/vendor/assets/iD/iD/locales/vi.json @@ -254,6 +254,26 @@ "list": "Đóng góp bởi {users}", "truncated_list": "Đóng góp bởi {users} và {count} người khác" }, + "infobox": { + "selected": "{n} được chọn", + "geometry": "Hình dạng", + "closed": "đóng", + "center": "Trung tâm", + "perimeter": "Chu vi", + "length": "Chiều dài", + "area": "Diện tích", + "centroid": "Trọng tâm", + "location": "Vị trí", + "metric": "Hệ mét", + "imperial": "Hệ Anh" + }, + "geometry": { + "point": "điểm", + "vertex": "đỉnh", + "line": "đường kẻ", + "area": "vùng", + "relation": "quan hệ" + }, "geocoder": { "search": "Tìm kiếm trên toàn thế giới…", "no_results_visible": "Không tìm thấy kết quả trong khu vực đang xem", @@ -568,39 +588,39 @@ "fields": { "access": { "label": "Quyền Truy cập", - "placeholder": "Không rõ", - "types": { - "access": "Tổng quát", - "foot": "Người Đi bộ", - "motor_vehicle": "Xe cộ", - "bicycle": "Xe đạp", - "horse": "Ngựa" - }, "options": { - "yes": { - "title": "Cho phép", - "description": "Mọi người được phép truy cập theo luật pháp" + "designated": { + "description": "Được xây với mục đích cho phép vận chuyển bằng phương thức này, theo bảng hay luật pháp địa phương", + "title": "Theo mục đích" + }, + "destination": { + "description": "Chỉ cho phép truy cập để tới nơi", + "title": "Nơi đến" }, "no": { - "title": "Cấm", - "description": "Công chúng không được phép truy cập" + "description": "Công chúng không được phép truy cập", + "title": "Cấm" }, "permissive": { - "title": "Chủ cho phép", - "description": "Chủ cho phép rộng rãi nhưng có thể cấm sau" + "description": "Chủ cho phép rộng rãi nhưng có thể cấm sau", + "title": "Chủ cho phép" }, "private": { - "title": "Tư nhân", - "description": "Chỉ có những người được chủ cho phép truy cập" + "description": "Chỉ có những người được chủ cho phép truy cập", + "title": "Tư nhân" }, - "designated": { - "title": "Theo mục đích", - "description": "Được xây với mục đích cho phép vận chuyển bằng phương thức này, theo bảng hay luật pháp địa phương" - }, - "destination": { - "title": "Nơi đến", - "description": "Chỉ cho phép truy cập để tới nơi" + "yes": { + "description": "Mọi người được phép truy cập theo luật pháp", + "title": "Cho phép" } + }, + "placeholder": "Không rõ", + "types": { + "access": "Tổng quát", + "bicycle": "Xe đạp", + "foot": "Người Đi bộ", + "horse": "Ngựa", + "motor_vehicle": "Xe cộ" } }, "access_simple": { @@ -613,19 +633,19 @@ "address": { "label": "Địa chỉ", "placeholders": { + "city": "Thành phố/thị xã", + "country": "Quốc gia", + "district": "Quận/thị xã/huyện", + "hamlet": "Thôn", "housename": "Tên nhà", "housenumber": "123", - "street": "Đường", - "city": "Thành phố/thị xã", - "postcode": "Mã bưu chính", "place": "Địa phương", - "hamlet": "Thôn", - "suburb": "Khu phố", - "subdistrict": "Phường/xã/thị trấn", - "district": "Quận/thị xã/huyện", + "postcode": "Mã bưu chính", "province": "Tỉnh", "state": "Tiểu bang", - "country": "Quốc gia" + "street": "Đường", + "subdistrict": "Phường/xã/thị trấn", + "suburb": "Khu phố" } }, "admin_level": { @@ -637,9 +657,9 @@ "aerialway/access": { "label": "Quyền Truy cập", "options": { + "both": "Ra vào", "entry": "Vào", - "exit": "Ra", - "both": "Ra vào" + "exit": "Ra" } }, "aerialway/bubble": { @@ -663,9 +683,9 @@ "aerialway/summer/access": { "label": "Quyền Truy cập (Mùa hè)", "options": { + "both": "Ra vào", "entry": "Vào", - "exit": "Ra", - "both": "Ra vào" + "exit": "Ra" } }, "aeroway": { @@ -714,29 +734,29 @@ "cardinal_direction": { "label": "Chiều", "options": { - "N": "Bắc", "E": "Đông", - "S": "Nam", - "W": "Tây", - "NE": "Đông Bắc", - "SE": "Đông Nam", - "SW": "Tây Nam", - "NW": "Tây Bắc", - "NNE": "Bắc Đông Bắc", "ENE": "Đông Đông Bắc", "ESE": "Đông Đông Nam", + "N": "Bắc", + "NE": "Đông Bắc", + "NNE": "Bắc Đông Bắc", + "NNW": "Bắc Tây Bắc", + "NW": "Tây Bắc", + "S": "Nam", + "SE": "Đông Nam", "SSE": "Nam Đông Nam", "SSW": "Nam Tây Nam", - "WSW": "Tây Tây Nam", + "SW": "Tây Nam", + "W": "Tây", "WNW": "Tây Tây Bắc", - "NNW": "Bắc Tây Bắc" + "WSW": "Tây Tây Nam" } }, "clock_direction": { "label": "Chiều", "options": { - "clockwise": "Theo Chiều kim Đồng hồ", - "anticlockwise": "Ngược Chiều kim Đồng hồ" + "anticlockwise": "Ngược Chiều kim Đồng hồ", + "clockwise": "Theo Chiều kim Đồng hồ" } }, "collection_times": { @@ -745,6 +765,9 @@ "construction": { "label": "Kiểu" }, + "content": { + "label": "Đồ Chứa đựng" + }, "country": { "label": "Quốc gia" }, @@ -780,13 +803,13 @@ }, "electrified": { "label": "Điện khí hóa", - "placeholder": "Dây điện Bên trên, Đường ray Điện…", "options": { "contact_line": "Dây điện Bên trên", + "no": "Không có", "rail": "Đường ray Điện", - "yes": "Có (không xác định)", - "no": "Không có" - } + "yes": "Có (không xác định)" + }, + "placeholder": "Dây điện Bên trên, Đường ray Điện…" }, "elevation": { "label": "Cao độ" @@ -811,9 +834,9 @@ "label": "Kiểu", "options": { "pillar": "Cột", + "pond": "Ao", "underground": "Dưới đất", - "wall": "Tường", - "pond": "Ao" + "wall": "Tường" } }, "fixme": { @@ -854,12 +877,12 @@ }, "gender": { "label": "Giới tính", - "placeholder": "Không rõ", "options": { - "male": "Nam", "female": "Nữ", + "male": "Nam", "unisex": "Chung" - } + }, + "placeholder": "Không rõ" }, "generator/method": { "label": "Phương pháp" @@ -900,8 +923,8 @@ "incline_steps": { "label": "Độ dốc", "options": { - "up": "Lên", - "down": "Xuống" + "down": "Xuống", + "up": "Lên" } }, "information": { @@ -910,11 +933,11 @@ "internet_access": { "label": "Truy cập Internet", "options": { - "yes": "Có", "no": "Không có", - "wlan": "Wi-Fi", + "terminal": "Máy tính công cộng", "wired": "Qua dây điện", - "terminal": "Máy tính công cộng" + "wlan": "Wi-Fi", + "yes": "Có" } }, "lamp_type": { @@ -933,20 +956,20 @@ "leaf_cycle": { "label": "Thời gian Mọc Lá", "options": { - "evergreen": "Thường xanh", "deciduous": "Rụng Lá", - "semi_evergreen": "Bán Thường xanh", + "evergreen": "Thường xanh", + "mixed": "Pha trộn", "semi_deciduous": "Bán Rụng Lá", - "mixed": "Pha trộn" + "semi_evergreen": "Bán Thường xanh" } }, "leaf_type": { "label": "Loại Lá", "options": { "broadleaved": "Hình Quạt", - "needleleaved": "Hình Kim", + "leafless": "Không có", "mixed": "Pha trộn", - "leafless": "Không có" + "needleleaved": "Hình Kim" } }, "leisure": { @@ -974,7 +997,6 @@ }, "mtb/scale": { "label": "Độ hiểm trở Đạp xe Leo núi", - "placeholder": "0, 1, 2, 3…", "options": { "0": "0: Sỏi/đất chắc, không có trở ngại, uốn từ từ", "1": "1: Mặt có một tí phần không chặt, trở ngại nhỏ, uốn từ từ", @@ -983,22 +1005,22 @@ "4": "4. Mặt không chặt hoặc hòn đá, chữ chi nguy hiểm", "5": "5. Cực hiểm trở, sân đầy hòn đá, lở đất", "6": "6. Không thể đạp xe trừ những người lão luyện nhất" - } + }, + "placeholder": "0, 1, 2, 3…" }, "mtb/scale/imba": { "label": "Độ hiểm trở Đường mòn IMBA", - "placeholder": "Dễ, Trung bình, Khó…", "options": { "0": "Dễ nhất (hình tròn màu trắng)", "1": "Dễ (hình tròn màu xanh lục)", "2": "Trung bình (hình vuông màu xanh lam)", "3": "Khó (hình thoi màu đen)", "4": "Cực Khó (2 hình thoi màu đen)" - } + }, + "placeholder": "Dễ, Trung bình, Khó…" }, "mtb/scale/uphill": { "label": "Độ hiểm trở Đạp xe Leo lên núi", - "placeholder": "0, 1, 2, 3…", "options": { "0": "0: Độ dốc trung bình <10%, sỏi/đất chắc, không có trở ngại", "1": "1: Độ dốc trung bình <15%, sỏi/đất chắc, vài thứ nhỏ", @@ -1006,7 +1028,8 @@ "3": "3: Độ dốc trung bình <25%, mặt thay đổi, đá/rễ bằng cỡ tay", "4": "4: Độ dốc trung bình <30%, phẩm chất kém, đá/rễ lớn", "5": "5: Rất dốc, thường phải đẩy hoặc vác xe đạp" - } + }, + "placeholder": "0, 1, 2, 3…" }, "name": { "label": "Tên", @@ -1027,17 +1050,17 @@ "oneway": { "label": "Một chiều", "options": { + "no": "Không phải", "undefined": "Có lẽ Không phải", - "yes": "Một chiều", - "no": "Không phải" + "yes": "Một chiều" } }, "oneway_yes": { "label": "Một chiều", "options": { + "no": "Không phải", "undefined": "Có lẽ Một chiều", - "yes": "Một chiều", - "no": "Không phải" + "yes": "Một chiều" } }, "opening_hours": { @@ -1056,13 +1079,13 @@ "parking": { "label": "Kiểu", "options": { - "surface": "Ngoài trời", - "multi-storey": "Cao tầng", - "underground": "Ngầm", - "sheds": "Lán", "carports": "Nhà xe", "garage_boxes": "Ga ra", - "lane": "Làn đường" + "lane": "Làn đường", + "multi-storey": "Cao tầng", + "sheds": "Lán", + "surface": "Ngoài trời", + "underground": "Ngầm" } }, "phone": { @@ -1071,24 +1094,24 @@ }, "piste/difficulty": { "label": "Độ Hiểm trở", - "placeholder": "Dễ, Trung bình, Nâng cao…", "options": { - "novice": "Tập", - "easy": "Dễ (Mỹ: tròn lục; Âu: xanh lục; Nhật: lục)", - "intermediate": "Trung bình (Mỹ: vuông lam; Âu: đỏ; Nhật: đỏ)", "advanced": "Nâng cao (Mỹ: thoi đen; Âu: đen; Nhật: đen)", + "easy": "Dễ (Mỹ: tròn lục; Âu: xanh lục; Nhật: lục)", "expert": "Lão luyện (Mỹ: 2 thoi đen; Âu: cam)", + "extreme": "Cực độ (cần thiết bị leo núi)", "freeride": "Tự do (xa đường; Âu: vàng)", - "extreme": "Cực độ (cần thiết bị leo núi)" - } + "intermediate": "Trung bình (Mỹ: vuông lam; Âu: đỏ; Nhật: đỏ)", + "novice": "Tập" + }, + "placeholder": "Dễ, Trung bình, Nâng cao…" }, "piste/grooming": { "label": "Kiểu Ủi Tuyết", "options": { - "classic": "Cổ điển", - "mogul": "Mogul", "backcountry": "Hẻo lánh", + "classic": "Cổ điển", "classic+skating": "Cổ điển và Trượt băng", + "mogul": "Mogul", "scooter": "Xe máy Trượt tuyết", "skating": "Trượt băng" } @@ -1097,14 +1120,14 @@ "label": "Kiểu", "options": { "downhill": "Xuống dốc", + "hike": "Đi bộ đường dài", + "ice_skate": "Trượt băng", "nordic": "Trượt tuyết Bắc Âu", + "playground": "Vui chơi", "skitour": "Skitour", "sled": "Xe Trượt tuyết", - "hike": "Đi bộ đường dài", "sleigh": "Xe trượt tuyết", - "ice_skate": "Trượt băng", - "snow_park": "Vườn Tuyết", - "playground": "Vui chơi" + "snow_park": "Vườn Tuyết" } }, "place": { @@ -1116,6 +1139,9 @@ "power": { "label": "Kiểu" }, + "power_supply": { + "label": "Nguồn Điện" + }, "railway": { "label": "Kiểu" }, @@ -1154,15 +1180,18 @@ }, "sac_scale": { "label": "Độ hiểm trở Đi bộ Đường dài", - "placeholder": "Đi bộ Đường dài Núi, Đi bộ Đường dài Anpơ…", "options": { - "hiking": "T1: Đi bộ Đường dài", - "mountain_hiking": "T2: Đi bộ Đường dài Núi", - "demanding_mountain_hiking": "T3: Đi bộ Đường dài Núi Rán sức", "alpine_hiking": "T4: Đi bộ Đường dài Anpơ", "demanding_alpine_hiking": "T5: Đi bộ Đường dài Anpơ Rán sức", - "difficult_alpine_hiking": "T6: Đi bộ Đường dài Anpơ Khó" - } + "demanding_mountain_hiking": "T3: Đi bộ Đường dài Núi Rán sức", + "difficult_alpine_hiking": "T6: Đi bộ Đường dài Anpơ Khó", + "hiking": "T1: Đi bộ Đường dài", + "mountain_hiking": "T2: Đi bộ Đường dài Núi" + }, + "placeholder": "Đi bộ Đường dài Núi, Đi bộ Đường dài Anpơ…" + }, + "sanitary_dump_station": { + "label": "Trạm Đổ Chất thải Vệ sinh" }, "seasonal": { "label": "Tùy Mùa" @@ -1173,26 +1202,26 @@ "service/bicycle/chain_tool": { "label": "Dụng cụ Cắt Xích", "options": { + "no": "Không có", "undefined": "Có lẽ Không có", - "yes": "Có", - "no": "Không có" + "yes": "Có" } }, "service/bicycle/pump": { "label": "Bơm", "options": { + "no": "Không có", "undefined": "Có lẽ Không có", - "yes": "Có", - "no": "Không có" + "yes": "Có" } }, "service_rail": { "label": "Kiểu Dịch vụ", "options": { - "spur": "Đường Nhánh", - "yard": "Đường Sân ga", + "crossover": "Đường Xuyên chéo", "siding": "Đường Tránh", - "crossover": "Đường Xuyên chéo" + "spur": "Đường Nhánh", + "yard": "Đường Sân ga" } }, "shelter": { @@ -1209,29 +1238,29 @@ }, "smoking": { "label": "Hút thuốc", - "placeholder": "Cấm, Nơi dành riêng, Cho phép…", "options": { - "no": "Hoàn toàn cấm hút thuốc", - "separated": "Ở nơi hút thuốc không có tường", + "dedicated": "Dành riêng cho người hút thuốc (ví dụ quán hút thuốc)", "isolated": "Ở nơi hút thuốc có tường", + "no": "Hoàn toàn cấm hút thuốc", "outside": "Cho phép ở ngoài trời", - "yes": "Cho phép ở bất cứ nơi nào", - "dedicated": "Dành riêng cho người hút thuốc (ví dụ quán hút thuốc)" - } + "separated": "Ở nơi hút thuốc không có tường", + "yes": "Cho phép ở bất cứ nơi nào" + }, + "placeholder": "Cấm, Nơi dành riêng, Cho phép…" }, "smoothness": { "label": "Độ nhẵn", - "placeholder": "Bánh xe Trượt, Bánh xe, Xa đường…", "options": { + "bad": "Bánh xe Bền: Xe hơi, xích lô, xe đạp dã ngoại", "excellent": "Bánh xe Trượt: Giày patanh, ván trượt", "good": "Bánh xe Mỏng: Xe đạp đua", + "horrible": "Xa đường: Xe xa đường nặng", + "impassable": "Không thể qua được bằng bánh xe", "intermediate": "Bánh xe: Xe đạp lai, xe lăn, vét pa", - "bad": "Bánh xe Bền: Xe hơi, xích lô, xe đạp dã ngoại", "very_bad": "Gầm Cao: Xe xa đường nhẹ", - "horrible": "Xa đường: Xe xa đường nặng", - "very_horrible": "Xa đường Chuyên dụng: Máy kéo, ATV", - "impassable": "Không thể qua được bằng bánh xe" - } + "very_horrible": "Xa đường Chuyên dụng: Máy kéo, ATV" + }, + "placeholder": "Bánh xe Trượt, Bánh xe, Xa đường…" }, "social_facility_for": { "label": "Dân được phục vụ", @@ -1251,14 +1280,14 @@ }, "structure": { "label": "Cấu trúc", - "placeholder": "Không rõ", "options": { "bridge": "Cầu", - "tunnel": "Đường hầm", - "embankment": "Đường đắp cao", "cutting": "Đường xẻ", - "ford": "Nơi Lội qua Sông" - } + "embankment": "Đường đắp cao", + "ford": "Nơi Lội qua Sông", + "tunnel": "Đường hầm" + }, + "placeholder": "Không rõ" }, "studio_type": { "label": "Loại" @@ -1277,20 +1306,20 @@ }, "takeaway": { "label": "Mang về", - "placeholder": "Có, Không có, Chỉ có Mang về…", "options": { - "yes": "Có", "no": "Không có", - "only": "Chỉ có Mang về" - } + "only": "Chỉ có Mang về", + "yes": "Có" + }, + "placeholder": "Có, Không có, Chỉ có Mang về…" }, "toilets/disposal": { "label": "Phương pháp thải", "options": { - "flush": "Bấm", - "pitlatrine": "Mương", + "bucket": "Thùng", "chemical": "Hóa chất", - "bucket": "Thùng" + "flush": "Bấm", + "pitlatrine": "Mương" } }, "tourism": { @@ -1301,26 +1330,26 @@ }, "tracktype": { "label": "Loại Đường mòn", - "placeholder": "Rất chắc, Khá Chắc, Mềm…", "options": { "grade1": "Rất Chắc: Mặt lát hoặc bằng cốt liệu chắc", "grade2": "Khá Chắc: Sỏi đá pha một tí nguyên liệu mềm", "grade3": "Pha trộn đều các nguyên liệu cứng mềm", "grade4": "Khá Mềm: Đất/cát/cỏ pha một tí nguyên liệu cứng", "grade5": "Rất Mềm: Đất/cát/cỏ" - } + }, + "placeholder": "Rất chắc, Khá Chắc, Mềm…" }, "trail_visibility": { "label": "Tầm nhìn trên Đường mòn", - "placeholder": "Tốt, Khá, Trung bình…", "options": { + "bad": "Kém: Không có cắm bảng, đôi khi không thấy được lối đi hoặc không có lối đi", "excellent": "Tốt: Lối đi rõ ràng hoặc có cắm bảng từng quãng một", "good": "Khá: Có bảng thấy được nhưng đôi khi cần phải mò mẫm", - "intermediate": "Trung bình: Ít bảng, lối đi thấy được phần lớn", - "bad": "Kém: Không có cắm bảng, đôi khi không thấy được lối đi hoặc không có lối đi", "horrible": "Tồi: Nhiều khi không có lối đi, cần biết dò đường một chút", + "intermediate": "Trung bình: Ít bảng, lối đi thấy được phần lớn", "no": "Không có lối đi, rất cần biết dò đường" - } + }, + "placeholder": "Tốt, Khá, Trung bình…" }, "trees": { "label": "Loại cây" @@ -1334,6 +1363,9 @@ "water": { "label": "Loại" }, + "water_point": { + "label": "Trạm Đóng Bình Nước uống" + }, "waterway": { "label": "Loại" }, @@ -1475,6 +1507,10 @@ "name": "Quầy Sửa Xe đạp", "terms": "quầy sửa xe đạp, quay sua xe dap" }, + "amenity/biergarten": { + "name": "Vườn Bia", + "terms": "vườn bia, vườn uống bia, vườn nhậu, vuon bia, vuon uong bia, vuon nhau" + }, "amenity/boat_rental": { "name": "Cho thuê Tàu", "terms": "dịch vụ cho thuê tàu, chỗ thuê tàu, tiệm thuê tàu, thuê tàu, dịch vụ cho mướn tàu, chỗ mướn tàu, tiệm mướn tàu, mướn tàu, dịch vụ cho thuê thuyền, chỗ thuê thuyền, tiệm thuê thuyền, thuê thuyền, dịch vụ cho mướn thuyền, chỗ mướn thuyền, tiệm mướn thuyền, mướn thuyền, dich vu cho thue tau, cho thue tau, tiem thue tau, thue tau, dich vu cho muon tau, cho muon tau, tiem muon tau, muon tau, dich vu cho thue thuyen, cho thue thuyen, tiem thue thuyen, thue thuyen, dich vu cho muon thuyen, cho muon thuyen, tiem muon thuyen, muon thuyen" @@ -1573,7 +1609,7 @@ }, "amenity/fuel": { "name": "Cây xăng", - "terms": "cây xăng, cột xăng, xăng, ét xăng, ét-xăng, nhiên liệu, cay xang, cot xang, xang, et xang, et-xang, nhien lieu" + "terms": "cây xăng, cột xăng, xăng, ét xăng, ét-xăng, trạm xăng dầu, nhiên liệu, cay xang, cot xang, xang, et xang, et-xang, tram xang dau, nhien lieu" }, "amenity/grave_yard": { "name": "Nghĩa địa tại Nhà thờ", @@ -1671,6 +1707,10 @@ "name": "Nhà hàng", "terms": "quán ăn, nhà hàng, tiệm ăn, nhà ăn, phòng ăn, quán ăn nhanh, nhà hàng ăn nhanh, quán ăn qua loa, căng tin, căng-tin, xe đẩy, quán rượu, quán bia, tiệm rượu, hiệu chả cá, quán chả nướng, quán phở, tiệm phở, quán cơm, quán bánh cuốn, tiệm bánh cuốn, quán bánh mì, tiệm bánh mì, quán bánh xèo, tiệm bánh xèo, quán chè, tiệm chè, quán gỏi cuốn, quán bún, quán hải sản, quán gà, quán cà ri, quán cà-ri, tiệm cà ri, tiệm cà-ri, quan an, nha hang, tiem an, nha an, phong an, quan an nhanh, nha hang an nhanh, quan an qua loa, can tin, cang-tin, xe day, quan ruou, quan bia, tiem ruou, hieu cha ca, quan cha nuong, quan pho, tiem pho, quan com, quan banh cuon, tiem banh cuon, quan banh mi, tiem banh mi, quan banh xeo, tiem banh xeo, quan che, tiem che, quan goi cuon, quan bun, quan hai san, quan ga, quan ca ri, quan ca-ri, tiem ca ri, tiem ca-ri" }, + "amenity/sanitary_dump_station": { + "name": "Trạm Đổ Chất thải dành cho Nhà lưu động", + "terms": "trạm đổ chất thải dành cho nhà lưu động, trạm đổ chất thải vệ sinh dành cho nhà lưu động, tram do chat thai danh cho nha luu dong, tram do chat thai ve sinh danh cho nha luu dong" + }, "amenity/school": { "name": "Sân Trường", "terms": "sân trường, sân trường học, sân nhà trường, sân trung tâm giáo dục, san truong, san truong hoc, san nha truong, san trung tam giao duc" @@ -2631,10 +2671,18 @@ "name": "Hải đăng", "terms": "hải đăng, đèn biển, hai dang, den bien" }, + "man_made/mast": { + "name": "Cột Radio", + "terms": "cột radio, cột rađiô, cột ra-đi-ô, cột vô tuyến, tháp radio, tháp rađiô, tháp ra-đi-ô, tháp vô tuyến, anten radio, anten rađiô, an-ten ra-đi-ô, cột tv, cột tivi, tháp tv, tháp tivi, anten tv, anten tivi, cot radio, cot ra-di-o, cot vo tuyen, thap radio, thap ra-di-o, thap vo tuyen, anten radio, anten ra-di-o, cot tv, cot vivi, thap tv, thap tivi, anten tv, anten tivi" + }, "man_made/observation": { "name": "Tháp Quan sát", "terms": "tháp quan sát, trạm quan sát, tầng quan sát, thap quan sat, tram quan sat, tang quan sat" }, + "man_made/petroleum_well": { + "name": "Giếng Dầu", + "terms": "giếng dầu, gieng dau" + }, "man_made/pier": { "name": "Cầu tàu", "terms": "cầu tàu, bến tàu, đạp ngăn sóng, cầu dạo chơi, cau tau, ben tau, dap ngan song, cau dao choi" @@ -2643,6 +2691,14 @@ "name": "Đường ống", "terms": "đường ống, tuyến đường ống, duong ong, tuyen duong ong" }, + "man_made/silo": { + "name": "Xilô", + "terms": "xilô, xi-lô, xi lô, xilo, xi-lo, xi lo" + }, + "man_made/storage_tank": { + "name": "Thùng Chứa", + "terms": "thùng chứa, bể chứa, bình chứa, xi-téc, xi-tẹc, bể nước, thung chua, be chua, binh chua, xi-tec, be nuoc" + }, "man_made/survey_point": { "name": "Điểm Khảo sát", "terms": "điểm khảo sát, diem khao sat" @@ -2863,6 +2919,10 @@ "name": "Thành phố", "terms": "thành phố, TP, thành thị, đô thị, thanh pho, thanh thi, do thi" }, + "place/farm": { + "name": "Trại", + "terms": "trại,nông nghiệp,trang trại,đồn điền,trai,nong nghiep,trang trại,don dien" + }, "place/hamlet": { "name": "Thôn", "terms": "thôn, ấp, thôn ấp, xóm, liên gia, thon, ap, thon ap, xom, lien gia" @@ -3205,7 +3265,7 @@ }, "shop/furniture": { "name": "Cửa hàng Nội thất", - "terms": "cửa hàng đồ đạc, chỗ đồ đạc, cửa hàng bán đồ đạc, tiệm bán đồ đạc, quầy bán đồ đạc, nơi bán đồ đạc, đồ gỗ, giường, bàn, ghế, đèn, cua hang do dac, cho do dac, cua hang ban do dac, tiem ban do dac, quay ban do dac, noi ban do dac, do go, giuong, ban, ghe, den" + "terms": "tiệm nội thất, cửa hàng đồ đạc, chỗ đồ đạc, cửa hàng bán đồ đạc, tiệm bán đồ đạc, quầy bán đồ đạc, nơi bán đồ đạc, đồ gỗ, giường, bàn, ghế, đèn, tiem noi that, cua hang do dac, cho do dac, cua hang ban do dac, tiem ban do dac, quay ban do dac, noi ban do dac, do go, giuong, ban, ghe, den" }, "shop/garden_centre": { "name": "Trung tâm Làm vườn", @@ -3651,6 +3711,10 @@ "name": "Cống", "terms": "cống, cong" }, + "waterway/fuel": { + "name": "Trạm Đổ xăng trên Biển", + "terms": "trạm đổ xăng trên biển, trạm đổ xăng dành cho tàu thủy, trạm đổ xăng dành cho tàu thuỷ, tram do xang tren bien, tram do xang danh cho tau thuy" + }, "waterway/river": { "name": "Sông", "terms": "sông, dòng sông, song, dong song" @@ -3659,6 +3723,10 @@ "name": "Bờ sông", "terms": "bờ sông, bo song" }, + "waterway/sanitary_dump_station": { + "name": "Trạm Đổ Chất thải dành cho Tàu thủy", + "terms": "trạm đổ chất thải dành cho tàu thủy, trạm đổ chất thải dành cho tàu thuỷ, trạm đổ chất thải ve sinh dành cho tàu thủy, trạm đổ chất thải ve sinh dành cho tàu thuỷ, tram do chat thai danh cho tau thuy, tram do chat thai ve sinh danh cho tau thuy" + }, "waterway/stream": { "name": "Dòng suối", "terms": "dòng suối, dòng chảy, dong suoi, dong chay" diff --git a/vendor/assets/iD/iD/locales/yue.json b/vendor/assets/iD/iD/locales/yue.json index 36e714b53..ed069016e 100644 --- a/vendor/assets/iD/iD/locales/yue.json +++ b/vendor/assets/iD/iD/locales/yue.json @@ -208,7 +208,6 @@ "commit": { "title": "記低修改", "description_placeholder": "簡述你爾則稿件", - "message_label": "遞交片語", "upload_explanation": "你嘅修改,傳咗上去公家街圖。凢用公家街圖資料,地圖都會見到。", "upload_explanation_with_user": "你以{user}名義,修改傳咗上去公家街圖。凢用公家街圖資料,地圖都會見到。", "save": "記", @@ -417,39 +416,39 @@ "fields": { "access": { "label": "通", - "placeholder": "未知", - "types": { - "access": "總體", - "foot": "行", - "motor_vehicle": "車", - "bicycle": "單車", - "horse": "馬" - }, "options": { - "yes": { - "title": "准許", - "description": "按法例可通,通路之權。" + "designated": { + "description": "通行與否,按法例或路牌指定", + "title": "指名" + }, + "destination": { + "description": "限往目的地", + "title": "目的地" }, "no": { - "title": "禁入", - "description": "公眾不通" + "description": "公眾不通", + "title": "禁入" }, "permissive": { - "title": "放任", - "description": "可通,直至地主唔畀。" + "description": "可通,直至地主唔畀。", + "title": "放任" }, "private": { - "title": "私家", - "description": "要地主批准" - }, - "designated": { - "title": "指名", - "description": "通行與否,按法例或路牌指定" + "description": "要地主批准", + "title": "私家" }, - "destination": { - "title": "目的地", - "description": "限往目的地" + "yes": { + "description": "按法例可通,通路之權。", + "title": "准許" } + }, + "placeholder": "未知", + "types": { + "access": "總體", + "bicycle": "單車", + "foot": "行", + "horse": "馬", + "motor_vehicle": "車" } }, "access_simple": { @@ -458,8 +457,8 @@ "address": { "label": "地埗", "placeholders": { - "street": "街", - "city": "城" + "city": "城", + "street": "街" } }, "admin_level": { @@ -535,8 +534,8 @@ "clock_direction": { "label": "方向", "options": { - "clockwise": "順時針", - "anticlockwise": "逆時針" + "anticlockwise": "逆時針", + "clockwise": "順時針" } }, "collection_times": { @@ -629,9 +628,9 @@ "internet_access": { "label": "用到互聯網", "options": { - "wlan": "無綫上網", + "terminal": "終端機", "wired": "揷綫上網", - "terminal": "終端機" + "wlan": "無綫上網" } }, "landuse": { @@ -762,13 +761,13 @@ }, "structure": { "label": "結構", - "placeholder": "未知", "options": { "bridge": "橋", - "tunnel": "隧道", + "cutting": "開山", "embankment": "基堤", - "cutting": "開山" - } + "tunnel": "隧道" + }, + "placeholder": "未知" }, "supervised": { "label": "有人睇" diff --git a/vendor/assets/iD/iD/locales/zh-CN.json b/vendor/assets/iD/iD/locales/zh-CN.json index 07a792e48..39695f4d6 100644 --- a/vendor/assets/iD/iD/locales/zh-CN.json +++ b/vendor/assets/iD/iD/locales/zh-CN.json @@ -239,7 +239,6 @@ "commit": { "title": "保存变更", "description_placeholder": "简单说明你的贡献。", - "message_label": "提交信息", "upload_explanation": "你的修改将会在所有使用OpenStreetMap的数据的地图上看得见。", "upload_explanation_with_user": "{user},你的修改将会在所有使用OpenStreetMap数据的地图上展现。", "save": "保存", @@ -568,39 +567,39 @@ "fields": { "access": { "label": "通行限制", - "placeholder": "未知", - "types": { - "access": "普通", - "foot": "步行", - "motor_vehicle": "汽车", - "bicycle": "自行车", - "horse": "马匹" - }, "options": { - "yes": { - "title": "允许的", - "description": "按法律及路权,有权使用" + "designated": { + "description": "只限标志指定或特定本地法律容许人士进入", + "title": "特定的" + }, + "destination": { + "description": "只限前往目的地人士进入", + "title": "目的地" }, "no": { - "title": "禁止的", - "description": "禁止一般公众进入" + "description": "禁止一般公众进入", + "title": "禁止的" }, "permissive": { - "title": "获许可进入", - "description": "容许进入,直至拥有者撇回许可" + "description": "容许进入,直至拥有者撇回许可", + "title": "获许可进入" }, "private": { - "title": "私人", - "description": "须拥有者个别批准,方可进入" - }, - "designated": { - "title": "特定的", - "description": "只限标志指定或特定本地法律容许人士进入" + "description": "须拥有者个别批准,方可进入", + "title": "私人" }, - "destination": { - "title": "目的地", - "description": "只限前往目的地人士进入" + "yes": { + "description": "按法律及路权,有权使用", + "title": "允许的" } + }, + "placeholder": "未知", + "types": { + "access": "普通", + "bicycle": "自行车", + "foot": "步行", + "horse": "马匹", + "motor_vehicle": "汽车" } }, "access_simple": { @@ -613,19 +612,19 @@ "address": { "label": "地址", "placeholders": { + "city": "城市", + "country": "国家", + "district": "行政区", + "hamlet": "村庄", "housename": "房屋名称", "housenumber": "123号", - "street": "街道", - "city": "城市", - "postcode": "邮政编码", "place": "地方", - "hamlet": "村庄", - "suburb": "地区", - "subdistrict": "街道", - "district": "行政区", + "postcode": "邮政编码", "province": "行政省", "state": "行政州", - "country": "国家" + "street": "街道", + "subdistrict": "街道", + "suburb": "地区" } }, "admin_level": { @@ -637,9 +636,9 @@ "aerialway/access": { "label": "通行限制", "options": { + "both": "双向", "entry": "入口", - "exit": "出口", - "both": "双向" + "exit": "出口" } }, "aerialway/bubble": { @@ -663,9 +662,9 @@ "aerialway/summer/access": { "label": "通行方向(夏季)", "options": { + "both": "双方", "entry": "入口", - "exit": "出口", - "both": "双方" + "exit": "出口" } }, "aeroway": { @@ -714,29 +713,29 @@ "cardinal_direction": { "label": "方向", "options": { - "N": "北", "E": "东", - "S": "南", - "W": "西", - "NE": "东北", - "SE": "东南", - "SW": "西南", - "NW": "西北", - "NNE": "东北偏北", "ENE": "东北偏东", "ESE": "东南偏东", + "N": "北", + "NE": "东北", + "NNE": "东北偏北", + "NNW": "西北偏北", + "NW": "西北", + "S": "南", + "SE": "东南", "SSE": "东南偏南", "SSW": "西南偏南", - "WSW": "西南偏西", + "SW": "西南", + "W": "西", "WNW": "西北偏西", - "NNW": "西北偏北" + "WSW": "西南偏西" } }, "clock_direction": { "label": "方向", "options": { - "clockwise": "顺时针", - "anticlockwise": "逆时针" + "anticlockwise": "逆时针", + "clockwise": "顺时针" } }, "collection_times": { @@ -780,13 +779,13 @@ }, "electrified": { "label": "电气化", - "placeholder": "接触线、电气化铁路…", "options": { "contact_line": "接触线", + "no": "否", "rail": "电气化铁路", - "yes": "是(未指明)", - "no": "否" - } + "yes": "是(未指明)" + }, + "placeholder": "接触线、电气化铁路…" }, "elevation": { "label": "海拔" @@ -811,9 +810,9 @@ "label": "类型", "options": { "pillar": "支柱/地上", + "pond": "池塘", "underground": "地铁", - "wall": "墙", - "pond": "池塘" + "wall": "墙" } }, "fixme": { @@ -854,12 +853,12 @@ }, "gender": { "label": "性别", - "placeholder": "未知", "options": { - "male": "男", "female": "女", + "male": "男", "unisex": "中性" - } + }, + "placeholder": "未知" }, "generator/method": { "label": "模式" @@ -900,8 +899,8 @@ "incline_steps": { "label": "坡度", "options": { - "up": "上", - "down": "下" + "down": "下", + "up": "上" } }, "information": { @@ -910,11 +909,11 @@ "internet_access": { "label": "互联网接入", "options": { - "yes": "是", "no": "否", - "wlan": "Wi-Fi", + "terminal": "终端", "wired": "有线网络", - "terminal": "终端" + "wlan": "Wi-Fi", + "yes": "是" } }, "lamp_type": { @@ -933,20 +932,20 @@ "leaf_cycle": { "label": "叶寿命", "options": { - "evergreen": "常绿", "deciduous": "落叶", - "semi_evergreen": "半常绿", + "evergreen": "常绿", + "mixed": "混交林", "semi_deciduous": "半落叶", - "mixed": "混交林" + "semi_evergreen": "半常绿" } }, "leaf_type": { "label": "叶型", "options": { "broadleaved": "阔叶", - "needleleaved": "针叶", + "leafless": "无叶", "mixed": "混交林", - "leafless": "无叶" + "needleleaved": "针叶" } }, "leisure": { @@ -974,7 +973,6 @@ }, "mtb/scale": { "label": "登山車难度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0:坚实的硕石土路,没有障碍物,大湾曲", "1": "1:铺面部分松散,有小的障碍物,大弯曲", @@ -983,22 +981,22 @@ "4": "4:路面松散或是充满石头,有危险的发夹弯", "5": "5:骑乘等级最困难,路面充满石头,或者是路面坍方", "6": "6:除非是技巧极好的越野车手,否则并不适合骑乘" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "国际登山车协会路径难度", - "placeholder": "简单,中等,困难...", "options": { "0": "最简单(白圈)", "1": "容易(绿圈)", "2": "中等(蓝方块)", "3": "困难(黑色钻石型)", "4": "极端困难(双重黑色钻石型)" - } + }, + "placeholder": "简单,中等,困难..." }, "mtb/scale/uphill": { "label": "山地自行车上坡难度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0:平均坡度小于10%时,有碎石/夯实的地面,没有障碍物", "1": "1:平均坡度小于15%,有碎石/夯实的地面,有些许障碍物", @@ -1006,7 +1004,8 @@ "3": "3:平均坡度25%,多变的平面,拳头大的石头/树墙", "4": "4:平均坡度小于30%时,很糟的路面状况,大石头/树墙", "5": "5:很陡,单车得牵行或扛车" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "名称", @@ -1027,17 +1026,17 @@ "oneway": { "label": "单行线", "options": { + "no": "否", "undefined": "假定为否", - "yes": "是", - "no": "否" + "yes": "是" } }, "oneway_yes": { "label": "单行线", "options": { + "no": "否", "undefined": "假定为是", - "yes": "是", - "no": "否" + "yes": "是" } }, "opening_hours": { @@ -1056,13 +1055,13 @@ "parking": { "label": "类型", "options": { - "surface": "地面", - "multi-storey": "多晨", - "underground": "地下", - "sheds": "单独车库", "carports": "车棚", "garage_boxes": "车库盒", - "lane": "路边" + "lane": "路边", + "multi-storey": "多晨", + "sheds": "单独车库", + "surface": "地面", + "underground": "地下" } }, "phone": { @@ -1071,24 +1070,24 @@ }, "piste/difficulty": { "label": "困难", - "placeholder": "容易,中阶,进阶", "options": { - "novice": "新手(教学)", - "easy": "容易(绿圈)", - "intermediate": "中阶(蓝方块)", "advanced": "进阶(黑色钻石型)", + "easy": "容易(绿圈)", "expert": "专家(双重黑色钻石型)", + "extreme": "极端困难(需要攀登工具)", "freeride": "自由滑行(场地外)", - "extreme": "极端困难(需要攀登工具)" - } + "intermediate": "中阶(蓝方块)", + "novice": "新手(教学)" + }, + "placeholder": "容易,中阶,进阶" }, "piste/grooming": { "label": "雪道类型", "options": { - "classic": "经典", - "mogul": "蒙古人", "backcountry": "偏远地区", + "classic": "经典", "classic+skating": "经典和滑行", + "mogul": "蒙古人", "scooter": "滑行艇/雪车", "skating": "滑冰" } @@ -1097,14 +1096,14 @@ "label": "类型", "options": { "downhill": "下坡", + "hike": "徒步旅行", + "ice_skate": "冰刀", "nordic": "北欧人", + "playground": "练习场", "skitour": "滑雪旅行", "sled": "雪橇", - "hike": "徒步旅行", "sleigh": "简易雪橇", - "ice_skate": "冰刀", - "snow_park": "滑雪场", - "playground": "练习场" + "snow_park": "滑雪场" } }, "place": { @@ -1154,15 +1153,15 @@ }, "sac_scale": { "label": "远足难度", - "placeholder": "登山旅行,越岭行走...", "options": { - "hiking": "T1:徒步旅行", - "mountain_hiking": "T2:登山旅行", - "demanding_mountain_hiking": "T3:进阶登山旅行", "alpine_hiking": "T4:高山旅行", "demanding_alpine_hiking": "T5:进阶高山旅行", - "difficult_alpine_hiking": "T6:艰困高山旅行" - } + "demanding_mountain_hiking": "T3:进阶登山旅行", + "difficult_alpine_hiking": "T6:艰困高山旅行", + "hiking": "T1:徒步旅行", + "mountain_hiking": "T2:登山旅行" + }, + "placeholder": "登山旅行,越岭行走..." }, "seasonal": { "label": "具备季节性" @@ -1172,26 +1171,26 @@ }, "service/bicycle/chain_tool": { "options": { + "no": "否", "undefined": "假定为否", - "yes": "是", - "no": "否" + "yes": "是" } }, "service/bicycle/pump": { "label": "气泵", "options": { + "no": "否", "undefined": "假定为否", - "yes": " 是", - "no": "否" + "yes": " 是" } }, "service_rail": { "label": "服务类型", "options": { - "spur": "短途支线", - "yard": "站场线路", + "crossover": "渡线", "siding": "侧线", - "crossover": "渡线" + "spur": "短途支线", + "yard": "站场线路" } }, "shelter": { @@ -1208,29 +1207,29 @@ }, "smoking": { "label": "吸烟", - "placeholder": "禁止、隔开、允许...", "options": { - "no": "禁止吸烟", - "separated": "指定区域可使用(布隔开)", + "dedicated": "吸烟专用", "isolated": "指定区域可使用(隔开)", + "no": "禁止吸烟", "outside": "外面可使用", - "yes": "随处可使用", - "dedicated": "吸烟专用" - } + "separated": "指定区域可使用(布隔开)", + "yes": "随处可使用" + }, + "placeholder": "禁止、隔开、允许..." }, "smoothness": { "label": "平顺度", - "placeholder": "轴承,轮胎,越野", "options": { + "bad": "强化轮胎:休旅自行车,汽车,人力车", "excellent": "轴承:溜冰,滑板", "good": "细轮:竞速自行车", + "horrible": "越野:高负重越野车辆", + "impassable": "禁止通行/禁止轮类交通工具", "intermediate": "轮胎:通勤脚踏车,轮椅,滑板车", - "bad": "强化轮胎:休旅自行车,汽车,人力车", "very_bad": "轻量化:低负重越野车辆", - "horrible": "越野:高负重越野车辆", - "very_horrible": "越野专用:拖拉机,全地形越野车", - "impassable": "禁止通行/禁止轮类交通工具" - } + "very_horrible": "越野专用:拖拉机,全地形越野车" + }, + "placeholder": "轴承,轮胎,越野" }, "social_facility_for": { "label": "服务对象", @@ -1250,14 +1249,14 @@ }, "structure": { "label": "结构", - "placeholder": "未知种类", "options": { "bridge": "桥", - "tunnel": "隧道", - "embankment": "堤岸", "cutting": "开凿", - "ford": "浅滩" - } + "embankment": "堤岸", + "ford": "浅滩", + "tunnel": "隧道" + }, + "placeholder": "未知种类" }, "studio_type": { "label": "类型" @@ -1276,20 +1275,20 @@ }, "takeaway": { "label": "外卖", - "placeholder": "是,否,仅限外卖", "options": { - "yes": "是", "no": "否", - "only": "仅限外卖" - } + "only": "仅限外卖", + "yes": "是" + }, + "placeholder": "是,否,仅限外卖" }, "toilets/disposal": { "label": "废弃", "options": { - "flush": "冲水式", - "pitlatrine": "旱厕/翼坑", + "bucket": "尿筒", "chemical": "化工", - "bucket": "尿筒" + "flush": "冲水式", + "pitlatrine": "旱厕/翼坑" } }, "tourism": { @@ -1300,26 +1299,26 @@ }, "tracktype": { "label": "产业道路种类", - "placeholder": "坚硬地面,硬物铺面,软铺面", "options": { "grade1": "刚性铺面:铺面为柏油,水泥或由刚性材质密实组成", "grade2": "近刚性铺面:砾石与石块混合柔性材质", "grade3": "混合刚性与柔性材质", "grade4": "近柔性铺面:土壤,砂土与草地混合其他刚性材质", "grade5": "柔性铺面:只有土壤,砂土与草地" - } + }, + "placeholder": "坚硬地面,硬物铺面,软铺面" }, "trail_visibility": { "label": "路径可见度", - "placeholder": "良好,尚可,稍差...", "options": { + "bad": "差劲:没有标示,路径有时候消失", "excellent": "良好:路径明显或标示充分", "good": "尚可:有标示但可能不明显", - "intermediate": "略差:标示稀少,路径大致可见", - "bad": "差劲:没有标示,路径有时候消失", "horrible": "可怕:路径常消失,需要部分定向能力", + "intermediate": "略差:标示稀少,路径大致可见", "no": "无:没有路径,需具备完整的定向能力" - } + }, + "placeholder": "良好,尚可,稍差..." }, "trees": { "label": "树林" @@ -1735,8 +1734,8 @@ "terms": "自行车,单车,路障" }, "barrier/ditch": { - "name": "水沟", - "terms": "沟,沟渠,涧" + "name": "壕沟", + "terms": "沟坎,壕" }, "barrier/entrance": { "name": "入口", @@ -3351,8 +3350,8 @@ "terms": "水坝" }, "waterway/ditch": { - "name": "壕沟", - "terms": "沟坎,壕" + "name": "水沟", + "terms": "沟,沟渠,涧" }, "waterway/drain": { "name": "渠", diff --git a/vendor/assets/iD/iD/locales/zh-HK.json b/vendor/assets/iD/iD/locales/zh-HK.json index 18ee084bc..3e69a9fe8 100644 --- a/vendor/assets/iD/iD/locales/zh-HK.json +++ b/vendor/assets/iD/iD/locales/zh-HK.json @@ -208,7 +208,6 @@ "commit": { "title": "記低修改", "description_placeholder": "簡述你爾則稿件", - "message_label": "遞交片語", "upload_explanation": "你嘅修改,傳咗上去公家街圖。凢用公家街圖資料,地圖都會見到。", "upload_explanation_with_user": "你以{user}名義,修改傳咗上去公家街圖。凢用公家街圖資料,地圖都會見到。", "save": "記", @@ -413,39 +412,39 @@ "fields": { "access": { "label": "通", - "placeholder": "未知", - "types": { - "access": "總體", - "foot": "行", - "motor_vehicle": "車", - "bicycle": "單車", - "horse": "馬" - }, "options": { - "yes": { - "title": "准許", - "description": "按法例可通,通路之權。" + "designated": { + "description": "通行與否,按法例或路牌指定", + "title": "指名" + }, + "destination": { + "description": "限往目的地", + "title": "目的地" }, "no": { - "title": "禁入", - "description": "公眾不通" + "description": "公眾不通", + "title": "禁入" }, "permissive": { - "title": "放任", - "description": "可通,直至地主唔畀。" + "description": "可通,直至地主唔畀。", + "title": "放任" }, "private": { - "title": "私家", - "description": "要地主批准" - }, - "designated": { - "title": "指名", - "description": "通行與否,按法例或路牌指定" + "description": "要地主批准", + "title": "私家" }, - "destination": { - "title": "目的地", - "description": "限往目的地" + "yes": { + "description": "按法例可通,通路之權。", + "title": "准許" } + }, + "placeholder": "未知", + "types": { + "access": "總體", + "bicycle": "單車", + "foot": "行", + "horse": "馬", + "motor_vehicle": "車" } }, "access_simple": { @@ -454,8 +453,8 @@ "address": { "label": "地埗", "placeholders": { - "street": "街", - "city": "城" + "city": "城", + "street": "街" } }, "admin_level": { @@ -504,8 +503,8 @@ "clock_direction": { "label": "方向", "options": { - "clockwise": "順時針", - "anticlockwise": "逆時針" + "anticlockwise": "逆時針", + "clockwise": "順時針" } }, "collection_times": { @@ -595,9 +594,9 @@ "internet_access": { "label": "用到互聯網", "options": { - "wlan": "無綫上網", + "terminal": "終端機", "wired": "揷綫上網", - "terminal": "終端機" + "wlan": "無綫上網" } }, "landuse": { @@ -719,13 +718,13 @@ }, "structure": { "label": "結構", - "placeholder": "未知", "options": { "bridge": "橋", - "tunnel": "隧道", + "cutting": "開山", "embankment": "基堤", - "cutting": "開山" - } + "tunnel": "隧道" + }, + "placeholder": "未知" }, "supervised": { "label": "有人睇" diff --git a/vendor/assets/iD/iD/locales/zh-TW.json b/vendor/assets/iD/iD/locales/zh-TW.json index 4fd118755..7f6029342 100644 --- a/vendor/assets/iD/iD/locales/zh-TW.json +++ b/vendor/assets/iD/iD/locales/zh-TW.json @@ -2,36 +2,36 @@ "modes": { "add_area": { "title": "區域", - "description": "在地圖上添加公園、建築物、湖泊或其他區域。", - "tail": "按一下地圖來開始繪製一塊區域,如公園、湖泊或建築物。" + "description": "新增公園、建築物、湖泊或其它區域至地圖上。", + "tail": "點擊地圖以繪製一塊區域,如公園、湖泊或建築物。" }, "add_line": { "title": "線", - "description": "在地圖上添加公路、街道、行人徑、運河或其他線段。", - "tail": "點擊地圖來開始繪製道路、路徑或路綫。" + "description": "新增公路、街道、行人道、運河或其他線段至地圖上。", + "tail": "點擊地圖以繪製道路、路徑或路綫。" }, "add_point": { "title": "點", - "description": "在地圖上添加餐廳、古蹪、郵箱或其他事物。", - "tail": "按一下地圖來添加一個點。" + "description": "新增餐廳、古蹪、郵箱或其他事物至地圖上。", + "tail": "點擊地圖以新增一個點。" }, "browse": { "title": "瀏覽", "description": "平移及縮放地圖。" }, "draw_area": { - "tail": "點擊以為這個區域添加節點。點擊第一點來完成繪製區域。" + "tail": "點擊地圖以添加區域的其它節點。點擊第一點以完成區域的繪製。" }, "draw_line": { - "tail": "點擊以為這線段添加更多節點。點擊其他線段以連接它們,點擊兩下以完成繒製線段。" + "tail": "點擊地圖以添加線段的其它節點。點擊其他線段以連接它們,點擊兩下以完成線段的繪製。" } }, "operations": { "add": { "annotation": { - "point": "已添加一點。", - "vertex": "給路徑添加了一節點。", - "relation": "增加一項關係。" + "point": "已新增一點。", + "vertex": "已新增一節點至路徑上。", + "relation": "已新增一項關係。" } }, "start": { @@ -42,7 +42,7 @@ }, "continue": { "key": "A", - "title": "繼續繪製", + "title": "繼續", "description": "繼續繪製此線段", "not_eligible": "無法在此繼續繪製線段", "multiple": "有多條線段可在此延續。要選擇其中一條,請按 Shift 鍵並點擊它。", @@ -132,7 +132,8 @@ "description": "將這些路徑/區域斷開。", "key": "D", "annotation": "斷開了路徑。", - "not_connected": "未有足夠的路徑/區域來斷開。" + "not_connected": "未有足夠的路徑/區域來斷開。", + "connected_to_hidden": "無法斷開,因為其連接著隱藏的特徵。" }, "merge": { "title": "合併", @@ -156,7 +157,8 @@ "multiple": "移動了數個物件。" }, "incomplete_relation": "物件未完全下載,不能移動。", - "too_large": "由於目前可視部分太少了,所以無法移動該物件。" + "too_large": "由於目前可視部分太少了,所以無法移動該物件。", + "connected_to_hidden": "這個沒辦法移動,因為與其他隱藏的圖徵相連." }, "rotate": { "title": "旋轉", @@ -166,7 +168,8 @@ "line": "旋轉了一線段。", "area": "旋轉了一區域。" }, - "too_large": "由於目前可視部分太少,所以無法旋轉該物件。" + "too_large": "由於目前可視部分太少,所以無法旋轉該物件。", + "connected_to_hidden": "這個沒辦法旋轉,因為與其他隱藏的圖徵相連." }, "reverse": { "title": "反轉", @@ -188,7 +191,8 @@ "multiple": "分割{n}項線段/區域的邊界。" }, "not_eligible": "不能於線段的首尾進行分割。", - "multiple_ways": "太多線段,未能進行分割。" + "multiple_ways": "太多線段,未能進行分割。", + "connected_to_hidden": "這個沒辦法切割,因為與其他隱藏的圖徵相連." }, "restriction": { "help": { @@ -223,6 +227,10 @@ "logout": "登出", "loading_auth": "正在連接 OpenStreetMap...", "report_a_bug": "回報編輯器問題", + "feature_info": { + "hidden_warning": "{count} 隱藏的圖徵", + "hidden_details": "這些圖徵現在被隱藏.: {details}" + }, "status": { "error": "未能連接至伺服器介面。", "offline": "伺服器介面離線,請稍後再嘗試編輯。", @@ -231,7 +239,6 @@ "commit": { "title": "儲存修改", "description_placeholder": "簡要描述你的貢獻", - "message_label": "有關此編輯的訊息", "upload_explanation": "你的修改將會在所有使用OpenStreetMap資料的地圖上看到。", "upload_explanation_with_user": "你以 {user} 具名的修改將會在所有使用OpenStreetMap資料的地圖上看到。", "save": "儲存", @@ -240,11 +247,30 @@ "warnings": "警告", "modified": "已修改", "deleted": "已刪除", - "created": "已創建" + "created": "已建立" }, "contributors": { "list": "正顯示 {users} 的編輯", - "truncated_list": "正顯示 {users} 和另外 {count} 位用戶的編輯" + "truncated_list": "由 {users} 與另外 {count} 人編輯" + }, + "infobox": { + "selected": "{n} 被選擇", + "geometry": "幾何", + "closed": "已關閉", + "center": "中心", + "perimeter": "周長", + "length": "長度", + "area": "區域", + "location": "地點", + "metric": "公制", + "imperial": "英制" + }, + "geometry": { + "point": "點", + "vertex": "頂點", + "line": "線", + "area": "區域", + "relation": "關係" }, "geocoder": { "search": "搜尋全世界...", @@ -302,7 +328,8 @@ "description": "地圖圖資", "data_layers": "資料圖層", "fill_area": "填充選項", - "map_features": "地圖圖徵" + "map_features": "地圖圖徵", + "autohidden": "因為螢幕中的特徵太多,這些特徵已被自動隱藏。請放大再修編。" }, "feature": { "points": { @@ -356,7 +383,8 @@ }, "area_fill": { "wireframe": { - "description": "不填充 (線條顯示)" + "description": "不填充 (線條顯示)", + "tooltip": "啟用線框模式,可以很容易地看到背景圖像。" }, "partial": { "description": "部分填充", @@ -377,11 +405,14 @@ "title": "儲存", "help": "儲存修改至OpenStreetMap,讓其他用戶看見。", "no_changes": "沒有修改需要儲存。", + "error": "嘗試儲存時發生了故障", + "status_code": "伺服器傳回的狀態碼{code}", "unknown_error_details": "請確定你已經連上網路。", "uploading": "正在上載修改至OpenStreetMap。", "unsaved_changes": "你有未儲存的編輯", "conflict": { "header": "解決編輯衝突", + "count": "在{total}中有{num}個衝突 ", "previous": "< 上一個", "next": "下一個 >", "keep_local": "保留我的", @@ -389,20 +420,31 @@ "restore": "復原", "delete": "放棄資料", "download_changes": "下載你做的變動", - "done": "所有衝突解決!" + "done": "所有衝突已解決!", + "help": "其它使用者修改了一些你修改過的圖徵。\n點擊下面每個項目去顯示衝突的詳細信息,並選擇是否保持\n你的修改或其他用戶的修改。\n" + } + }, + "merge_remote_changes": { + "conflict": { + "deleted": "這個物件已被 {user} 刪除.", + "location": "這個物件被你和{user}移動了.", + "nodelist": "節點已被你和{user}改變了.", + "memberlist": "關係成員已被你和{user}改變了。", + "tags": "你改變了 {tag} 標籤為 \"{local}\" 並且 {user} 更改它為 \"{remote}\"。" } }, "success": { "edited_osm": "已編輯了OSM!", "just_edited": "您剛剛編輯了OpenStreetMap!", "view_on_osm": "於OSM上顯示", - "facebook": "分享到 Facebook", - "twitter": "分享到 Twitter", - "google": "分享到 Google+", - "help_html": "您的修改應會在數分鐘內在\"標準\"圖層中出現。其他圖層和某些物件則可能會花較長時間。\n(details).\n" + "facebook": "分享至 Facebook", + "twitter": "分享至 Twitter", + "google": "分享至 Google+", + "help_html": "您的修改應會在數分鐘內在「標準」圖層中出現。其他圖層和某些物件則可能會花較長時間。\n(詳細資料)。\n" }, "confirm": { - "okay": "確定" + "okay": "確定", + "cancel": "取消" }, "splash": { "welcome": "歡迎使用iD OpenStreetMap編輯器", @@ -449,9 +491,10 @@ }, "help": { "title": "說明文件", - "help": "# 幫助\n\n這是[開放街圖](http://www.openstreetmap.org/)的編輯器。\n開放街圖是自由及可編輯的世界地圖。您可以用這個編輯器來添加和更新您所在區域的地圖資料,令這個開源和開放資料的世界地圖變得更好。\n\n您在地圖上所做的編輯,將會讓所有使用開放街圖的人看到。為了編輯,您需要先[登入](https://www.openstreetmap.org/login)。\n\n[iD編輯器](http://ideditor.com/) 採用開源方式合作開發的專案, [原始碼可在GitHub找到](https://github.com/openstreetmap/iD)。\n", + "help": "# 說明\n\n這是[開放街圖](http://www.openstreetmap.org/)的編輯器。\n開放街圖是自由及可編輯的世界地圖。您可以用這個編輯器來添加和更新您所在區域的地圖資料,令這個開源和開放資料的世界地圖變得更好。\n\n您在地圖上所做的編輯,將會讓所有使用開放街圖的人看到。為了編輯,您需要先[登入](https://www.openstreetmap.org/login)。\n\n[iD編輯器](http://ideditor.com/) 採用開源方式合作開發的專案, [原始碼可在GitHub找到](https://github.com/openstreetmap/iD)。\n", "editing_saving": "# 編輯和儲存\n\n這個編輯器主要為線上編輯而設計,而你現在透過網站使用它。\n\n### 選擇物件\n\n要選擇地圖上一個物件,如道路或興趣點,可於地圖上按該物件。這將令所選取的物件以高亮顯示,並開啟詳情的側邊欄,以及顯示可進行操作的功能選單。\n\n要選擇多個物件,可以按住'Shift'鍵,在地圖上按下並拖曳。這將選擇所顯示的方框內的所有物件,讓您可同時操作多個物件。\n\n### 儲存編輯\n\n當您修改地圖,如編輯道路,建築物和場所,這些修改都會先儲存在本機上而未被上傳,直到您將它們上傳到伺服器為止。如果您在這段時間做出錯誤的修改,也不用擔心,您可以按下“撤消”按鈕修改,亦可按下“重做”按鈕,重做經撤消的修改。\n\n按下“儲存”按鈕以完成編輯 - 例如,如果您已經完成了某市鎮的一個區域,而想開始一個新區域。您將有機會覆核你做了什麼編輯,而如果看起來您作出了一些不適當的改變,編輯器將會提供有用的建議及警告。\n\n如果一切看起來不錯,您可以輸入簡短的註釋,解釋您作出的修改,並再按下“儲存”以向[OpenStreetMap.org](http://www.openstreetmap.org/)發布這些修改。這些修改將可被其他OpenStreetMap用戶看見,並可供其他用戶在其上作進一步修訂及完善。\n\n如果您不能一次就完成您的編輯,您可以離開編輯器視窗,日後(在相同的瀏覽器和電腦上)回來,編輯器將讓你選擇是否希望恢復上一次未完成的編輯。\n", "roads": "# 道路\n\n您可以利用這個編輯器創建,修復,及刪除道路。道路可以有很多種:行人路徑,公路,步道,單車路線等等 - 任何經常使用的路段都可製圖。\n\n### 選擇道路\n\n按圖上的道路以選擇該道路。道路的輪廓會以高亮度顯示,而同時地圖上會出現小工具選單,旁邊亦會彈出面板,顯示有關該道路的資訊。\n\n### 修改道路\n\n您或會經常注意到,道路並非對齊在背景中顯示的衛星圖像或GPS軌跡。您可以調整這些道路,讓他們位於正確的位置。\n\n首先,按您想修訂的道路。這會將道路以高亮度顯示,並顯示沿著這道路的節點,你可以拖曳這些節點到更好的位置。如果您想增加細節,可以為道路添加新的節點,點擊兩下道路上沒有節點的部分,便可在該處増加節點。\n\n如果道路連接到另一條道路,但在地圖上並未妥善連接,你可以拖曳道路的其中一個節點到另一條道路上,以連接兩條道路。連接好道路,對地圖非常重要,特別是對提供駕駛指示的應用程序而言,是必要的。\n\n您也可以按下'移動'工具或按`M`快速鍵,來移動整條道路,然後按一下以完成移動的動作。\n\n### 刪除道路\n\n如果一條道路完全不正確 - 您看到它在衛星圖像上不存在,並最好實地證實它根本不存在 - 您可以將道路刪除,這會從地圖中將之移除。刪除物件時務必要小心 - 像任何其他的編輯,結果會被大家看見,而衛星圖像往往會過時,因此該道路或許只是新建的。\n\n要刪除道路,您可以按住它以選擇,然後按下垃圾桶圖標,或按 ’Delete’ 鍵。\n\n### 繪製新道路\n\n發現某處應有一條道路,但地圖上沒有?按編輯器左上方的'線'按鈕,或按下`2`快速鍵,以開始繪製線段。\n\n在地圖上點擊道路的開端,以開始繪製道路。如果道路從一條現有的道路分支出來,應點擊兩者連接的地方,以開始繪製。\n\n然後按住沿著道路的點,以根據衛星影像或GPS軌跡,正確地繪製道路。如果您繪製的道路如果與另一條道路交匯,請點擊相交點以將它們連接起來。當您完成繪製後,可按兩下滑鼠或按鍵盤上的 'Return' 或 ’Enter’ 鍵。\n", + "gps": "# GPS\n\nGPS 資料是 OpenStreetMap 最可靠的資料來源. 這個編輯器支援 `.gpx` 的軌跡檔。 你可以使用智慧型手機的程式或個人 GPS 硬體去搜集。\n\n關於如何進行 GPS 資料搜集, 可參考\n[Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/)。\n\n當要使用 GPX 軌跡檔去繪圖時,你可以直接拖拉 GPX 檔案至地圖編輯器上,如果編輯器識別到軌跡檔時,它將用亮紫色把軌跡顯示在地圖上。你可以點擊右側的 'Map Data' 選單去顯示、隱藏或縮放這個軌跡所產生的圖層。\n\n這個 GPX 軌跡並沒有上傳至 OpenStreetMap,但這種方式適合於當你想把軌跡當成參考資料去繪製新的地圖時,當然你也可以[上傳軌跡至 OpenStreetMap](http://www.openstreetmap.org/trace/create)\n供其它人使用。\n", "imagery": "# 圖像\n\n空照圖是繪製地圖重要的資料來源。在畫面右方的'背景圖像設定'選單中,可選擇使用的圖像,\n他們分別為空照圖、衛星影像和其他可自由編輯的圖像資源。\n\n編輯器預設使用[Bing Maps](http://www.bing.com/maps/)的衛星圖層,\n但當您平移或縮放地圖至一個新的地理區域,或可使用新的資源。\n在一些國家,像美國、法國和丹麥,部分區域有非常高品質的圖像。\n\n圖像會與地圖數據有所偏移。如果你看見很多的道路與背景有偏移,請不要立刻將它們全部搬移以與背景刎合。相反,你可以在「背景設定」選單中,點擊下方的「校準底圖」,以調整圖像以配合現有地圖數據。 \n\n圖像有時候或會因為圖像提供者方面的誤差,與地圖資料有所偏移。\n如果您看到有很多路與背景是平移錯位的,請不要立刻將它們全部搬移以與背景刎合。\n您只需要點擊圖像設定介面底部的'校準'來調整圖像,讓它符合現有資料。\n", "addresses": "# 地址 \n\n地址是地圖中最有用的訊息之一。 \n\n雖然地址通常被視為街道的一部分,在 OpenStreetMap 中,它們是沿相關街道的建築物和地方的屬性。 \n\n您可以將地址訊息,添加到以建築物輪廓為代表、或以點為代表的地方之上。地址資料的最佳來源,是實地調查或個人知識 - 與任何其他物件一樣,嚴格禁止抄襲商業來源(如Google 地圖)的地圖資料。\n", "inspector": "# 使用檢視面板\n\n檢視面板是畫面右面的用戶界面元素,當您選擇一個物件時便會出現,讓您可編輯物件的詳細資料。\n\n### 選擇物件類型\n\n在您添加一個點、線段或區域後,您可以選擇物件的類型,例如該物件應是高速公路還是住宅區道路,是超級市場還是咖啡廳。檢視面板將顯示常用物件類型的按鈕,要找出其他物件類型,您可以在搜尋框中輸入您所要的物件類型。\n\n點選物件類型按鈕右下角的'i'字,可顯示物件類型的更多資訊。點選按鈕以選擇該類型。\n\n### 使用表格和編輯標籤\n\n在您選擇物件類型後,或選擇已經被編配類型的物件時,檢查面板會顯示該物件詳細資料的欄位,\n如名稱和地址。\n\n在欄位下方,您可以點選按鈕,以添加其他詳細資料,如[維基百科](http://www.wikipedia.org/)的條目資料,輪椅可否到達,以及其他更多資料。\n\n在面板的底部,點擊'增加標籤'以添加其他任意的標籤到該物件。您可透過[Taginfo](http://taginfo.openstreetmap.org/),了解有關常用的標籤組合的更多資料。\n\n您在檢查面板所做的更改,會自動應用到地圖上。您可以隨時點選'撤消'按鈕,撤消這些更改。\n\n### 關閉檢查面板\n\n您可以點選檢查面板右上角的關閉按鈕、按’Escape'鍵,或在地圖上點一下,以關閉檢查面板。\n", @@ -471,7 +514,7 @@ "add": "點可以用來表示像是商店、餐廳與古蹟之類的物件,它們標示一個特定位置,並且描述那裡有什麼。 **點擊「點」按鈕以新增一點**", "place": "在地圖上按一下,可以地圖上放上新增的一點。 **將該點放到建築物上方**", "search": "很多不同的物件,可以用點來代表。您剛新增的點,是一間咖啡廳。**搜尋'{name}'**", - "choose": "**從列表中選擇咖啡廳。**", + "choose": "**從清單中選擇咖啡廳。**", "describe": "這個點現在標示為咖啡廳,透過物件編輯器,我們可以加入更多相關資訊。 **新增一個名稱**", "close": "點選關閉按鈕就可以關閉物件編輯器。 **關閉物件編輯器**", "reselect": "很多時候,所需的點已經存在,但會錯誤或者描述不完整。我們可以編輯現有的點。**選擇您剛創建的點**", @@ -485,16 +528,16 @@ "corner": "透過將節點放到區域的界線上,可繪製區域。**將起始節點置於遊樂場的其中一角**", "place": "放置更多節點,以勾畫該區域。按起始節點以完成繪製區域。**繪製一區域以代表遊樂場**", "search": "**搜尋'{name}'。**", - "choose": "**從列表中選擇遊樂場。**", - "describe": "**添加名稱,並關閉物件編輯器。**" + "choose": "**從清單中選擇遊樂場。**", + "describe": "**新增名稱,並關閉物件編輯器。**" }, "lines": { "title": "線", "add": "線後可用於表示如道路、鐵路以及河流。 **按下線按鈕來新增一條線段。**", "start": "**按道路末端,以開始繪製線段。**", - "intersect": "點擊以為線段添加更多的節點。在繪圖是,如有需要,您可以拖曳地圖。道路和許多其他類型的線段,是整個體系的一部分。這些線段正確地連接起來,對導航的應用程序的運作相當重要。**點擊Flower Street,建立連接這兩條線段的相交點。**", + "intersect": "點擊地圖以新增線段的其它節點。在繪圖時如有需要您可以拖曳地圖。道路和許多其他類型的線段是整個路網的一部分,這些線段正確地連接對導航程式的運作相當重要。**點擊Flower Street以建立這兩條線段的相交點。**", "finish": "再次按最後的節點,可完成繪製線段。**完成繪製此道路**", - "road": "**從列表中選擇道路。**", + "road": "**從清單中選擇道路。**", "residential": "道路有不同種類,最常見的為住宅區道路。**選擇住宅區道路**", "describe": "**命名道路,並關閉物件編輯器。**", "restart": "這道路須與Flower Street相交。", @@ -543,39 +586,39 @@ "fields": { "access": { "label": "通行限制", - "placeholder": "未知種類", - "types": { - "access": "一般", - "foot": "步行", - "motor_vehicle": "汽機車", - "bicycle": "單車", - "horse": "馬匹" - }, "options": { - "yes": { - "title": "可使用", - "description": "按法律及路權; 有權使用" + "designated": { + "description": "只限標誌指定或特定本地法律容許人士進入", + "title": "指定" + }, + "destination": { + "description": "只限前往目的地人士進入", + "title": "目的地" }, "no": { - "title": "禁止進入", - "description": "禁止一般公眾進入" + "description": "禁止一般公眾進入", + "title": "禁止進入" }, "permissive": { - "title": "獲許可進入", - "description": "容許進入,直至擁有者撇回許可" + "description": "容許進入,直至擁有者撇回許可", + "title": "獲許可進入" }, "private": { - "title": "私人", - "description": "須擁有者個別批准,方可進入" - }, - "designated": { - "title": "指定", - "description": "只限標誌指定或特定本地法律容許人士進入" + "description": "須擁有者個別批准,方可進入", + "title": "私人" }, - "destination": { - "title": "目的地", - "description": "只限前往目的地人士進入" + "yes": { + "description": "按法律及路權; 有權使用", + "title": "可使用" } + }, + "placeholder": "未知種類", + "types": { + "access": "一般", + "bicycle": "腳踏車", + "foot": "步行", + "horse": "馬匹", + "motor_vehicle": "汽機車" } }, "access_simple": { @@ -588,19 +631,19 @@ "address": { "label": "地址", "placeholders": { + "city": "城市", + "country": "國家", + "district": "區", + "hamlet": "村莊", "housename": "房屋名稱", "housenumber": "123", - "street": "街道", - "city": "城市", - "postcode": "郵遞區號", "place": "地方", - "hamlet": "村莊", - "suburb": "細區", - "subdistrict": "分區", - "district": "區", + "postcode": "郵遞區號", "province": "省", "state": "州", - "country": "國家" + "street": "街道", + "subdistrict": "分區", + "suburb": "細區" } }, "admin_level": { @@ -612,9 +655,9 @@ "aerialway/access": { "label": "通行方向", "options": { + "both": "雙向", "entry": "進入", - "exit": "離開", - "both": "雙向" + "exit": "離開" } }, "aerialway/bubble": { @@ -638,9 +681,9 @@ "aerialway/summer/access": { "label": "通行方向(夏季)", "options": { + "both": "雙向", "entry": "進入", - "exit": "離開", - "both": "雙向" + "exit": "離開" } }, "aeroway": { @@ -689,29 +732,29 @@ "cardinal_direction": { "label": "方向", "options": { - "N": "北", "E": "東", - "S": "南", - "W": "西", - "NE": "東北", - "SE": "東南", - "SW": "西南", - "NW": "西北", - "NNE": "東北偏北", "ENE": "東北偏東", "ESE": "東南偏東", + "N": "北", + "NE": "東北", + "NNE": "東北偏北", + "NNW": "西北偏北", + "NW": "西北", + "S": "南", + "SE": "東南", "SSE": "東南偏南", "SSW": "西南偏南", - "WSW": "西南偏西", + "SW": "西南", + "W": "西", "WNW": "西北偏西", - "NNW": "西北偏北" + "WSW": "西南偏西" } }, "clock_direction": { "label": "方向", "options": { - "clockwise": "順時針", - "anticlockwise": "反時針" + "anticlockwise": "反時針", + "clockwise": "順時針" } }, "collection_times": { @@ -720,6 +763,9 @@ "construction": { "label": "種類" }, + "content": { + "label": "內容" + }, "country": { "label": "國家" }, @@ -755,13 +801,13 @@ }, "electrified": { "label": "電氣化", - "placeholder": "架空電車線, 第三軌供電", "options": { "contact_line": "架空電車線", + "no": "否", "rail": "第三軌供電", - "yes": "是 (未指名)", - "no": "否" - } + "yes": "是 (未指名)" + }, + "placeholder": "架空電車線, 第三軌供電" }, "elevation": { "label": "海拔" @@ -786,13 +832,13 @@ "label": "種類", "options": { "pillar": "支柱式/地面式", + "pond": "池塘", "underground": "地下式", - "wall": "牆", - "pond": "池塘" + "wall": "牆" } }, "fixme": { - "label": "Fix Me" + "label": "修復我" }, "fuel": { "label": "加油站" @@ -829,12 +875,12 @@ }, "gender": { "label": "性別", - "placeholder": "未知", "options": { + "female": "女性", "male": "男性", - "female": "有性", "unisex": "男女通用" - } + }, + "placeholder": "未知" }, "generator/method": { "label": "方法" @@ -875,21 +921,21 @@ "incline_steps": { "label": "斜坡", "options": { - "up": "上坡", - "down": "下坡" + "down": "下坡", + "up": "上坡" } }, "information": { "label": "種類" }, "internet_access": { - "label": "網際網絡連接", + "label": "網際網絡存取", "options": { - "yes": "有", "no": "無", - "wlan": "無線網絡", + "terminal": "終端", "wired": "有線網絡", - "terminal": "終端" + "wlan": "無線網絡", + "yes": "有" } }, "lamp_type": { @@ -908,20 +954,20 @@ "leaf_cycle": { "label": "落葉期", "options": { - "evergreen": "長青樹", "deciduous": "落葉林", - "semi_evergreen": "半長青林", + "evergreen": "長青樹", + "mixed": "混合林", "semi_deciduous": "半落葉林", - "mixed": "混合林" + "semi_evergreen": "半長青林" } }, "leaf_type": { "label": "葉子種類", "options": { "broadleaved": "闊葉林", - "needleleaved": "針葉林", + "leafless": "落葉林", "mixed": "混合林", - "leafless": "落葉林" + "needleleaved": "針葉林" } }, "leisure": { @@ -949,7 +995,6 @@ }, "mtb/scale": { "label": "越越單車難度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: 堅實的碩石土路,沒有障礙物,大灣曲", "1": "1: 鋪面部分鬆散,有小的障礙物,大彎曲", @@ -958,22 +1003,22 @@ "4": "4: 路面鬆散或是充滿石頭,有危險的髮夾彎", "5": "5: 騎乘等級最困難,路面充滿石頭,或者是路面坍方", "6": "6: 除非是技巧極好的越野車手,否則並不適合騎乘" - } + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { "label": "國際登山車協會路徑難度", - "placeholder": "容易, 中等, 困難...", "options": { "0": "最簡單 (白圈)", "1": "容易 (綠圈)", "2": "中等 (藍方塊)", "3": "困難 (黑色鑽石型)", "4": "極端困難 (雙重黑色鑽石型)" - } + }, + "placeholder": "容易, 中等, 困難..." }, "mtb/scale/uphill": { "label": "登山車上坡難度", - "placeholder": "0, 1, 2, 3...", "options": { "0": "0: 平均坡度小於 10%,有碎石/夯實的地面,沒有障礙物", "1": "1: 平均坡度小於15%,有碎石/夯實的地面,有些許障礙物", @@ -981,7 +1026,8 @@ "3": "3: 平均坡度25%,多變的平面,拳頭大的石頭/樹牆", "4": "4: 平均坡度小於30%,很糟的路面狀況,大石頭/樹牆", "5": "5: 很陡,單車得牽行或扛車" - } + }, + "placeholder": "0, 1, 2, 3..." }, "name": { "label": "名稱", @@ -1002,17 +1048,17 @@ "oneway": { "label": "單行道", "options": { + "no": "否", "undefined": "假設為否", - "yes": "是", - "no": "否" + "yes": "是" } }, "oneway_yes": { "label": "單程路", "options": { + "no": "否", "undefined": "假設為是", - "yes": "是", - "no": "否" + "yes": "是" } }, "opening_hours": { @@ -1031,13 +1077,13 @@ "parking": { "label": "種類", "options": { - "surface": "平面", - "multi-storey": "立體", - "underground": "地下", - "sheds": "有覆蓋", "carports": "車棚", "garage_boxes": "垃圾桶", - "lane": "路邊" + "lane": "路邊", + "multi-storey": "立體", + "sheds": "有覆蓋", + "surface": "平面", + "underground": "地下" } }, "phone": { @@ -1046,24 +1092,24 @@ }, "piste/difficulty": { "label": "難度", - "placeholder": "容易, 中階, 進階", "options": { - "novice": "新手 (教學)", - "easy": "容易 (綠圈)", - "intermediate": "中階 (藍方塊)", "advanced": "進階 (黑色鑽石型)", + "easy": "容易 (綠圈)", "expert": "專家 (雙重黑色鑽石型)", + "extreme": "極端困難 (需要攀登工具)", "freeride": "自由滑行 (場地外)", - "extreme": "極端困難 (需要攀登工具)" - } + "intermediate": "中階 (藍方塊)", + "novice": "新手 (教學)" + }, + "placeholder": "容易, 中階, 進階" }, "piste/grooming": { "label": "雪道種類", "options": { - "classic": "經典", - "mogul": "蒙古人", "backcountry": "偏遠地區", + "classic": "經典", "classic+skating": "經典和滑行", + "mogul": "蒙古人", "scooter": "滑行艇/雪車", "skating": "滑行" } @@ -1072,14 +1118,14 @@ "label": "種類", "options": { "downhill": "滑降", + "hike": "徒步旅行", + "ice_skate": "冰刀", "nordic": "北歐人", + "playground": "練習場", "skitour": "滑雪旅行", "sled": "雪橇", - "hike": "徒步旅行", "sleigh": "簡易雪橇", - "ice_skate": "冰刀", - "snow_park": "滑雪場", - "playground": "練習場" + "snow_park": "滑雪場" } }, "place": { @@ -1091,6 +1137,9 @@ "power": { "label": "種類" }, + "power_supply": { + "label": "電源供應器" + }, "railway": { "label": "種類" }, @@ -1129,15 +1178,18 @@ }, "sac_scale": { "label": "旅行難度", - "placeholder": "登山旅行、越嶺縱走...", "options": { - "hiking": "T1:徒步旅行", - "mountain_hiking": "T2:登山旅行", - "demanding_mountain_hiking": "T3:進階登山旅行", "alpine_hiking": "T4:高山旅行", "demanding_alpine_hiking": "T5:進階高山旅行", - "difficult_alpine_hiking": "T6:艱困高山旅行" - } + "demanding_mountain_hiking": "T3:進階登山旅行", + "difficult_alpine_hiking": "T6:艱困高山旅行", + "hiking": "T1:徒步旅行", + "mountain_hiking": "T2:登山旅行" + }, + "placeholder": "登山旅行、越嶺縱走..." + }, + "sanitary_dump_station": { + "label": "廁所處理方式" }, "seasonal": { "label": "季節性" @@ -1148,26 +1200,26 @@ "service/bicycle/chain_tool": { "label": "固定架", "options": { + "no": "否", "undefined": "預設為否", - "yes": "是", - "no": "否" + "yes": "是" } }, "service/bicycle/pump": { "label": "打氣設備", "options": { + "no": "沒有", "undefined": "預設沒有", - "yes": "有", - "no": "沒有" + "yes": "有" } }, "service_rail": { "label": "服務類型", "options": { - "spur": "支線", - "yard": "調度軌", + "crossover": "橫渡線", "siding": "側線", - "crossover": "橫渡線" + "spur": "支線", + "yard": "調度軌" } }, "shelter": { @@ -1184,29 +1236,29 @@ }, "smoking": { "label": "吸煙", - "placeholder": "禁止, 分離空間, 允許", "options": { - "no": "禁止吸煙", - "separated": "無隔離空間的吸煙區", + "dedicated": "吸煙者專屬 (例如吸煙者酒吧)", "isolated": "有隔離空間的吸煙區", + "no": "禁止吸煙", "outside": "室外允許吸煙", - "yes": "允許吸煙", - "dedicated": "吸煙者專屬 (例如吸煙者酒吧)" - } + "separated": "無隔離空間的吸煙區", + "yes": "允許吸煙" + }, + "placeholder": "禁止, 分離空間, 允許" }, "smoothness": { "label": "平順度", - "placeholder": "軸承、輪胎、越野", "options": { + "bad": "強化輪胎:休旅自行車、汽車、人力車", "excellent": "軸承:溜冰、滑板", "good": "細輪:競速自行車", + "horrible": "越野:高負重越野車輛", + "impassable": "無法通行 / 輪車無法通行", "intermediate": "輪胎:通勤腳踏車、輪椅、滑板車", - "bad": "強化輪胎:休旅自行車、汽車、人力車", "very_bad": "輕量化:低負重越野車輛", - "horrible": "越野:高負重越野車輛", - "very_horrible": "越野專用:拖拉機、全地形越野車", - "impassable": "無法通行 / 輪車無法通行" - } + "very_horrible": "越野專用:拖拉機、全地形越野車" + }, + "placeholder": "軸承、輪胎、越野" }, "social_facility_for": { "label": "服務對象", @@ -1226,14 +1278,14 @@ }, "structure": { "label": "人造結構物", - "placeholder": "未知種類", "options": { "bridge": "橋樑", - "tunnel": "隧道", - "embankment": "堤", "cutting": "挖土", - "ford": "淺灘" - } + "embankment": "堤", + "ford": "淺灘", + "tunnel": "隧道" + }, + "placeholder": "未知種類" }, "studio_type": { "label": "種類" @@ -1252,20 +1304,20 @@ }, "takeaway": { "label": "外帶", - "placeholder": "可以, 不行, 只能外帶 ...", "options": { - "yes": "可以", "no": "不行", - "only": "只能外帶" - } + "only": "只能外帶", + "yes": "可以" + }, + "placeholder": "可以, 不行, 只能外帶 ..." }, "toilets/disposal": { "label": "處置方式", "options": { - "flush": "沖水式", - "pitlatrine": "旱廁/翼坑", + "bucket": "尿筒", "chemical": "化工", - "bucket": "尿筒" + "flush": "沖水式", + "pitlatrine": "旱廁/翼坑" } }, "tourism": { @@ -1276,26 +1328,26 @@ }, "tracktype": { "label": "產業道路種類", - "placeholder": "堅硬地面、硬物鋪面、軟鋪面", "options": { "grade1": "剛性鋪面:鋪面為柏油、水泥或由剛性材質密實組成", "grade2": "近剛性鋪面:礫石與石塊混合柔性材質", "grade3": "混合剛性與柔性材質", "grade4": "近柔性鋪面:土壤、砂土與草地混合其他剛性材質", "grade5": "柔性鋪面:只有土壤、砂土與草地" - } + }, + "placeholder": "堅硬地面、硬物鋪面、軟鋪面" }, "trail_visibility": { "label": "路徑可見度", - "placeholder": "良好、尚可、稍差...", "options": { + "bad": "差勁:沒有標示、路徑有時候消失", "excellent": "良好:路徑明顯或標示充分", "good": "尚可:有標示但可能不明顯", - "intermediate": "略差:標示稀少、路徑大致可見", - "bad": "差勁:沒有標示、路徑有時候消失", "horrible": "可怕:路徑常消失、需要部分定向能力", + "intermediate": "略差:標示稀少、路徑大致可見", "no": "無:沒有路徑、需具備完整的定向能力" - } + }, + "placeholder": "良好、尚可、稍差..." }, "trees": { "label": "樹" @@ -1309,6 +1361,9 @@ "water": { "label": "種類" }, + "water_point": { + "label": "取水點" + }, "waterway": { "label": "種類" }, @@ -1450,6 +1505,9 @@ "name": "自行車維修站", "terms": "提供自行車維修服務的地方" }, + "amenity/biergarten": { + "name": "啤酒花園" + }, "amenity/boat_rental": { "name": "小艇出租", "terms": "租船處,小艇租賃" @@ -2555,8 +2613,8 @@ "terms": "遊樂場" }, "leisure/running_track": { - "name": "賽跑跑道", - "terms": "跑道,跑步跑道" + "name": "操場", + "terms": "跑道,跑步跑道,賽跑跑道" }, "leisure/slipway": { "name": "船架滑道", @@ -2575,8 +2633,8 @@ "terms": "泳池" }, "leisure/track": { - "name": "賽道(非摩托賽道)", - "terms": "賽道(非摩托賽道),操場" + "name": "操場(非摩托賽道)", + "terms": "賽道(非摩托賽道)" }, "line": { "name": "線", @@ -2606,10 +2664,16 @@ "name": "燈塔", "terms": "燈塔" }, + "man_made/mast": { + "name": "天線桿" + }, "man_made/observation": { "name": "瞭望塔", "terms": "瞭望塔" }, + "man_made/petroleum_well": { + "name": "油井" + }, "man_made/pier": { "name": "碼頭", "terms": "碼頭" @@ -2618,6 +2682,12 @@ "name": "管道", "terms": "管線" }, + "man_made/silo": { + "name": "地窖" + }, + "man_made/storage_tank": { + "name": "存放槽" + }, "man_made/survey_point": { "name": "測量點", "terms": "三角點,土地測量點" @@ -2838,6 +2908,9 @@ "name": "城市", "terms": "城市" }, + "place/farm": { + "name": "農場" + }, "place/hamlet": { "name": "村莊", "terms": "村鎮" @@ -3626,6 +3699,9 @@ "name": "渠", "terms": "灌溉水圳" }, + "waterway/fuel": { + "name": "船用加油站" + }, "waterway/river": { "name": "河流", "terms": "河川" diff --git a/vendor/assets/iD/iD/locales/zh.json b/vendor/assets/iD/iD/locales/zh.json index eb1e2d4f4..ef08cea5b 100644 --- a/vendor/assets/iD/iD/locales/zh.json +++ b/vendor/assets/iD/iD/locales/zh.json @@ -184,7 +184,6 @@ "commit": { "title": "保存更改", "description_placeholder": "简要说明你的贡献", - "message_label": "提交说明", "upload_explanation": "你上传的更新将会显示在所有使用 OpenStreetMap 数据的地图上。", "upload_explanation_with_user": "你 {user} 上传的更新将会显示在所有使用 OpenStreetMap 数据的地图上。", "save": "保存", @@ -352,46 +351,46 @@ "fields": { "access": { "label": "通行限制", - "placeholder": "未知种类", - "types": { - "access": "普通", - "foot": "步行", - "motor_vehicle": "汽车", - "bicycle": "自行车", - "horse": "马匹" - }, "options": { - "yes": { - "title": "允许的", - "description": "按法律及路权,有权使用" + "designated": { + "description": "只限标志指定或特定本地法律容许人士进入", + "title": "特定的" + }, + "destination": { + "description": "只限前往目的地人士进入", + "title": "目的地" }, "no": { - "title": "禁止的", - "description": "禁止一般公众进入" + "description": "禁止一般公众进入", + "title": "禁止的" }, "permissive": { - "title": "获许可进入", - "description": "容许进入,直至拥有者撇回许可" + "description": "容许进入,直至拥有者撇回许可", + "title": "获许可进入" }, "private": { - "title": "私人", - "description": "须拥有者个别批准,方可进入" - }, - "designated": { - "title": "特定的", - "description": "只限标志指定或特定本地法律容许人士进入" + "description": "须拥有者个别批准,方可进入", + "title": "私人" }, - "destination": { - "title": "目的地", - "description": "只限前往目的地人士进入" + "yes": { + "description": "按法律及路权,有权使用", + "title": "允许的" } + }, + "placeholder": "未知种类", + "types": { + "access": "普通", + "bicycle": "自行车", + "foot": "步行", + "horse": "马匹", + "motor_vehicle": "汽车" } }, "address": { "label": "地址", "placeholders": { - "street": "街道", - "city": "城市" + "city": "城市", + "street": "街道" } }, "admin_level": { @@ -428,8 +427,8 @@ "clock_direction": { "label": "方向", "options": { - "clockwise": "顺时针", - "anticlockwise": "逆时针" + "anticlockwise": "逆时针", + "clockwise": "顺时针" } }, "collection_times": { @@ -493,9 +492,9 @@ "internet_access": { "label": "互联网接入", "options": { - "wlan": "无线网络", + "terminal": "终端", "wired": "有线网络", - "terminal": "终端" + "wlan": "无线网络" } }, "landuse": { @@ -601,13 +600,13 @@ }, "structure": { "label": "结构", - "placeholder": "未知种类", "options": { "bridge": "桥", - "tunnel": "隧道", + "cutting": "开凿", "embankment": "堤岸", - "cutting": "开凿" - } + "tunnel": "隧道" + }, + "placeholder": "未知种类" }, "supervised": { "label": "监督" diff --git a/vendor/assets/iD/imagery.js b/vendor/assets/iD/imagery.js index 9ed1c476b..0f94a2fe5 100644 --- a/vendor/assets/iD/imagery.js +++ b/vendor/assets/iD/imagery.js @@ -1333,5582 +1333,11144 @@ iD.data.imagery = [ "terms_text": "© osm-tools.org & OpenStreetMap contributors, CC-BY-SA" }, { - "name": "Freemap.sk Car", + "name": "Czech CUZK:KM tiles proxy", "type": "tms", - "template": "http://t{switch:1,2,3,4}.freemap.sk/A/{zoom}/{x}/{y}.jpeg", + "template": "http://osm-{switch:a,b,c}.zby.cz/tiles_cuzk.php/{zoom}/{x}/{y}.png", "scaleExtent": [ - 8, - 16 + 13, + 18 ], "polygon": [ [ [ - 19.83682, - 49.25529 + 15.0063684, + 49.0177392 ], [ - 19.80075, - 49.42385 + 15.1559854, + 49.0013828 ], [ - 19.60437, - 49.48058 + 15.190896, + 48.9424551 ], [ - 19.49179, - 49.63961 + 15.3105895, + 48.9882938 ], [ - 19.21831, - 49.52604 + 15.4053469, + 48.9752013 ], [ - 19.16778, - 49.42521 + 15.5400022, + 48.9162426 ], [ - 19.00308, - 49.42236 + 15.7145553, + 48.8670572 ], [ - 18.97611, - 49.5308 + 15.8342488, + 48.880178 ], [ - 18.54685, - 49.51425 + 15.968904, + 48.8178233 ], [ - 18.31432, - 49.33818 + 16.0885976, + 48.7455261 ], [ - 18.15913, - 49.2961 + 16.3978059, + 48.7455261 ], [ - 18.05564, - 49.11134 + 16.4875761, + 48.8145394 ], [ - 17.56396, - 48.84938 + 16.6721036, + 48.7784014 ], [ - 17.17929, - 48.88816 + 16.6820781, + 48.7356594 ], [ - 17.058, - 48.81105 + 16.9015163, + 48.7126294 ], [ - 16.90426, - 48.61947 + 16.9464014, + 48.6237005 ], [ - 16.79685, - 48.38561 + 17.1159672, + 48.8375227 ], [ - 17.06762, - 48.01116 + 17.2107246, + 48.880178 ], [ - 17.32787, - 47.97749 + 17.4052266, + 48.8178233 ], [ - 17.51699, - 47.82535 + 17.4800351, + 48.8539329 ], [ - 17.74776, - 47.73093 + 17.5299074, + 48.8178233 ], [ - 18.29515, - 47.72075 + 17.7044605, + 48.8670572 ], [ - 18.67959, - 47.75541 + 17.8141796, + 48.9359033 ], [ - 18.89755, - 47.81203 + 17.8840008, + 48.9359033 ], [ - 18.79463, - 47.88245 + 17.9438476, + 49.0210099 ], [ - 18.84318, - 48.04046 + 18.0635412, + 49.0340903 ], [ - 19.46212, - 48.05333 + 18.1184007, + 49.0994409 ], [ - 19.62064, - 48.22938 + 18.1981964, + 49.3047337 ], [ - 19.89585, - 48.09387 + 18.3877112, + 49.3339917 ], [ - 20.33766, - 48.2643 + 18.577226, + 49.5091747 ], [ - 20.55395, - 48.52358 + 18.7567663, + 49.4994587 ], [ - 20.82335, - 48.55714 + 18.8465365, + 49.5253637 ], [ - 21.10271, - 48.47096 + 18.8764598, + 49.5706645 ], [ - 21.45863, - 48.55513 + 18.7966641, + 49.693412 ], [ - 21.74536, - 48.31435 + 18.64206, + 49.7095399 ], [ - 22.15293, - 48.37179 + 18.5872004, + 49.8351543 ], [ - 22.61255, - 49.08914 + 18.6121366, + 49.8833809 ], [ - 22.09997, - 49.23814 + 18.5622643, + 49.9347695 ], [ - 21.9686, - 49.36363 + 18.512392, + 49.9058702 ], [ - 21.6244, - 49.46989 + 18.362775, + 49.9540261 ], [ - 21.06873, - 49.46402 + 18.3278644, + 49.9219275 ], [ - 20.94336, - 49.31088 + 18.2630304, + 49.9732751 ], [ - 20.73052, - 49.44006 + 18.1184007, + 50.0053395 ], [ - 20.22804, - 49.41714 + 18.0635412, + 50.075806 ], [ - 20.05234, - 49.23052 + 17.9139242, + 49.9796897 ], [ - 19.83682, - 49.25529 - ] - ] - ], - "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." - }, - { - "name": "Freemap.sk Cyclo", - "type": "tms", - "template": "http://t{switch:1,2,3,4}.freemap.sk/C/{zoom}/{x}/{y}.jpeg", - "scaleExtent": [ - 8, - 16 - ], - "polygon": [ - [ + 17.779269, + 50.0309757 + ], [ - 19.83682, - 49.25529 + 17.714435, + 50.1237921 ], [ - 19.80075, - 49.42385 + 17.6047159, + 50.1653411 ], [ - 19.60437, - 49.48058 + 17.7593201, + 50.21962 ], [ - 19.49179, - 49.63961 + 17.7343839, + 50.3439092 ], [ - 19.21831, - 49.52604 + 17.6396265, + 50.2802117 ], [ - 19.16778, - 49.42521 + 17.3802905, + 50.2802117 ], [ - 19.00308, - 49.42236 + 17.3503671, + 50.3439092 ], [ - 18.97611, - 49.5308 + 17.2805459, + 50.3375433 ], [ - 18.54685, - 49.51425 + 17.1857885, + 50.4075214 ], [ - 18.31432, - 49.33818 + 16.9015163, + 50.4615247 ], [ - 18.15913, - 49.2961 + 16.8666057, + 50.4138779 ], [ - 18.05564, - 49.11134 + 16.9663503, + 50.3184404 ], [ - 17.56396, - 48.84938 + 17.0361715, + 50.2323826 ], [ - 17.17929, - 48.88816 + 16.8366823, + 50.21962 ], [ - 17.058, - 48.81105 + 16.7120015, + 50.1046034 ], [ - 16.90426, - 48.61947 + 16.5823335, + 50.1589513 ], [ - 16.79685, - 48.38561 + 16.5623846, + 50.2387626 ], [ - 17.06762, - 48.01116 + 16.4327166, + 50.3375433 ], [ - 17.32787, - 47.97749 + 16.3529209, + 50.3916263 ], [ - 17.51699, - 47.82535 + 16.2781124, + 50.3916263 ], [ - 17.74776, - 47.73093 + 16.2082911, + 50.4456477 ], [ - 18.29515, - 47.72075 + 16.3978059, + 50.5344899 ], [ - 18.67959, - 47.75541 + 16.4476782, + 50.5978464 ], [ - 18.89755, - 47.81203 + 16.3529209, + 50.670601 ], [ - 18.79463, - 47.88245 + 16.2382145, + 50.6769221 ], [ - 18.84318, - 48.04046 + 16.2182656, + 50.6326561 ], [ - 19.46212, - 48.05333 + 16.1284954, + 50.6832425 ], [ - 19.62064, - 48.22938 + 16.0486997, + 50.6073425 ], [ - 19.89585, - 48.09387 + 15.988853, + 50.7021983 ], [ - 20.33766, - 48.2643 + 15.8741467, + 50.6832425 ], [ - 20.55395, - 48.52358 + 15.8292616, + 50.7653291 ], [ - 20.82335, - 48.55714 + 15.729517, + 50.743243 ], [ - 21.10271, - 48.47096 + 15.450232, + 50.8157725 ], [ - 21.45863, - 48.55513 + 15.3903852, + 50.7747914 ], [ - 21.74536, - 48.31435 + 15.3804108, + 50.8598659 ], [ - 22.15293, - 48.37179 + 15.2956278, + 50.8850434 ], [ - 22.61255, - 49.08914 + 15.2956278, + 50.9887568 ], [ - 22.09997, - 49.23814 + 15.1709471, + 51.0201394 ], [ - 21.9686, - 49.36363 + 14.9914067, + 51.0013124 ], [ - 21.6244, - 49.46989 + 15.0063684, + 50.8881896 ], [ - 21.06873, - 49.46402 + 14.8417898, + 50.8756034 ], [ - 20.94336, - 49.31088 + 14.7969047, + 50.8252246 ], [ - 20.73052, - 49.44006 + 14.6323261, + 50.8567177 ], [ - 20.22804, - 49.41714 + 14.6622495, + 50.9353576 ], [ - 20.05234, - 49.23052 + 14.5724793, + 50.9227841 ], [ - 19.83682, - 49.25529 - ] - ] - ], - "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." - }, - { - "name": "Freemap.sk Hiking", - "type": "tms", - "template": "http://t{switch:1,2,3,4}.freemap.sk/T/{zoom}/{x}/{y}.jpeg", - "scaleExtent": [ - 8, - 16 - ], - "polygon": [ - [ + 14.6123772, + 50.9856174 + ], [ - 19.83682, - 49.25529 + 14.4976708, + 51.0483657 ], [ - 19.80075, - 49.42385 + 14.4178751, + 51.0232765 ], [ - 19.60437, - 49.48058 + 14.3081561, + 51.0671736 ], [ - 19.49179, - 49.63961 + 14.2532965, + 51.0044508 ], [ - 19.21831, - 49.52604 + 14.4029134, + 50.9322145 ], [ - 19.16778, - 49.42521 + 14.3729901, + 50.897627 ], [ - 19.00308, - 49.42236 + 14.2433221, + 50.9070625 ], [ - 18.97611, - 49.5308 + 14.2084114, + 50.844123 ], [ - 18.54685, - 49.51425 + 14.0338583, + 50.8126214 ], [ - 18.31432, - 49.33818 + 13.9789988, + 50.8252246 ], [ - 18.15913, - 49.2961 + 13.9041903, + 50.7968626 ], [ - 18.05564, - 49.11134 + 13.8742669, + 50.740087 ], [ - 17.56396, - 48.84938 + 13.5351352, + 50.7243038 ], [ - 17.17929, - 48.88816 + 13.530148, + 50.6579561 ], [ - 17.058, - 48.81105 + 13.4703012, + 50.6136722 ], [ - 16.90426, - 48.61947 + 13.3905055, + 50.664279 ], [ - 16.79685, - 48.38561 + 13.3256715, + 50.5883483 ], [ - 17.06762, - 48.01116 + 13.250863, + 50.6105074 ], [ - 17.32787, - 47.97749 + 13.1960035, + 50.5059517 ], [ - 17.51699, - 47.82535 + 13.0513738, + 50.5218084 ], [ - 17.74776, - 47.73093 + 12.9665909, + 50.4106997 ], [ - 18.29515, - 47.72075 + 12.8269484, + 50.4710483 ], [ - 18.67959, - 47.75541 + 12.7022676, + 50.4138779 ], [ - 18.89755, - 47.81203 + 12.5077656, + 50.401164 ], [ - 18.79463, - 47.88245 + 12.343187, + 50.2547088 ], [ - 18.84318, - 48.04046 + 12.323238, + 50.1845054 ], [ - 19.46212, - 48.05333 + 12.2484296, + 50.2738373 ], [ - 19.62064, - 48.22938 + 12.1736211, + 50.3311765 ], [ - 19.89585, - 48.09387 + 12.0988126, + 50.33436 ], [ - 20.33766, - 48.2643 + 12.1187616, + 50.25152 ], [ - 20.55395, - 48.52358 + 12.2234934, + 50.1653411 ], [ - 20.82335, - 48.55714 + 12.2035445, + 50.1237921 ], [ - 21.10271, - 48.47096 + 12.5027784, + 49.9732751 ], [ - 21.45863, - 48.55513 + 12.4778422, + 49.9379795 ], [ - 21.74536, - 48.31435 + 12.5476634, + 49.9155052 ], [ - 22.15293, - 48.37179 + 12.4678677, + 49.8029766 ], [ - 22.61255, - 49.08914 + 12.408021, + 49.7611134 ], [ - 22.09997, - 49.23814 + 12.4828294, + 49.6869593 ], [ - 21.9686, - 49.36363 + 12.5327017, + 49.6869593 ], [ - 21.6244, - 49.46989 + 12.5177401, + 49.6288466 ], [ - 21.06873, - 49.46402 + 12.6075102, + 49.5415474 ], [ - 20.94336, - 49.31088 + 12.6723442, + 49.4378793 ], [ - 20.73052, - 49.44006 + 12.8119867, + 49.3469896 ], [ - 20.22804, - 49.41714 + 12.9466419, + 49.3437405 ], [ - 20.05234, - 49.23052 + 13.2309141, + 49.1288206 ], [ - 19.83682, - 49.25529 - ] - ] - ], - "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." - }, - { - "name": "Freemap.sk Ski", - "type": "tms", - "template": "http://t{switch:1,2,3,4}.freemap.sk/K/{zoom}/{x}/{y}.jpeg", - "scaleExtent": [ - 8, - 16 - ], - "polygon": [ - [ + 13.3256715, + 49.1059712 + ], [ - 19.83682, - 49.25529 + 13.4353906, + 49.0438984 ], [ - 19.80075, - 49.42385 + 13.4154417, + 48.9948387 ], [ - 19.60437, - 49.48058 + 13.5002246, + 48.949006 ], [ - 19.49179, - 49.63961 + 13.5650586, + 48.9882938 ], [ - 19.21831, - 49.52604 + 13.6847522, + 48.8834577 ], [ - 19.16778, - 49.42521 + 13.7445989, + 48.9031312 ], [ - 19.00308, - 49.42236 + 13.8243946, + 48.7751149 ], [ - 18.97611, - 49.5308 + 13.8992031, + 48.7751149 ], [ - 18.54685, - 49.51425 + 14.0587945, + 48.676418 ], [ - 18.31432, - 49.33818 + 14.0438328, + 48.6302932 ], [ - 18.15913, - 49.2961 + 14.1435774, + 48.5907241 ], [ - 18.05564, - 49.11134 + 14.3729901, + 48.5610269 ], [ - 17.56396, - 48.84938 + 14.4827091, + 48.6500662 ], [ - 17.17929, - 48.88816 + 14.5774665, + 48.607215 ], [ - 17.058, - 48.81105 + 14.6273389, + 48.6335892 ], [ - 16.90426, - 48.61947 + 14.7071346, + 48.5808269 ], [ - 16.79685, - 48.38561 + 14.7470324, + 48.7027561 ], [ - 17.06762, - 48.01116 + 14.8118664, + 48.7389485 ], [ - 17.32787, - 47.97749 + 14.8168536, + 48.794831 ], [ - 17.51699, - 47.82535 + 14.9864195, + 48.7652539 + ] + ] + ], + "overlay": true + }, + { + "name": "Czech ÚHUL:ORTOFOTO tiles proxy", + "type": "tms", + "template": "http://osm-{switch:a,b,c}.zby.cz/tiles_uhul.php/{zoom}/{x}/{y}.jpg", + "scaleExtent": [ + 13, + 18 + ], + "polygon": [ + [ + [ + 15.0063684, + 49.0177392 ], [ - 17.74776, - 47.73093 + 15.1559854, + 49.0013828 ], [ - 18.29515, - 47.72075 + 15.190896, + 48.9424551 ], [ - 18.67959, - 47.75541 + 15.3105895, + 48.9882938 ], [ - 18.89755, - 47.81203 + 15.4053469, + 48.9752013 ], [ - 18.79463, - 47.88245 + 15.5400022, + 48.9162426 ], [ - 18.84318, - 48.04046 + 15.7145553, + 48.8670572 ], [ - 19.46212, - 48.05333 + 15.8342488, + 48.880178 ], [ - 19.62064, - 48.22938 + 15.968904, + 48.8178233 ], [ - 19.89585, - 48.09387 + 16.0885976, + 48.7455261 ], [ - 20.33766, - 48.2643 + 16.3978059, + 48.7455261 ], [ - 20.55395, - 48.52358 + 16.4875761, + 48.8145394 ], [ - 20.82335, - 48.55714 + 16.6721036, + 48.7784014 ], [ - 21.10271, - 48.47096 + 16.6820781, + 48.7356594 ], [ - 21.45863, - 48.55513 + 16.9015163, + 48.7126294 ], [ - 21.74536, - 48.31435 + 16.9464014, + 48.6237005 ], [ - 22.15293, - 48.37179 + 17.1159672, + 48.8375227 ], [ - 22.61255, - 49.08914 + 17.2107246, + 48.880178 ], [ - 22.09997, - 49.23814 + 17.4052266, + 48.8178233 ], [ - 21.9686, - 49.36363 + 17.4800351, + 48.8539329 ], [ - 21.6244, - 49.46989 + 17.5299074, + 48.8178233 ], [ - 21.06873, - 49.46402 + 17.7044605, + 48.8670572 ], [ - 20.94336, - 49.31088 + 17.8141796, + 48.9359033 ], [ - 20.73052, - 49.44006 + 17.8840008, + 48.9359033 ], [ - 20.22804, - 49.41714 + 17.9438476, + 49.0210099 ], [ - 20.05234, - 49.23052 + 18.0635412, + 49.0340903 ], [ - 19.83682, - 49.25529 - ] - ] - ], - "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." - }, - { - "name": "Fugro (Denmark)", - "type": "tms", - "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/fugro2005/{zoom}/{x}/{y}.png", - "scaleExtent": [ - 0, - 19 - ], - "polygon": [ - [ + 18.1184007, + 49.0994409 + ], [ - 8.3743941, - 54.9551655 + 18.1981964, + 49.3047337 ], [ - 8.3683809, - 55.4042149 + 18.3877112, + 49.3339917 ], [ - 8.2103997, - 55.4039795 + 18.577226, + 49.5091747 ], [ - 8.2087314, - 55.4937345 + 18.7567663, + 49.4994587 ], [ - 8.0502655, - 55.4924731 + 18.8465365, + 49.5253637 ], [ - 8.0185123, - 56.7501399 + 18.8764598, + 49.5706645 ], [ - 8.1819161, - 56.7509948 + 18.7966641, + 49.693412 ], [ - 8.1763274, - 57.0208898 + 18.64206, + 49.7095399 ], [ - 8.3413329, - 57.0219872 + 18.5872004, + 49.8351543 ], [ - 8.3392467, - 57.1119574 + 18.6121366, + 49.8833809 ], [ - 8.5054433, - 57.1123212 + 18.5622643, + 49.9347695 ], [ - 8.5033923, - 57.2020499 + 18.512392, + 49.9058702 ], [ - 9.3316304, - 57.2027636 + 18.362775, + 49.9540261 ], [ - 9.3319079, - 57.2924835 + 18.3278644, + 49.9219275 ], [ - 9.4978864, - 57.2919578 + 18.2630304, + 49.9732751 ], [ - 9.4988593, - 57.3820608 + 18.1184007, + 50.0053395 ], [ - 9.6649749, - 57.3811615 + 18.0635412, + 50.075806 ], [ - 9.6687295, - 57.5605591 + 17.9139242, + 49.9796897 ], [ - 9.8351961, - 57.5596265 + 17.779269, + 50.0309757 ], [ - 9.8374896, - 57.6493322 + 17.714435, + 50.1237921 ], [ - 10.1725726, - 57.6462818 + 17.6047159, + 50.1653411 ], [ - 10.1754245, - 57.7367768 + 17.7593201, + 50.21962 ], [ - 10.5118282, - 57.7330269 + 17.7343839, + 50.3439092 ], [ - 10.5152095, - 57.8228945 + 17.6396265, + 50.2802117 ], [ - 10.6834853, - 57.8207722 + 17.3802905, + 50.2802117 ], [ - 10.6751613, - 57.6412021 + 17.3503671, + 50.3439092 ], [ - 10.5077045, - 57.6433097 + 17.2805459, + 50.3375433 ], [ - 10.5039992, - 57.5535088 + 17.1857885, + 50.4075214 ], [ - 10.671038, - 57.5514113 + 16.9015163, + 50.4615247 ], [ - 10.6507805, - 57.1024538 + 16.8666057, + 50.4138779 ], [ - 10.4857673, - 57.1045138 - ], - [ - 10.4786236, - 56.9249051 + 16.9663503, + 50.3184404 ], [ - 10.3143981, - 56.9267573 + 17.0361715, + 50.2323826 ], [ - 10.3112341, - 56.8369269 + 16.8366823, + 50.21962 ], [ - 10.4750295, - 56.83509 + 16.7120015, + 50.1046034 ], [ - 10.4649016, - 56.5656681 + 16.5823335, + 50.1589513 ], [ - 10.9524239, - 56.5589761 + 16.5623846, + 50.2387626 ], [ - 10.9479249, - 56.4692243 + 16.4327166, + 50.3375433 ], [ - 11.1099335, - 56.4664675 + 16.3529209, + 50.3916263 ], [ - 11.1052639, - 56.376833 + 16.2781124, + 50.3916263 ], [ - 10.9429901, - 56.3795284 + 16.2082911, + 50.4456477 ], [ - 10.9341235, - 56.1994768 + 16.3978059, + 50.5344899 ], [ - 10.7719685, - 56.2020244 + 16.4476782, + 50.5978464 ], [ - 10.7694751, - 56.1120103 + 16.3529209, + 50.670601 ], [ - 10.6079695, - 56.1150259 + 16.2382145, + 50.6769221 ], [ - 10.4466742, - 56.116717 + 16.2182656, + 50.6326561 ], [ - 10.2865948, - 56.118675 + 16.1284954, + 50.6832425 ], [ - 10.2831527, - 56.0281851 + 16.0486997, + 50.6073425 ], [ - 10.4439274, - 56.0270388 + 15.988853, + 50.7021983 ], [ - 10.4417713, - 55.7579243 + 15.8741467, + 50.6832425 ], [ - 10.4334961, - 55.6693533 + 15.8292616, + 50.7653291 ], [ - 10.743814, - 55.6646861 + 15.729517, + 50.743243 ], [ - 10.743814, - 55.5712253 + 15.450232, + 50.8157725 ], [ - 10.8969041, - 55.5712253 + 15.3903852, + 50.7747914 ], [ - 10.9051793, - 55.3953852 + 15.3804108, + 50.8598659 ], [ - 11.0613726, - 55.3812841 + 15.2956278, + 50.8850434 ], [ - 11.0593038, - 55.1124061 + 15.2956278, + 50.9887568 ], [ - 11.0458567, - 55.0318621 + 15.1709471, + 51.0201394 ], [ - 11.2030844, - 55.0247474 + 14.9914067, + 51.0013124 ], [ - 11.2030844, - 55.117139 + 15.0063684, + 50.8881896 ], [ - 11.0593038, - 55.1124061 + 14.8417898, + 50.8756034 ], [ - 11.0613726, - 55.3812841 + 14.7969047, + 50.8252246 ], [ - 11.0789572, - 55.5712253 + 14.6323261, + 50.8567177 ], [ - 10.8969041, - 55.5712253 + 14.6622495, + 50.9353576 ], [ - 10.9258671, - 55.6670198 + 14.5724793, + 50.9227841 ], [ - 10.743814, - 55.6646861 + 14.6123772, + 50.9856174 ], [ - 10.7562267, - 55.7579243 + 14.4976708, + 51.0483657 ], [ - 10.4417713, - 55.7579243 + 14.4178751, + 51.0232765 ], [ - 10.4439274, - 56.0270388 + 14.3081561, + 51.0671736 ], [ - 10.4466742, - 56.116717 + 14.2532965, + 51.0044508 ], [ - 10.6079695, - 56.1150259 + 14.4029134, + 50.9322145 ], [ - 10.6052053, - 56.0247462 + 14.3729901, + 50.897627 ], [ - 10.9258671, - 56.0201215 + 14.2433221, + 50.9070625 ], [ - 10.9197132, - 55.9309388 + 14.2084114, + 50.844123 ], [ - 11.0802782, - 55.92792 + 14.0338583, + 50.8126214 ], [ - 11.0858066, - 56.0178284 + 13.9789988, + 50.8252246 ], [ - 11.7265047, - 56.005058 + 13.9041903, + 50.7968626 ], [ - 11.7319981, - 56.0952142 + 13.8742669, + 50.740087 ], [ - 12.0540333, - 56.0871256 + 13.5351352, + 50.7243038 ], [ - 12.0608477, - 56.1762576 + 13.530148, + 50.6579561 ], [ - 12.7023469, - 56.1594405 + 13.4703012, + 50.6136722 ], [ - 12.6611131, - 55.7114318 + 13.3905055, + 50.664279 ], [ - 12.9792318, - 55.7014026 + 13.3256715, + 50.5883483 ], [ - 12.9612912, - 55.5217294 + 13.250863, + 50.6105074 ], [ - 12.3268659, - 55.5412096 + 13.1960035, + 50.5059517 ], [ - 12.3206071, - 55.4513655 + 13.0513738, + 50.5218084 ], [ - 12.4778226, - 55.447067 + 12.9665909, + 50.4106997 ], [ - 12.4702432, - 55.3570479 + 12.8269484, + 50.4710483 ], [ - 12.6269738, - 55.3523837 + 12.7022676, + 50.4138779 ], [ - 12.6200898, - 55.2632576 + 12.5077656, + 50.401164 ], [ - 12.4627339, - 55.26722 + 12.343187, + 50.2547088 ], [ - 12.4552949, - 55.1778223 + 12.323238, + 50.1845054 ], [ - 12.2987046, - 55.1822303 + 12.2484296, + 50.2738373 ], [ - 12.2897344, - 55.0923641 + 12.1736211, + 50.3311765 ], [ - 12.6048608, - 55.0832904 + 12.0988126, + 50.33436 ], [ - 12.5872011, - 54.9036285 + 12.1187616, + 50.25152 ], [ - 12.2766618, - 54.9119031 + 12.2234934, + 50.1653411 ], [ - 12.2610181, - 54.7331602 + 12.2035445, + 50.1237921 ], [ - 12.1070691, - 54.7378161 + 12.5027784, + 49.9732751 ], [ - 12.0858621, - 54.4681655 + 12.4778422, + 49.9379795 ], [ - 11.7794953, - 54.4753579 + 12.5476634, + 49.9155052 ], [ - 11.7837381, - 54.5654783 + 12.4678677, + 49.8029766 ], [ - 11.1658525, - 54.5782155 + 12.408021, + 49.7611134 ], [ - 11.1706443, - 54.6686508 + 12.4828294, + 49.6869593 ], [ - 10.8617173, - 54.6733956 + 12.5327017, + 49.6869593 ], [ - 10.8651245, - 54.7634667 + 12.5177401, + 49.6288466 ], [ - 10.7713646, - 54.7643888 + 12.6075102, + 49.5415474 ], [ - 10.7707276, - 54.7372807 + 12.6723442, + 49.4378793 ], [ - 10.7551428, - 54.7375776 + 12.8119867, + 49.3469896 ], [ - 10.7544039, - 54.7195666 + 12.9466419, + 49.3437405 ], [ - 10.7389074, - 54.7197588 + 13.2309141, + 49.1288206 ], [ - 10.7384368, - 54.7108482 + 13.3256715, + 49.1059712 ], [ - 10.7074486, - 54.7113045 + 13.4353906, + 49.0438984 ], [ - 10.7041094, - 54.6756741 + 13.4154417, + 48.9948387 ], [ - 10.5510973, - 54.6781698 + 13.5002246, + 48.949006 ], [ - 10.5547184, - 54.7670245 + 13.5650586, + 48.9882938 ], [ - 10.2423994, - 54.7705935 + 13.6847522, + 48.8834577 ], [ - 10.2459845, - 54.8604673 + 13.7445989, + 48.9031312 ], [ - 10.0902268, - 54.8622134 + 13.8243946, + 48.7751149 ], [ - 10.0873731, - 54.7723851 + 13.8992031, + 48.7751149 ], [ - 9.1555798, - 54.7769557 + 14.0587945, + 48.676418 ], [ - 9.1562752, - 54.8675369 + 14.0438328, + 48.6302932 ], [ - 8.5321973, - 54.8663765 + 14.1435774, + 48.5907241 ], [ - 8.531432, - 54.95516 - ] - ], - [ - [ - 11.4577738, - 56.819554 + 14.3729901, + 48.5610269 ], [ - 11.7849181, - 56.8127385 + 14.4827091, + 48.6500662 ], [ - 11.7716715, - 56.6332796 + 14.5774665, + 48.607215 ], [ - 11.4459621, - 56.6401087 - ] - ], - [ - [ - 11.3274736, - 57.3612962 + 14.6273389, + 48.6335892 ], [ - 11.3161808, - 57.1818004 + 14.7071346, + 48.5808269 ], [ - 11.1508692, - 57.1847276 + 14.7470324, + 48.7027561 ], [ - 11.1456628, - 57.094962 + 14.8118664, + 48.7389485 ], [ - 10.8157703, - 57.1001693 + 14.8168536, + 48.794831 ], [ - 10.8290599, - 57.3695272 + 14.9864195, + 48.7652539 ] - ], + ] + ], + "terms_text": "Ortofoto public domain ÚHUL, year 2000" + }, + { + "name": "Freemap.sk Car", + "type": "tms", + "template": "http://t{switch:1,2,3,4}.freemap.sk/A/{zoom}/{x}/{y}.jpeg", + "scaleExtent": [ + 8, + 16 + ], + "polygon": [ [ [ - 11.5843266, - 56.2777928 + 19.83682, + 49.25529 ], [ - 11.5782882, - 56.1880397 + 19.80075, + 49.42385 ], [ - 11.7392309, - 56.1845765 + 19.60437, + 49.48058 ], [ - 11.7456428, - 56.2743186 - ] - ], - [ + 19.49179, + 49.63961 + ], [ - 14.6825922, - 55.3639405 + 19.21831, + 49.52604 ], [ - 14.8395247, + 19.16778, + 49.42521 + ], + [ + 19.00308, + 49.42236 + ], + [ + 18.97611, + 49.5308 + ], + [ + 18.54685, + 49.51425 + ], + [ + 18.31432, + 49.33818 + ], + [ + 18.15913, + 49.2961 + ], + [ + 18.05564, + 49.11134 + ], + [ + 17.56396, + 48.84938 + ], + [ + 17.17929, + 48.88816 + ], + [ + 17.058, + 48.81105 + ], + [ + 16.90426, + 48.61947 + ], + [ + 16.79685, + 48.38561 + ], + [ + 17.06762, + 48.01116 + ], + [ + 17.32787, + 47.97749 + ], + [ + 17.51699, + 47.82535 + ], + [ + 17.74776, + 47.73093 + ], + [ + 18.29515, + 47.72075 + ], + [ + 18.67959, + 47.75541 + ], + [ + 18.89755, + 47.81203 + ], + [ + 18.79463, + 47.88245 + ], + [ + 18.84318, + 48.04046 + ], + [ + 19.46212, + 48.05333 + ], + [ + 19.62064, + 48.22938 + ], + [ + 19.89585, + 48.09387 + ], + [ + 20.33766, + 48.2643 + ], + [ + 20.55395, + 48.52358 + ], + [ + 20.82335, + 48.55714 + ], + [ + 21.10271, + 48.47096 + ], + [ + 21.45863, + 48.55513 + ], + [ + 21.74536, + 48.31435 + ], + [ + 22.15293, + 48.37179 + ], + [ + 22.61255, + 49.08914 + ], + [ + 22.09997, + 49.23814 + ], + [ + 21.9686, + 49.36363 + ], + [ + 21.6244, + 49.46989 + ], + [ + 21.06873, + 49.46402 + ], + [ + 20.94336, + 49.31088 + ], + [ + 20.73052, + 49.44006 + ], + [ + 20.22804, + 49.41714 + ], + [ + 20.05234, + 49.23052 + ], + [ + 19.83682, + 49.25529 + ] + ] + ], + "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." + }, + { + "name": "Freemap.sk Cyclo", + "type": "tms", + "template": "http://t{switch:1,2,3,4}.freemap.sk/C/{zoom}/{x}/{y}.jpeg", + "scaleExtent": [ + 8, + 16 + ], + "polygon": [ + [ + [ + 19.83682, + 49.25529 + ], + [ + 19.80075, + 49.42385 + ], + [ + 19.60437, + 49.48058 + ], + [ + 19.49179, + 49.63961 + ], + [ + 19.21831, + 49.52604 + ], + [ + 19.16778, + 49.42521 + ], + [ + 19.00308, + 49.42236 + ], + [ + 18.97611, + 49.5308 + ], + [ + 18.54685, + 49.51425 + ], + [ + 18.31432, + 49.33818 + ], + [ + 18.15913, + 49.2961 + ], + [ + 18.05564, + 49.11134 + ], + [ + 17.56396, + 48.84938 + ], + [ + 17.17929, + 48.88816 + ], + [ + 17.058, + 48.81105 + ], + [ + 16.90426, + 48.61947 + ], + [ + 16.79685, + 48.38561 + ], + [ + 17.06762, + 48.01116 + ], + [ + 17.32787, + 47.97749 + ], + [ + 17.51699, + 47.82535 + ], + [ + 17.74776, + 47.73093 + ], + [ + 18.29515, + 47.72075 + ], + [ + 18.67959, + 47.75541 + ], + [ + 18.89755, + 47.81203 + ], + [ + 18.79463, + 47.88245 + ], + [ + 18.84318, + 48.04046 + ], + [ + 19.46212, + 48.05333 + ], + [ + 19.62064, + 48.22938 + ], + [ + 19.89585, + 48.09387 + ], + [ + 20.33766, + 48.2643 + ], + [ + 20.55395, + 48.52358 + ], + [ + 20.82335, + 48.55714 + ], + [ + 21.10271, + 48.47096 + ], + [ + 21.45863, + 48.55513 + ], + [ + 21.74536, + 48.31435 + ], + [ + 22.15293, + 48.37179 + ], + [ + 22.61255, + 49.08914 + ], + [ + 22.09997, + 49.23814 + ], + [ + 21.9686, + 49.36363 + ], + [ + 21.6244, + 49.46989 + ], + [ + 21.06873, + 49.46402 + ], + [ + 20.94336, + 49.31088 + ], + [ + 20.73052, + 49.44006 + ], + [ + 20.22804, + 49.41714 + ], + [ + 20.05234, + 49.23052 + ], + [ + 19.83682, + 49.25529 + ] + ] + ], + "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." + }, + { + "name": "Freemap.sk Hiking", + "type": "tms", + "template": "http://t{switch:1,2,3,4}.freemap.sk/T/{zoom}/{x}/{y}.jpeg", + "scaleExtent": [ + 8, + 16 + ], + "polygon": [ + [ + [ + 19.83682, + 49.25529 + ], + [ + 19.80075, + 49.42385 + ], + [ + 19.60437, + 49.48058 + ], + [ + 19.49179, + 49.63961 + ], + [ + 19.21831, + 49.52604 + ], + [ + 19.16778, + 49.42521 + ], + [ + 19.00308, + 49.42236 + ], + [ + 18.97611, + 49.5308 + ], + [ + 18.54685, + 49.51425 + ], + [ + 18.31432, + 49.33818 + ], + [ + 18.15913, + 49.2961 + ], + [ + 18.05564, + 49.11134 + ], + [ + 17.56396, + 48.84938 + ], + [ + 17.17929, + 48.88816 + ], + [ + 17.058, + 48.81105 + ], + [ + 16.90426, + 48.61947 + ], + [ + 16.79685, + 48.38561 + ], + [ + 17.06762, + 48.01116 + ], + [ + 17.32787, + 47.97749 + ], + [ + 17.51699, + 47.82535 + ], + [ + 17.74776, + 47.73093 + ], + [ + 18.29515, + 47.72075 + ], + [ + 18.67959, + 47.75541 + ], + [ + 18.89755, + 47.81203 + ], + [ + 18.79463, + 47.88245 + ], + [ + 18.84318, + 48.04046 + ], + [ + 19.46212, + 48.05333 + ], + [ + 19.62064, + 48.22938 + ], + [ + 19.89585, + 48.09387 + ], + [ + 20.33766, + 48.2643 + ], + [ + 20.55395, + 48.52358 + ], + [ + 20.82335, + 48.55714 + ], + [ + 21.10271, + 48.47096 + ], + [ + 21.45863, + 48.55513 + ], + [ + 21.74536, + 48.31435 + ], + [ + 22.15293, + 48.37179 + ], + [ + 22.61255, + 49.08914 + ], + [ + 22.09997, + 49.23814 + ], + [ + 21.9686, + 49.36363 + ], + [ + 21.6244, + 49.46989 + ], + [ + 21.06873, + 49.46402 + ], + [ + 20.94336, + 49.31088 + ], + [ + 20.73052, + 49.44006 + ], + [ + 20.22804, + 49.41714 + ], + [ + 20.05234, + 49.23052 + ], + [ + 19.83682, + 49.25529 + ] + ] + ], + "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." + }, + { + "name": "Freemap.sk Ski", + "type": "tms", + "template": "http://t{switch:1,2,3,4}.freemap.sk/K/{zoom}/{x}/{y}.jpeg", + "scaleExtent": [ + 8, + 16 + ], + "polygon": [ + [ + [ + 19.83682, + 49.25529 + ], + [ + 19.80075, + 49.42385 + ], + [ + 19.60437, + 49.48058 + ], + [ + 19.49179, + 49.63961 + ], + [ + 19.21831, + 49.52604 + ], + [ + 19.16778, + 49.42521 + ], + [ + 19.00308, + 49.42236 + ], + [ + 18.97611, + 49.5308 + ], + [ + 18.54685, + 49.51425 + ], + [ + 18.31432, + 49.33818 + ], + [ + 18.15913, + 49.2961 + ], + [ + 18.05564, + 49.11134 + ], + [ + 17.56396, + 48.84938 + ], + [ + 17.17929, + 48.88816 + ], + [ + 17.058, + 48.81105 + ], + [ + 16.90426, + 48.61947 + ], + [ + 16.79685, + 48.38561 + ], + [ + 17.06762, + 48.01116 + ], + [ + 17.32787, + 47.97749 + ], + [ + 17.51699, + 47.82535 + ], + [ + 17.74776, + 47.73093 + ], + [ + 18.29515, + 47.72075 + ], + [ + 18.67959, + 47.75541 + ], + [ + 18.89755, + 47.81203 + ], + [ + 18.79463, + 47.88245 + ], + [ + 18.84318, + 48.04046 + ], + [ + 19.46212, + 48.05333 + ], + [ + 19.62064, + 48.22938 + ], + [ + 19.89585, + 48.09387 + ], + [ + 20.33766, + 48.2643 + ], + [ + 20.55395, + 48.52358 + ], + [ + 20.82335, + 48.55714 + ], + [ + 21.10271, + 48.47096 + ], + [ + 21.45863, + 48.55513 + ], + [ + 21.74536, + 48.31435 + ], + [ + 22.15293, + 48.37179 + ], + [ + 22.61255, + 49.08914 + ], + [ + 22.09997, + 49.23814 + ], + [ + 21.9686, + 49.36363 + ], + [ + 21.6244, + 49.46989 + ], + [ + 21.06873, + 49.46402 + ], + [ + 20.94336, + 49.31088 + ], + [ + 20.73052, + 49.44006 + ], + [ + 20.22804, + 49.41714 + ], + [ + 20.05234, + 49.23052 + ], + [ + 19.83682, + 49.25529 + ] + ] + ], + "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved." + }, + { + "name": "Fugro (Denmark)", + "type": "tms", + "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/fugro2005/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + 8.3743941, + 54.9551655 + ], + [ + 8.3683809, + 55.4042149 + ], + [ + 8.2103997, + 55.4039795 + ], + [ + 8.2087314, + 55.4937345 + ], + [ + 8.0502655, + 55.4924731 + ], + [ + 8.0185123, + 56.7501399 + ], + [ + 8.1819161, + 56.7509948 + ], + [ + 8.1763274, + 57.0208898 + ], + [ + 8.3413329, + 57.0219872 + ], + [ + 8.3392467, + 57.1119574 + ], + [ + 8.5054433, + 57.1123212 + ], + [ + 8.5033923, + 57.2020499 + ], + [ + 9.3316304, + 57.2027636 + ], + [ + 9.3319079, + 57.2924835 + ], + [ + 9.4978864, + 57.2919578 + ], + [ + 9.4988593, + 57.3820608 + ], + [ + 9.6649749, + 57.3811615 + ], + [ + 9.6687295, + 57.5605591 + ], + [ + 9.8351961, + 57.5596265 + ], + [ + 9.8374896, + 57.6493322 + ], + [ + 10.1725726, + 57.6462818 + ], + [ + 10.1754245, + 57.7367768 + ], + [ + 10.5118282, + 57.7330269 + ], + [ + 10.5152095, + 57.8228945 + ], + [ + 10.6834853, + 57.8207722 + ], + [ + 10.6751613, + 57.6412021 + ], + [ + 10.5077045, + 57.6433097 + ], + [ + 10.5039992, + 57.5535088 + ], + [ + 10.671038, + 57.5514113 + ], + [ + 10.6507805, + 57.1024538 + ], + [ + 10.4857673, + 57.1045138 + ], + [ + 10.4786236, + 56.9249051 + ], + [ + 10.3143981, + 56.9267573 + ], + [ + 10.3112341, + 56.8369269 + ], + [ + 10.4750295, + 56.83509 + ], + [ + 10.4649016, + 56.5656681 + ], + [ + 10.9524239, + 56.5589761 + ], + [ + 10.9479249, + 56.4692243 + ], + [ + 11.1099335, + 56.4664675 + ], + [ + 11.1052639, + 56.376833 + ], + [ + 10.9429901, + 56.3795284 + ], + [ + 10.9341235, + 56.1994768 + ], + [ + 10.7719685, + 56.2020244 + ], + [ + 10.7694751, + 56.1120103 + ], + [ + 10.6079695, + 56.1150259 + ], + [ + 10.4466742, + 56.116717 + ], + [ + 10.2865948, + 56.118675 + ], + [ + 10.2831527, + 56.0281851 + ], + [ + 10.4439274, + 56.0270388 + ], + [ + 10.4417713, + 55.7579243 + ], + [ + 10.4334961, + 55.6693533 + ], + [ + 10.743814, + 55.6646861 + ], + [ + 10.743814, + 55.5712253 + ], + [ + 10.8969041, + 55.5712253 + ], + [ + 10.9051793, + 55.3953852 + ], + [ + 11.0613726, + 55.3812841 + ], + [ + 11.0593038, + 55.1124061 + ], + [ + 11.0458567, + 55.0318621 + ], + [ + 11.2030844, + 55.0247474 + ], + [ + 11.2030844, + 55.117139 + ], + [ + 11.0593038, + 55.1124061 + ], + [ + 11.0613726, + 55.3812841 + ], + [ + 11.0789572, + 55.5712253 + ], + [ + 10.8969041, + 55.5712253 + ], + [ + 10.9258671, + 55.6670198 + ], + [ + 10.743814, + 55.6646861 + ], + [ + 10.7562267, + 55.7579243 + ], + [ + 10.4417713, + 55.7579243 + ], + [ + 10.4439274, + 56.0270388 + ], + [ + 10.4466742, + 56.116717 + ], + [ + 10.6079695, + 56.1150259 + ], + [ + 10.6052053, + 56.0247462 + ], + [ + 10.9258671, + 56.0201215 + ], + [ + 10.9197132, + 55.9309388 + ], + [ + 11.0802782, + 55.92792 + ], + [ + 11.0858066, + 56.0178284 + ], + [ + 11.7265047, + 56.005058 + ], + [ + 11.7319981, + 56.0952142 + ], + [ + 12.0540333, + 56.0871256 + ], + [ + 12.0608477, + 56.1762576 + ], + [ + 12.7023469, + 56.1594405 + ], + [ + 12.6611131, + 55.7114318 + ], + [ + 12.9792318, + 55.7014026 + ], + [ + 12.9612912, + 55.5217294 + ], + [ + 12.3268659, + 55.5412096 + ], + [ + 12.3206071, + 55.4513655 + ], + [ + 12.4778226, + 55.447067 + ], + [ + 12.4702432, + 55.3570479 + ], + [ + 12.6269738, + 55.3523837 + ], + [ + 12.6200898, + 55.2632576 + ], + [ + 12.4627339, + 55.26722 + ], + [ + 12.4552949, + 55.1778223 + ], + [ + 12.2987046, + 55.1822303 + ], + [ + 12.2897344, + 55.0923641 + ], + [ + 12.6048608, + 55.0832904 + ], + [ + 12.5872011, + 54.9036285 + ], + [ + 12.2766618, + 54.9119031 + ], + [ + 12.2610181, + 54.7331602 + ], + [ + 12.1070691, + 54.7378161 + ], + [ + 12.0858621, + 54.4681655 + ], + [ + 11.7794953, + 54.4753579 + ], + [ + 11.7837381, + 54.5654783 + ], + [ + 11.1658525, + 54.5782155 + ], + [ + 11.1706443, + 54.6686508 + ], + [ + 10.8617173, + 54.6733956 + ], + [ + 10.8651245, + 54.7634667 + ], + [ + 10.7713646, + 54.7643888 + ], + [ + 10.7707276, + 54.7372807 + ], + [ + 10.7551428, + 54.7375776 + ], + [ + 10.7544039, + 54.7195666 + ], + [ + 10.7389074, + 54.7197588 + ], + [ + 10.7384368, + 54.7108482 + ], + [ + 10.7074486, + 54.7113045 + ], + [ + 10.7041094, + 54.6756741 + ], + [ + 10.5510973, + 54.6781698 + ], + [ + 10.5547184, + 54.7670245 + ], + [ + 10.2423994, + 54.7705935 + ], + [ + 10.2459845, + 54.8604673 + ], + [ + 10.0902268, + 54.8622134 + ], + [ + 10.0873731, + 54.7723851 + ], + [ + 9.1555798, + 54.7769557 + ], + [ + 9.1562752, + 54.8675369 + ], + [ + 8.5321973, + 54.8663765 + ], + [ + 8.531432, + 54.95516 + ] + ], + [ + [ + 11.4577738, + 56.819554 + ], + [ + 11.7849181, + 56.8127385 + ], + [ + 11.7716715, + 56.6332796 + ], + [ + 11.4459621, + 56.6401087 + ] + ], + [ + [ + 11.3274736, + 57.3612962 + ], + [ + 11.3161808, + 57.1818004 + ], + [ + 11.1508692, + 57.1847276 + ], + [ + 11.1456628, + 57.094962 + ], + [ + 10.8157703, + 57.1001693 + ], + [ + 10.8290599, + 57.3695272 + ] + ], + [ + [ + 11.5843266, + 56.2777928 + ], + [ + 11.5782882, + 56.1880397 + ], + [ + 11.7392309, + 56.1845765 + ], + [ + 11.7456428, + 56.2743186 + ] + ], + [ + [ + 14.6825922, + 55.3639405 + ], + [ + 14.8395247, + 55.3565231 + ], + [ + 14.8263755, + 55.2671261 + ], + [ + 15.1393406, + 55.2517359 + ], + [ + 15.1532015, + 55.3410836 + ], + [ + 15.309925, + 55.3330556 + ], + [ + 15.295719, + 55.2437356 + ], + [ + 15.1393406, + 55.2517359 + ], + [ + 15.1255631, + 55.1623802 + ], + [ + 15.2815819, + 55.1544167 + ], + [ + 15.2535578, + 54.9757646 + ], + [ + 14.6317464, + 55.0062496 + ] + ] + ], + "terms_url": "http://wiki.openstreetmap.org/wiki/Fugro", + "terms_text": "Fugro Aerial Mapping" + }, + { + "name": "FÖMI ortofotó 2000", + "type": "tms", + "description": "Hungary", + "template": "http://e.tile.openstreetmap.hu/ortofoto2000/{zoom}/{x}/{y}.jpg", + "scaleExtent": [ + 0, + 17 + ], + "polygon": [ + [ + [ + 16.1139147, + 46.8691038 + ], + [ + 16.1789749, + 46.90662 + ], + [ + 16.2000429, + 46.9415079 + ], + [ + 16.2217547, + 46.9355441 + ], + [ + 16.2462784, + 46.9463851 + ], + [ + 16.2553226, + 46.9642125 + ], + [ + 16.2764694, + 46.9626082 + ], + [ + 16.290583, + 47.0139849 + ], + [ + 16.3016199, + 46.9992329 + ], + [ + 16.3414618, + 46.9965225 + ], + [ + 16.3505162, + 47.0106313 + ], + [ + 16.3734016, + 46.9985929 + ], + [ + 16.412765, + 47.00475 + ], + [ + 16.4332705, + 46.9927417 + ], + [ + 16.4478119, + 47.003893 + ], + [ + 16.479997, + 46.9941169 + ], + [ + 16.5121988, + 47.0011695 + ], + [ + 16.4635584, + 47.0322699 + ], + [ + 16.4478586, + 47.0227481 + ], + [ + 16.439123, + 47.029663 + ], + [ + 16.445673, + 47.038872 + ], + [ + 16.520323, + 47.056103 + ], + [ + 16.473213, + 47.0736169 + ], + [ + 16.4637199, + 47.09392 + ], + [ + 16.500798, + 47.110058 + ], + [ + 16.500035, + 47.123295 + ], + [ + 16.5295349, + 47.1287419 + ], + [ + 16.5171609, + 47.1496938 + ], + [ + 16.454951, + 47.1425878 + ], + [ + 16.4648728, + 47.1683349 + ], + [ + 16.4555643, + 47.1875584 + ], + [ + 16.4305559, + 47.1847022 + ], + [ + 16.4195013, + 47.1949147 + ], + [ + 16.4189215, + 47.2107114 + ], + [ + 16.4371293, + 47.2097043 + ], + [ + 16.4426335, + 47.2337117 + ], + [ + 16.4313127, + 47.2527554 + ], + [ + 16.4671512, + 47.2531652 + ], + [ + 16.4892319, + 47.2798885 + ], + [ + 16.4646338, + 47.3338455 + ], + [ + 16.4337002, + 47.3528101 + ], + [ + 16.458513, + 47.3670496 + ], + [ + 16.4454619, + 47.4070195 + ], + [ + 16.4831657, + 47.4093628 + ], + [ + 16.4963821, + 47.3892659 + ], + [ + 16.5170941, + 47.4100218 + ], + [ + 16.5749054, + 47.4054243 + ], + [ + 16.5807291, + 47.4191699 + ], + [ + 16.661847, + 47.455595 + ], + [ + 16.6706419, + 47.47422 + ], + [ + 16.6523395, + 47.500342 + ], + [ + 16.6895619, + 47.510161 + ], + [ + 16.7147797, + 47.540199 + ], + [ + 16.663545, + 47.567733 + ], + [ + 16.673199, + 47.6049544 + ], + [ + 16.6595343, + 47.6061018 + ], + [ + 16.652758, + 47.622852 + ], + [ + 16.6314207, + 47.6283176 + ], + [ + 16.5739108, + 47.619667 + ], + [ + 16.5147382, + 47.6461964 + ], + [ + 16.4967504, + 47.6393149 + ], + [ + 16.425464, + 47.6621679 + ], + [ + 16.4437449, + 47.674205 + ], + [ + 16.4480507, + 47.6964725 + ], + [ + 16.4746984, + 47.6811576 + ], + [ + 16.4872245, + 47.6979767 + ], + [ + 16.5521729, + 47.7225519 + ], + [ + 16.5363779, + 47.736785 + ], + [ + 16.5479799, + 47.751544 + ], + [ + 16.6095193, + 47.7603722 + ], + [ + 16.6344148, + 47.7590843 + ], + [ + 16.65729, + 47.7414879 + ], + [ + 16.7209405, + 47.7353565 + ], + [ + 16.7534062, + 47.6828165 + ], + [ + 16.8301587, + 47.681058 + ], + [ + 16.8394284, + 47.7045139 + ], + [ + 16.8668943, + 47.7211462 + ], + [ + 16.876679, + 47.6876452 + ], + [ + 17.0937421, + 47.7077706 + ], + [ + 17.0706562, + 47.7285366 + ], + [ + 17.0516019, + 47.7938499 + ], + [ + 17.0749479, + 47.8084997 + ], + [ + 17.047139, + 47.8285635 + ], + [ + 17.0519452, + 47.8377691 + ], + [ + 17.0105513, + 47.8581765 + ], + [ + 17.0163878, + 47.8673325 + ], + [ + 17.0857537, + 47.8746239 + ], + [ + 17.113171, + 47.9271605 + ], + [ + 17.0917133, + 47.9342916 + ], + [ + 17.1183782, + 47.9601083 + ], + [ + 17.094657, + 47.9708775 + ], + [ + 17.2010289, + 48.019992 + ], + [ + 17.241769, + 48.0224651 + ], + [ + 17.257955, + 47.998655 + ], + [ + 17.334651, + 47.993125 + ], + [ + 17.4029929, + 47.947849 + ], + [ + 17.4539199, + 47.8852579 + ], + [ + 17.5267369, + 47.865509 + ], + [ + 17.5675779, + 47.8151289 + ], + [ + 17.608402, + 47.8218859 + ], + [ + 17.7085789, + 47.756678 + ], + [ + 17.7798739, + 47.739487 + ], + [ + 17.8660959, + 47.74575 + ], + [ + 17.9001292, + 47.7392633 + ], + [ + 17.946867, + 47.744668 + ], + [ + 17.9708709, + 47.7578392 + ], + [ + 18.0044103, + 47.7463402 + ], + [ + 18.0380583, + 47.7576812 + ], + [ + 18.2958774, + 47.7314616 + ], + [ + 18.4540681, + 47.7651226 + ], + [ + 18.4931553, + 47.7527552 + ], + [ + 18.5590761, + 47.7659963 + ], + [ + 18.6460866, + 47.7590921 + ], + [ + 18.7260691, + 47.7890411 + ], + [ + 18.7411784, + 47.8138245 + ], + [ + 18.7920013, + 47.8230869 + ], + [ + 18.8485417, + 47.8167221 + ], + [ + 18.855876, + 47.826077 + ], + [ + 18.828014, + 47.834291 + ], + [ + 18.8135749, + 47.85555 + ], + [ + 18.76353, + 47.8716049 + ], + [ + 18.756858, + 47.896838 + ], + [ + 18.776746, + 47.955092 + ], + [ + 18.7552499, + 47.9763469 + ], + [ + 18.8157429, + 47.993442 + ], + [ + 18.819998, + 48.039676 + ], + [ + 18.833268, + 48.048239 + ], + [ + 18.8749364, + 48.0470707 + ], + [ + 18.886674, + 48.058682 + ], + [ + 18.9089819, + 48.051139 + ], + [ + 18.9439039, + 48.058865 + ], + [ + 18.9816099, + 48.0536009 + ], + [ + 19.0148639, + 48.078179 + ], + [ + 19.0585249, + 48.0573529 + ], + [ + 19.0843619, + 48.072781 + ], + [ + 19.107402, + 48.065596 + ], + [ + 19.1352889, + 48.074146 + ], + [ + 19.2413679, + 48.0536529 + ], + [ + 19.2557819, + 48.0715559 + ], + [ + 19.3031119, + 48.088711 + ], + [ + 19.3865969, + 48.091914 + ], + [ + 19.400018, + 48.082304 + ], + [ + 19.454053, + 48.101436 + ], + [ + 19.467354, + 48.083933 + ], + [ + 19.4944199, + 48.109906 + ], + [ + 19.492377, + 48.1396639 + ], + [ + 19.5128219, + 48.154663 + ], + [ + 19.504518, + 48.173443 + ], + [ + 19.528967, + 48.190358 + ], + [ + 19.526044, + 48.20313 + ], + [ + 19.577502, + 48.2160149 + ], + [ + 19.6308263, + 48.2500725 + ], + [ + 19.6445239, + 48.2391719 + ], + [ + 19.669857, + 48.239212 + ], + [ + 19.691219, + 48.203894 + ], + [ + 19.721125, + 48.201473 + ], + [ + 19.74618, + 48.2165119 + ], + [ + 19.7871629, + 48.19253 + ], + [ + 19.7987329, + 48.19482 + ], + [ + 19.8052829, + 48.183733 + ], + [ + 19.782415, + 48.165039 + ], + [ + 19.794812, + 48.153529 + ], + [ + 19.821331, + 48.169081 + ], + [ + 19.8452819, + 48.162742 + ], + [ + 19.8551729, + 48.178431 + ], + [ + 19.8601309, + 48.169409 + ], + [ + 19.898745, + 48.1663119 + ], + [ + 19.9145359, + 48.146863 + ], + [ + 19.898298, + 48.1249019 + ], + [ + 19.937383, + 48.131118 + ], + [ + 19.9743939, + 48.1660049 + ], + [ + 19.988706, + 48.1621679 + ], + [ + 20.029038, + 48.1776849 + ], + [ + 20.049449, + 48.1671999 + ], + [ + 20.0729859, + 48.179606 + ], + [ + 20.0700369, + 48.1917019 + ], + [ + 20.1340909, + 48.225182 + ], + [ + 20.1331879, + 48.253982 + ], + [ + 20.206162, + 48.250979 + ], + [ + 20.2038299, + 48.261906 + ], + [ + 20.228466, + 48.262779 + ], + [ + 20.2349469, + 48.279933 + ], + [ + 20.286858, + 48.26164 + ], + [ + 20.3257109, + 48.272794 + ], + [ + 20.3374649, + 48.301667 + ], + [ + 20.3656579, + 48.316606 + ], + [ + 20.384077, + 48.3511809 + ], + [ + 20.4098349, + 48.365857 + ], + [ + 20.402532, + 48.382565 + ], + [ + 20.4205349, + 48.403858 + ], + [ + 20.416228, + 48.418536 + ], + [ + 20.507929, + 48.489363 + ], + [ + 20.5065069, + 48.534415 + ], + [ + 20.537471, + 48.527878 + ], + [ + 20.5464939, + 48.544292 + ], + [ + 20.586595, + 48.535759 + ], + [ + 20.6538739, + 48.561413 + ], + [ + 20.836359, + 48.58284 + ], + [ + 20.8378, + 48.57421 + ], + [ + 20.8504359, + 48.5816329 + ], + [ + 20.8453301, + 48.5665046 + ], + [ + 20.8681549, + 48.551818 + ], + [ + 20.922323, + 48.559453 + ], + [ + 20.9346349, + 48.538341 + ], + [ + 20.955882, + 48.533963 + ], + [ + 20.9561979, + 48.521666 + ], + [ + 20.9815849, + 48.5177669 + ], + [ + 21.0151139, + 48.532313 + ], + [ + 21.0663209, + 48.525894 + ], + [ + 21.1174479, + 48.4910549 + ], + [ + 21.1608749, + 48.521499 + ], + [ + 21.179634, + 48.518232 + ], + [ + 21.221061, + 48.537497 + ], + [ + 21.305488, + 48.5222489 + ], + [ + 21.313377, + 48.550841 + ], + [ + 21.326875, + 48.554129 + ], + [ + 21.319384, + 48.561201 + ], + [ + 21.4154499, + 48.558951 + ], + [ + 21.4226649, + 48.578821 + ], + [ + 21.4406099, + 48.585104 + ], + [ + 21.514091, + 48.551065 + ], + [ + 21.5420199, + 48.508395 + ], + [ + 21.6139329, + 48.509416 + ], + [ + 21.6201879, + 48.469826 + ], + [ + 21.663549, + 48.417961 + ], + [ + 21.6645609, + 48.392164 + ], + [ + 21.7017409, + 48.380695 + ], + [ + 21.711871, + 48.357617 + ], + [ + 21.8174139, + 48.332787 + ], + [ + 21.8352029, + 48.3346409 + ], + [ + 21.837213, + 48.363253 + ], + [ + 21.8842979, + 48.356047 + ], + [ + 21.8848429, + 48.367539 + ], + [ + 21.897883, + 48.36256 + ], + [ + 21.8997959, + 48.3702229 + ], + [ + 21.9281859, + 48.3615969 + ], + [ + 21.9268059, + 48.370899 + ], + [ + 21.949198, + 48.378728 + ], + [ + 21.994463, + 48.377323 + ], + [ + 22.0213259, + 48.392749 + ], + [ + 22.0546049, + 48.377528 + ], + [ + 22.0764859, + 48.387241 + ], + [ + 22.086743, + 48.371564 + ], + [ + 22.1359089, + 48.380519 + ], + [ + 22.131056, + 48.3912329 + ], + [ + 22.152768, + 48.3962409 + ], + [ + 22.1561913, + 48.4093076 + ], + [ + 22.2125722, + 48.4256468 + ], + [ + 22.2371405, + 48.4100396 + ], + [ + 22.2654858, + 48.4098675 + ], + [ + 22.2398761, + 48.3870055 + ], + [ + 22.2675722, + 48.3611612 + ], + [ + 22.3178106, + 48.3545437 + ], + [ + 22.3132861, + 48.3250712 + ], + [ + 22.3372944, + 48.3079113 + ], + [ + 22.3384267, + 48.2792074 + ], + [ + 22.3847547, + 48.2339632 + ], + [ + 22.4006407, + 48.249198 + ], + [ + 22.4328384, + 48.2525166 + ], + [ + 22.456386, + 48.2423109 + ], + [ + 22.4899029, + 48.2534237 + ], + [ + 22.4972201, + 48.2395546 + ], + [ + 22.5161491, + 48.237965 + ], + [ + 22.5311088, + 48.2094282 + ], + [ + 22.5711442, + 48.1961428 + ], + [ + 22.5616362, + 48.1816066 + ], + [ + 22.5982449, + 48.144756 + ], + [ + 22.5902763, + 48.1073414 + ], + [ + 22.6754492, + 48.091997 + ], + [ + 22.7347192, + 48.119848 + ], + [ + 22.7576242, + 48.1200599 + ], + [ + 22.7703914, + 48.1090162 + ], + [ + 22.772319, + 48.1218742 + ], + [ + 22.8027688, + 48.1221112 + ], + [ + 22.8025285, + 48.1070813 + ], + [ + 22.8254256, + 48.1175119 + ], + [ + 22.8364365, + 48.080249 + ], + [ + 22.8611284, + 48.0750312 + ], + [ + 22.8677955, + 48.0524256 + ], + [ + 22.8820424, + 48.0548053 + ], + [ + 22.8659692, + 48.0113165 + ], + [ + 22.835562, + 47.9905988 + ], + [ + 22.8407599, + 47.9813636 + ], + [ + 22.8725729, + 47.9752683 + ], + [ + 22.8697274, + 47.9659593 + ], + [ + 22.8915652, + 47.9672446 + ], + [ + 22.897435, + 47.9540629 + ], + [ + 22.8473299, + 47.9077579 + ], + [ + 22.7928135, + 47.8908586 + ], + [ + 22.7586924, + 47.8941446 + ], + [ + 22.77775, + 47.8422508 + ], + [ + 22.7136344, + 47.8360928 + ], + [ + 22.6801938, + 47.7877527 + ], + [ + 22.6111171, + 47.7717455 + ], + [ + 22.5490018, + 47.7722246 + ], + [ + 22.4812121, + 47.8108886 + ], + [ + 22.4513078, + 47.803389 + ], + [ + 22.4313319, + 47.7398119 + ], + [ + 22.3566167, + 47.7486206 + ], + [ + 22.3177714, + 47.7660887 + ], + [ + 22.3176236, + 47.7433657 + ], + [ + 22.2851369, + 47.7292757 + ], + [ + 22.264325, + 47.7310675 + ], + [ + 22.2589955, + 47.6979057 + ], + [ + 22.2306796, + 47.693196 + ], + [ + 22.1796501, + 47.5916115 + ], + [ + 22.1289245, + 47.5978984 + ], + [ + 22.0942787, + 47.5583628 + ], + [ + 22.0782587, + 47.5621299 + ], + [ + 22.0534529, + 47.5474795 + ], + [ + 22.0712176, + 47.5380742 + ], + [ + 22.0617872, + 47.5288029 + ], + [ + 22.0451278, + 47.5398919 + ], + [ + 22.0367222, + 47.5326653 + ], + [ + 22.0071886, + 47.48362 + ], + [ + 22.0327909, + 47.4508372 + ], + [ + 22.0238835, + 47.3908631 + ], + [ + 22.0119849, + 47.3758016 + ], + [ + 21.9627373, + 47.381053 + ], + [ + 21.9382461, + 47.3725317 + ], + [ + 21.8777922, + 47.2857763 + ], + [ + 21.8872845, + 47.2730473 + ], + [ + 21.8534909, + 47.2397622 + ], + [ + 21.8580662, + 47.1873597 + ], + [ + 21.8124804, + 47.1667511 + ], + [ + 21.7924092, + 47.1059751 + ], + [ + 21.7268258, + 47.0983882 + ], + [ + 21.6976037, + 47.057915 + ], + [ + 21.6504151, + 47.0408303 + ], + [ + 21.6888701, + 47.0019977 + ], + [ + 21.6678744, + 46.9712337 + ], + [ + 21.6814917, + 46.9652089 + ], + [ + 21.6381964, + 46.9330487 + ], + [ + 21.5984455, + 46.9274708 + ], + [ + 21.6142857, + 46.8867275 + ], + [ + 21.6016694, + 46.8668202 + ], + [ + 21.520328, + 46.8373749 + ], + [ + 21.5186086, + 46.8000703 + ], + [ + 21.4831761, + 46.7650246 + ], + [ + 21.5263389, + 46.7393249 + ], + [ + 21.529369, + 46.7209721 + ], + [ + 21.4923253, + 46.6859652 + ], + [ + 21.4728438, + 46.6959075 + ], + [ + 21.4299047, + 46.693937 + ], + [ + 21.4309553, + 46.6781367 + ], + [ + 21.4546661, + 46.660863 + ], + [ + 21.4162375, + 46.6426231 + ], + [ + 21.4097959, + 46.6218052 + ], + [ + 21.3657038, + 46.6379501 + ], + [ + 21.3300499, + 46.6318155 + ], + [ + 21.3139733, + 46.617666 + ], + [ + 21.3012351, + 46.5908672 + ], + [ + 21.3207905, + 46.5828562 + ], + [ + 21.2743045, + 46.5407362 + ], + [ + 21.2600254, + 46.5021583 + ], + [ + 21.2744188, + 46.4767333 + ], + [ + 21.2964506, + 46.4762973 + ], + [ + 21.3174343, + 46.4507288 + ], + [ + 21.2895176, + 46.4154784 + ], + [ + 21.2963256, + 46.4069601 + ], + [ + 21.2250116, + 46.4136899 + ], + [ + 21.2064214, + 46.4033825 + ], + [ + 21.1992563, + 46.3479034 + ], + [ + 21.1762269, + 46.3357664 + ], + [ + 21.180497, + 46.3044494 + ], + [ + 21.1155437, + 46.3018529 + ], + [ + 21.1030549, + 46.2624637 + ], + [ + 21.0708792, + 46.2539014 + ], + [ + 21.0660827, + 46.2429394 + ], + [ + 21.0366237, + 46.2480392 + ], + [ + 21.0246723, + 46.2665329 + ], + [ + 20.960817, + 46.2623039 + ], + [ + 20.9465849, + 46.2793024 + ], + [ + 20.9250701, + 46.2766191 + ], + [ + 20.9218133, + 46.2618129 + ], + [ + 20.8732713, + 46.2877555 + ], + [ + 20.7756538, + 46.2759602 + ], + [ + 20.7490474, + 46.2508489 + ], + [ + 20.7618619, + 46.204563 + ], + [ + 20.727401, + 46.2077485 + ], + [ + 20.7341052, + 46.1939355 + ], + [ + 20.7140487, + 46.1660531 + ], + [ + 20.6843592, + 46.1447802 + ], + [ + 20.6549178, + 46.1497739 + ], + [ + 20.6394471, + 46.1267602 + ], + [ + 20.5450486, + 46.1790935 + ], + [ + 20.5014839, + 46.190334 + ], + [ + 20.4949436, + 46.1709908 + ], + [ + 20.4592293, + 46.1428837 + ], + [ + 20.3975133, + 46.1574709 + ], + [ + 20.3685325, + 46.1528554 + ], + [ + 20.3557074, + 46.1696256 + ], + [ + 20.2968136, + 46.1521542 + ], + [ + 20.2549024, + 46.1158522 + ], + [ + 20.2484757, + 46.1300956 + ], + [ + 20.2330132, + 46.1241668 + ], + [ + 20.1817362, + 46.1601137 + ], + [ + 20.1364966, + 46.1449476 + ], + [ + 20.1009667, + 46.1772756 + ], + [ + 20.0636156, + 46.1437275 + ], + [ + 20.0346142, + 46.1458888 + ], + [ + 20.0158072, + 46.1768354 + ], + [ + 19.9354075, + 46.1764243 + ], + [ + 19.8533469, + 46.1500005 + ], + [ + 19.8179747, + 46.1281652 + ], + [ + 19.7585403, + 46.1479754 + ], + [ + 19.6982054, + 46.1879317 + ], + [ + 19.6827672, + 46.1800388 + ], + [ + 19.661508, + 46.1904394 + ], + [ + 19.6317396, + 46.1692993 + ], + [ + 19.5676482, + 46.179106 + ], + [ + 19.5604013, + 46.1665762 + ], + [ + 19.5026585, + 46.1424492 + ], + [ + 19.5271208, + 46.1210269 + ], + [ + 19.4645033, + 46.0953827 + ], + [ + 19.4665828, + 46.0820437 + ], + [ + 19.4160037, + 46.0460453 + ], + [ + 19.3803957, + 46.0358749 + ], + [ + 19.3640923, + 46.0522965 + ], + [ + 19.2819012, + 46.0148048 + ], + [ + 19.2965348, + 45.9881173 + ], + [ + 19.2856472, + 45.9968981 + ], + [ + 19.1479857, + 45.9963445 + ], + [ + 19.1338422, + 46.0370993 + ], + [ + 19.104873, + 46.0401673 + ], + [ + 19.0660427, + 46.0001999 + ], + [ + 19.0796791, + 45.9636376 + ], + [ + 19.0059803, + 45.9590674 + ], + [ + 19.0092745, + 45.9236559 + ], + [ + 18.9061334, + 45.9353801 + ], + [ + 18.8794572, + 45.9166827 + ], + [ + 18.8647137, + 45.9208493 + ], + [ + 18.8685629, + 45.9113361 + ], + [ + 18.8276792, + 45.9051714 + ], + [ + 18.8220041, + 45.9145893 + ], + [ + 18.8075092, + 45.9036055 + ], + [ + 18.809247, + 45.8796189 + ], + [ + 18.7956242, + 45.8784488 + ], + [ + 18.7048857, + 45.9181883 + ], + [ + 18.6700246, + 45.9108439 + ], + [ + 18.6596602, + 45.9168934 + ], + [ + 18.6651348, + 45.899279 + ], + [ + 18.6412808, + 45.8890396 + ], + [ + 18.6550179, + 45.8742393 + ], + [ + 18.6277704, + 45.8733782 + ], + [ + 18.6148449, + 45.8531438 + ], + [ + 18.6236656, + 45.8398531 + ], + [ + 18.5732391, + 45.8137578 + ], + [ + 18.5749849, + 45.8004344 + ], + [ + 18.559716, + 45.8037961 + ], + [ + 18.5223504, + 45.7826858 + ], + [ + 18.4906706, + 45.7947167 + ], + [ + 18.4821905, + 45.7655032 + ], + [ + 18.4562828, + 45.7695229 + ], + [ + 18.4450763, + 45.7605195 + ], + [ + 18.446853, + 45.737128 + ], + [ + 18.40763, + 45.7397119 + ], + [ + 18.3918949, + 45.7616983 + ], + [ + 18.3642257, + 45.7729364 + ], + [ + 18.3394214, + 45.7471605 + ], + [ + 18.2968157, + 45.7612196 + ], + [ + 18.2440473, + 45.7612305 + ], + [ + 18.2307311, + 45.7790328 + ], + [ + 18.1908702, + 45.7878759 + ], + [ + 18.1681939, + 45.7762712 + ], + [ + 18.1246514, + 45.7896277 + ], + [ + 18.1068067, + 45.7708256 + ], + [ + 18.0818922, + 45.7645205 + ], + [ + 17.9958808, + 45.7957311 + ], + [ + 17.9302095, + 45.7863301 + ], + [ + 17.9066757, + 45.7925692 + ], + [ + 17.8653145, + 45.7670064 + ], + [ + 17.8262748, + 45.8099957 + ], + [ + 17.8089784, + 45.8040989 + ], + [ + 17.7809054, + 45.8174884 + ], + [ + 17.7603399, + 45.811923 + ], + [ + 17.7408624, + 45.8295975 + ], + [ + 17.6632915, + 45.8381849 + ], + [ + 17.6276211, + 45.8979446 + ], + [ + 17.5700676, + 45.9358204 + ], + [ + 17.4378254, + 45.9503823 + ], + [ + 17.4258964, + 45.9272681 + ], + [ + 17.4108059, + 45.9399665 + ], + [ + 17.392149, + 45.9302149 + ], + [ + 17.3828713, + 45.9475733 + ], + [ + 17.3476208, + 45.9423413 + ], + [ + 17.3438769, + 45.9605329 + ], + [ + 17.3537711, + 45.9525011 + ], + [ + 17.3905375, + 45.9581914 + ], + [ + 17.387423, + 45.9661823 + ], + [ + 17.3583539, + 45.9642737 + ], + [ + 17.3754852, + 45.9686921 + ], + [ + 17.3751895, + 45.9881054 + ], + [ + 17.3635685, + 45.9915442 + ], + [ + 17.3567202, + 45.9735836 + ], + [ + 17.3339583, + 45.9960781 + ], + [ + 17.3319847, + 45.9728948 + ], + [ + 17.3129974, + 45.9665347 + ], + [ + 17.323647, + 45.9887776 + ], + [ + 17.2987653, + 45.9838652 + ], + [ + 17.3041996, + 46.0021128 + ], + [ + 17.2579726, + 46.0110256 + ], + [ + 17.29632, + 46.0285169 + ], + [ + 17.2541514, + 46.030005 + ], + [ + 17.270955, + 46.0567055 + ], + [ + 17.2324767, + 46.0592034 + ], + [ + 17.2525145, + 46.0664725 + ], + [ + 17.2313144, + 46.0790345 + ], + [ + 17.2019916, + 46.0765488 + ], + [ + 17.2331299, + 46.0989644 + ], + [ + 17.2104017, + 46.1001693 + ], + [ + 17.2129734, + 46.113855 + ], + [ + 17.175927, + 46.1084583 + ], + [ + 17.1743424, + 46.1287608 + ], + [ + 17.1865197, + 46.1332308 + ], + [ + 17.1810983, + 46.1505485 + ], + [ + 17.1562307, + 46.1585819 + ], + [ + 17.1592857, + 46.1696818 + ], + [ + 17.1261012, + 46.1684495 + ], + [ + 17.1227409, + 46.1789791 + ], + [ + 17.0752482, + 46.1889531 + ], + [ + 17.0661614, + 46.2022984 + ], + [ + 16.9735401, + 46.2251982 + ], + [ + 16.973954, + 46.2431113 + ], + [ + 16.9504085, + 46.2415285 + ], + [ + 16.8862356, + 46.2814598 + ], + [ + 16.8713682, + 46.3252767 + ], + [ + 16.8802109, + 46.3356966 + ], + [ + 16.8615374, + 46.3452401 + ], + [ + 16.8656232, + 46.3556489 + ], + [ + 16.8521959, + 46.3517189 + ], + [ + 16.8498589, + 46.3626245 + ], + [ + 16.8352859, + 46.3638195 + ], + [ + 16.8376499, + 46.3748032 + ], + [ + 16.8261732, + 46.3670994 + ], + [ + 16.7933444, + 46.387385 + ], + [ + 16.7592072, + 46.3776563 + ], + [ + 16.7298672, + 46.40149 + ], + [ + 16.7182119, + 46.3898704 + ], + [ + 16.6772872, + 46.4494536 + ], + [ + 16.6631785, + 46.4486958 + ], + [ + 16.6663732, + 46.4582995 + ], + [ + 16.6187915, + 46.4619875 + ], + [ + 16.604468, + 46.4760773 + ], + [ + 16.5235997, + 46.5053761 + ], + [ + 16.5325768, + 46.5314027 + ], + [ + 16.5176728, + 46.5363516 + ], + [ + 16.5084107, + 46.5652692 + ], + [ + 16.4829969, + 46.5660383 + ], + [ + 16.4834008, + 46.5786011 + ], + [ + 16.4455713, + 46.610952 + ], + [ + 16.4248583, + 46.6131645 + ], + [ + 16.385941, + 46.6442485 + ], + [ + 16.3915424, + 46.6637257 + ], + [ + 16.4198454, + 46.6584771 + ], + [ + 16.4286335, + 46.6939737 + ], + [ + 16.3689211, + 46.7040082 + ], + [ + 16.3798266, + 46.7153869 + ], + [ + 16.3710856, + 46.7222945 + ], + [ + 16.3570587, + 46.7142387 + ], + [ + 16.3185954, + 46.7541449 + ], + [ + 16.3305417, + 46.7752119 + ], + [ + 16.3121626, + 46.7780033 + ], + [ + 16.3127666, + 46.797314 + ], + [ + 16.3406373, + 46.8051851 + ], + [ + 16.3508404, + 46.8300552 + ], + [ + 16.3403309, + 46.8468762 + ], + [ + 16.3015007, + 46.8595142 + ], + [ + 16.2913867, + 46.8728341 + ], + [ + 16.2332296, + 46.8766702 + ], + [ + 16.1560866, + 46.8537074 + ], + [ + 16.126571, + 46.8569079 + ], + [ + 16.1139147, + 46.8691038 + ] + ] + ], + "terms_url": "http://www.fomi.hu/", + "terms_text": "Földmérési és Távérzékelési Intézet" + }, + { + "name": "Geodatastyrelsen (Denmark)", + "type": "tms", + "template": "http://mapproxy.gpweb.dk/tiles/1.0.0/kortforsyningen_ortoforaar/EPSG3857/{zoom}/{x}/{y}.jpeg", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 8.3743941, + 54.9551655 + ], + [ + 8.3683809, + 55.4042149 + ], + [ + 8.2103997, + 55.4039795 + ], + [ + 8.2087314, + 55.4937345 + ], + [ + 8.0502655, + 55.4924731 + ], + [ + 8.0185123, + 56.7501399 + ], + [ + 8.1819161, + 56.7509948 + ], + [ + 8.1763274, + 57.0208898 + ], + [ + 8.3413329, + 57.0219872 + ], + [ + 8.3392467, + 57.1119574 + ], + [ + 8.5054433, + 57.1123212 + ], + [ + 8.5033923, + 57.2020499 + ], + [ + 9.3316304, + 57.2027636 + ], + [ + 9.3319079, + 57.2924835 + ], + [ + 9.4978864, + 57.2919578 + ], + [ + 9.4988593, + 57.3820608 + ], + [ + 9.6649749, + 57.3811615 + ], + [ + 9.6687295, + 57.5605591 + ], + [ + 9.8351961, + 57.5596265 + ], + [ + 9.8374896, + 57.6493322 + ], + [ + 10.1725726, + 57.6462818 + ], + [ + 10.1754245, + 57.7367768 + ], + [ + 10.5118282, + 57.7330269 + ], + [ + 10.5152095, + 57.8228945 + ], + [ + 10.6834853, + 57.8207722 + ], + [ + 10.6751613, + 57.6412021 + ], + [ + 10.5077045, + 57.6433097 + ], + [ + 10.5039992, + 57.5535088 + ], + [ + 10.671038, + 57.5514113 + ], + [ + 10.6507805, + 57.1024538 + ], + [ + 10.4857673, + 57.1045138 + ], + [ + 10.4786236, + 56.9249051 + ], + [ + 10.3143981, + 56.9267573 + ], + [ + 10.3112341, + 56.8369269 + ], + [ + 10.4750295, + 56.83509 + ], + [ + 10.4649016, + 56.5656681 + ], + [ + 10.9524239, + 56.5589761 + ], + [ + 10.9479249, + 56.4692243 + ], + [ + 11.1099335, + 56.4664675 + ], + [ + 11.1052639, + 56.376833 + ], + [ + 10.9429901, + 56.3795284 + ], + [ + 10.9341235, + 56.1994768 + ], + [ + 10.7719685, + 56.2020244 + ], + [ + 10.7694751, + 56.1120103 + ], + [ + 10.6079695, + 56.1150259 + ], + [ + 10.4466742, + 56.116717 + ], + [ + 10.2865948, + 56.118675 + ], + [ + 10.2831527, + 56.0281851 + ], + [ + 10.4439274, + 56.0270388 + ], + [ + 10.4417713, + 55.7579243 + ], + [ + 10.4334961, + 55.6693533 + ], + [ + 10.743814, + 55.6646861 + ], + [ + 10.743814, + 55.5712253 + ], + [ + 10.8969041, + 55.5712253 + ], + [ + 10.9051793, + 55.3953852 + ], + [ + 11.0613726, + 55.3812841 + ], + [ + 11.0593038, + 55.1124061 + ], + [ + 11.0458567, + 55.0318621 + ], + [ + 11.2030844, + 55.0247474 + ], + [ + 11.2030844, + 55.117139 + ], + [ + 11.0593038, + 55.1124061 + ], + [ + 11.0613726, + 55.3812841 + ], + [ + 11.0789572, + 55.5712253 + ], + [ + 10.8969041, + 55.5712253 + ], + [ + 10.9258671, + 55.6670198 + ], + [ + 10.743814, + 55.6646861 + ], + [ + 10.7562267, + 55.7579243 + ], + [ + 10.4417713, + 55.7579243 + ], + [ + 10.4439274, + 56.0270388 + ], + [ + 10.4466742, + 56.116717 + ], + [ + 10.6079695, + 56.1150259 + ], + [ + 10.6052053, + 56.0247462 + ], + [ + 10.9258671, + 56.0201215 + ], + [ + 10.9197132, + 55.9309388 + ], + [ + 11.0802782, + 55.92792 + ], + [ + 11.0858066, + 56.0178284 + ], + [ + 11.7265047, + 56.005058 + ], + [ + 11.7319981, + 56.0952142 + ], + [ + 12.0540333, + 56.0871256 + ], + [ + 12.0608477, + 56.1762576 + ], + [ + 12.7023469, + 56.1594405 + ], + [ + 12.6611131, + 55.7114318 + ], + [ + 12.9792318, + 55.7014026 + ], + [ + 12.9612912, + 55.5217294 + ], + [ + 12.3268659, + 55.5412096 + ], + [ + 12.3206071, + 55.4513655 + ], + [ + 12.4778226, + 55.447067 + ], + [ + 12.4702432, + 55.3570479 + ], + [ + 12.6269738, + 55.3523837 + ], + [ + 12.6200898, + 55.2632576 + ], + [ + 12.4627339, + 55.26722 + ], + [ + 12.4552949, + 55.1778223 + ], + [ + 12.2987046, + 55.1822303 + ], + [ + 12.2897344, + 55.0923641 + ], + [ + 12.6048608, + 55.0832904 + ], + [ + 12.5872011, + 54.9036285 + ], + [ + 12.2766618, + 54.9119031 + ], + [ + 12.2610181, + 54.7331602 + ], + [ + 12.1070691, + 54.7378161 + ], + [ + 12.0858621, + 54.4681655 + ], + [ + 11.7794953, + 54.4753579 + ], + [ + 11.7837381, + 54.5654783 + ], + [ + 11.1658525, + 54.5782155 + ], + [ + 11.1706443, + 54.6686508 + ], + [ + 10.8617173, + 54.6733956 + ], + [ + 10.8651245, + 54.7634667 + ], + [ + 10.7713646, + 54.7643888 + ], + [ + 10.7707276, + 54.7372807 + ], + [ + 10.7551428, + 54.7375776 + ], + [ + 10.7544039, + 54.7195666 + ], + [ + 10.7389074, + 54.7197588 + ], + [ + 10.7384368, + 54.7108482 + ], + [ + 10.7074486, + 54.7113045 + ], + [ + 10.7041094, + 54.6756741 + ], + [ + 10.5510973, + 54.6781698 + ], + [ + 10.5547184, + 54.7670245 + ], + [ + 10.2423994, + 54.7705935 + ], + [ + 10.2459845, + 54.8604673 + ], + [ + 10.0902268, + 54.8622134 + ], + [ + 10.0873731, + 54.7723851 + ], + [ + 9.1555798, + 54.7769557 + ], + [ + 9.1562752, + 54.8675369 + ], + [ + 8.5321973, + 54.8663765 + ], + [ + 8.531432, + 54.95516 + ] + ], + [ + [ + 11.4577738, + 56.819554 + ], + [ + 11.7849181, + 56.8127385 + ], + [ + 11.7716715, + 56.6332796 + ], + [ + 11.4459621, + 56.6401087 + ] + ], + [ + [ + 11.3274736, + 57.3612962 + ], + [ + 11.3161808, + 57.1818004 + ], + [ + 11.1508692, + 57.1847276 + ], + [ + 11.1456628, + 57.094962 + ], + [ + 10.8157703, + 57.1001693 + ], + [ + 10.8290599, + 57.3695272 + ] + ], + [ + [ + 11.5843266, + 56.2777928 + ], + [ + 11.5782882, + 56.1880397 + ], + [ + 11.7392309, + 56.1845765 + ], + [ + 11.7456428, + 56.2743186 + ] + ], + [ + [ + 14.6825922, + 55.3639405 + ], + [ + 14.8395247, 55.3565231 ], [ - 14.8263755, - 55.2671261 + 14.8263755, + 55.2671261 + ], + [ + 15.1393406, + 55.2517359 + ], + [ + 15.1532015, + 55.3410836 + ], + [ + 15.309925, + 55.3330556 + ], + [ + 15.295719, + 55.2437356 + ], + [ + 15.1393406, + 55.2517359 + ], + [ + 15.1255631, + 55.1623802 + ], + [ + 15.2815819, + 55.1544167 + ], + [ + 15.2535578, + 54.9757646 + ], + [ + 14.6317464, + 55.0062496 + ] + ] + ], + "terms_url": "http://download.kortforsyningen.dk/content/vilkaar-og-betingelser", + "terms_text": "Geodatastyrelsen og Danske Kommuner" + }, + { + "name": "Geoimage.at MaxRes", + "type": "tms", + "template": "http://geoimage.openstreetmap.at/4d80de696cd562a63ce463a58a61488d/{zoom}/{x}/{y}.jpg", + "polygon": [ + [ + [ + 16.5073284, + 46.9929304 + ], + [ + 16.283417, + 46.9929304 + ], + [ + 16.135839, + 46.8713046 + ], + [ + 15.9831722, + 46.8190947 + ], + [ + 16.0493278, + 46.655175 + ], + [ + 15.8610387, + 46.7180116 + ], + [ + 15.7592608, + 46.6900933 + ], + [ + 15.5607938, + 46.6796202 + ], + [ + 15.5760605, + 46.6342132 + ], + [ + 15.4793715, + 46.6027553 + ], + [ + 15.4335715, + 46.6516819 + ], + [ + 15.2249267, + 46.6342132 + ], + [ + 15.0468154, + 46.6481886 + ], + [ + 14.9908376, + 46.5887681 + ], + [ + 14.9603042, + 46.6237293 + ], + [ + 14.8534374, + 46.6027553 + ], + [ + 14.8330818, + 46.5012666 + ], + [ + 14.7516595, + 46.4977636 + ], + [ + 14.6804149, + 46.4381781 + ], + [ + 14.6142593, + 46.4381781 + ], + [ + 14.578637, + 46.3785275 + ], + [ + 14.4412369, + 46.4311638 + ], + [ + 14.1613476, + 46.4276563 + ], + [ + 14.1257253, + 46.4767409 + ], + [ + 14.0188585, + 46.4767409 + ], + [ + 13.9119917, + 46.5257813 + ], + [ + 13.8254805, + 46.5047694 + ], + [ + 13.4438134, + 46.560783 + ], + [ + 13.3064132, + 46.5502848 + ], + [ + 13.1283019, + 46.5887681 + ], + [ + 12.8433237, + 46.6132433 + ], + [ + 12.7262791, + 46.6412014 + ], + [ + 12.5125455, + 46.6656529 + ], + [ + 12.3598787, + 46.7040543 + ], + [ + 12.3649676, + 46.7703197 + ], + [ + 12.2886341, + 46.7772902 + ], + [ + 12.2733674, + 46.8852187 + ], + [ + 12.2072118, + 46.8747835 + ], + [ + 12.1308784, + 46.9026062 + ], + [ + 12.1156117, + 46.9998721 + ], + [ + 12.2530119, + 47.0657733 + ], + [ + 12.2123007, + 47.0934969 + ], + [ + 11.9833004, + 47.0449712 + ], + [ + 11.7339445, + 46.9616816 + ], + [ + 11.6321666, + 47.010283 + ], + [ + 11.5405665, + 46.9755722 + ], + [ + 11.4998553, + 47.0068129 + ], + [ + 11.418433, + 46.9651546 + ], + [ + 11.2555884, + 46.9755722 + ], + [ + 11.1130993, + 46.913036 + ], + [ + 11.0418548, + 46.7633482 + ], + [ + 10.8891879, + 46.7598621 + ], + [ + 10.7416099, + 46.7842599 + ], + [ + 10.7059877, + 46.8643462 + ], + [ + 10.5787653, + 46.8399847 + ], + [ + 10.4566318, + 46.8504267 + ], + [ + 10.4769874, + 46.9269392 + ], + [ + 10.3853873, + 46.9894592 + ], + [ + 10.2327204, + 46.8643462 + ], + [ + 10.1207647, + 46.8330223 + ], + [ + 9.8663199, + 46.9408389 + ], + [ + 9.9019422, + 47.0033426 + ], + [ + 9.6831197, + 47.0588402 + ], + [ + 9.6118752, + 47.0380354 + ], + [ + 9.6322307, + 47.128131 + ], + [ + 9.5813418, + 47.1662025 + ], + [ + 9.5406306, + 47.2664422 + ], + [ + 9.6067863, + 47.3492559 + ], + [ + 9.6729419, + 47.369939 + ], + [ + 9.6424085, + 47.4457079 + ], + [ + 9.5660751, + 47.4801122 + ], + [ + 9.7136531, + 47.5282405 + ], + [ + 9.7848976, + 47.5969187 + ], + [ + 9.8357866, + 47.5454185 + ], + [ + 9.9477423, + 47.538548 + ], + [ + 10.0902313, + 47.4491493 + ], + [ + 10.1105869, + 47.3664924 + ], + [ + 10.2428982, + 47.3871688 + ], + [ + 10.1869203, + 47.2698953 + ], + [ + 10.3243205, + 47.2975125 + ], + [ + 10.4820763, + 47.4491493 + ], + [ + 10.4311873, + 47.4869904 + ], + [ + 10.4413651, + 47.5900549 + ], + [ + 10.4871652, + 47.5522881 + ], + [ + 10.5482319, + 47.5351124 + ], + [ + 10.5991209, + 47.5660246 + ], + [ + 10.7568766, + 47.5316766 + ], + [ + 10.8891879, + 47.5454185 + ], + [ + 10.9400769, + 47.4869904 + ], + [ + 10.9960547, + 47.3906141 + ], + [ + 11.2352328, + 47.4422662 + ], + [ + 11.2810328, + 47.3975039 + ], + [ + 11.4235219, + 47.5144941 + ], + [ + 11.5761888, + 47.5076195 + ], + [ + 11.6067221, + 47.5900549 + ], + [ + 11.8357224, + 47.5866227 + ], + [ + 12.003656, + 47.6243647 + ], + [ + 12.2072118, + 47.6037815 + ], + [ + 12.1614117, + 47.6963421 + ], + [ + 12.2581008, + 47.7442718 + ], + [ + 12.2530119, + 47.6792136 + ], + [ + 12.4311232, + 47.7100408 + ], + [ + 12.4921899, + 47.631224 + ], + [ + 12.5685234, + 47.6277944 + ], + [ + 12.6295901, + 47.6894913 + ], + [ + 12.7720792, + 47.6689338 + ], + [ + 12.8331459, + 47.5419833 + ], + [ + 12.975635, + 47.4732332 + ], + [ + 13.0417906, + 47.4938677 + ], + [ + 13.0367017, + 47.5557226 + ], + [ + 13.0977685, + 47.6415112 + ], + [ + 13.0316128, + 47.7100408 + ], + [ + 12.9043905, + 47.7203125 + ], + [ + 13.0061684, + 47.84683 + ], + [ + 12.9451016, + 47.9355501 + ], + [ + 12.8636793, + 47.9594103 + ], + [ + 12.8636793, + 48.0036929 + ], + [ + 12.7517236, + 48.0989418 + ], + [ + 12.8738571, + 48.2109733 + ], + [ + 12.9603683, + 48.2109733 + ], + [ + 13.0417906, + 48.2652035 + ], + [ + 13.1842797, + 48.2990682 + ], + [ + 13.2606131, + 48.2922971 + ], + [ + 13.3980133, + 48.3565867 + ], + [ + 13.4438134, + 48.417418 + ], + [ + 13.4387245, + 48.5523383 + ], + [ + 13.509969, + 48.5860123 + ], + [ + 13.6117469, + 48.5725454 + ], + [ + 13.7287915, + 48.5118999 + ], + [ + 13.7847694, + 48.5725454 + ], + [ + 13.8203916, + 48.6263915 + ], + [ + 13.7949471, + 48.7171267 + ], + [ + 13.850925, + 48.7741724 + ], + [ + 14.0595697, + 48.6633774 + ], + [ + 14.0137696, + 48.6331182 + ], + [ + 14.0748364, + 48.5927444 + ], + [ + 14.2173255, + 48.5961101 + ], + [ + 14.3649034, + 48.5489696 + ], + [ + 14.4666813, + 48.6499311 + ], + [ + 14.5582815, + 48.5961101 + ], + [ + 14.5989926, + 48.6263915 + ], + [ + 14.7211261, + 48.5759124 + ], + [ + 14.7211261, + 48.6868997 + ], + [ + 14.822904, + 48.7271983 + ], + [ + 14.8178151, + 48.777526 + ], + [ + 14.9647227, + 48.7851754 + ], + [ + 14.9893637, + 49.0126611 + ], + [ + 15.1485933, + 48.9950306 + ], + [ + 15.1943934, + 48.9315502 + ], + [ + 15.3063491, + 48.9850128 + ], + [ + 15.3928603, + 48.9850128 + ], + [ + 15.4844604, + 48.9282069 + ], + [ + 15.749083, + 48.8545973 + ], + [ + 15.8406831, + 48.8880697 + ], + [ + 16.0086166, + 48.7808794 + ], + [ + 16.2070835, + 48.7339115 + ], + [ + 16.3953727, + 48.7372678 + ], + [ + 16.4920617, + 48.8110498 + ], + [ + 16.6905286, + 48.7741724 + ], + [ + 16.7057953, + 48.7339115 + ], + [ + 16.8991733, + 48.713769 + ], + [ + 16.9755067, + 48.515271 + ], + [ + 16.8482844, + 48.4511817 + ], + [ + 16.8533733, + 48.3464411 + ], + [ + 16.9551512, + 48.2516513 + ], + [ + 16.9907734, + 48.1498955 + ], + [ + 17.0925513, + 48.1397088 + ], + [ + 17.0823736, + 48.0241182 + ], + [ + 17.1739737, + 48.0207146 + ], + [ + 17.0823736, + 47.8741447 + ], + [ + 16.9856845, + 47.8673174 + ], + [ + 17.0823736, + 47.8092489 + ], + [ + 17.0925513, + 47.7031919 + ], + [ + 16.7414176, + 47.6792136 + ], + [ + 16.7057953, + 47.7511153 + ], + [ + 16.5378617, + 47.7545368 + ], + [ + 16.5480395, + 47.7066164 + ], + [ + 16.4208172, + 47.6689338 + ], + [ + 16.573484, + 47.6175045 + ], + [ + 16.670173, + 47.631224 + ], + [ + 16.7108842, + 47.538548 + ], + [ + 16.6599952, + 47.4491493 + ], + [ + 16.5429506, + 47.3940591 + ], + [ + 16.4615283, + 47.3940591 + ], + [ + 16.4920617, + 47.276801 + ], + [ + 16.425906, + 47.1973317 + ], + [ + 16.4717061, + 47.1489007 + ], + [ + 16.5480395, + 47.1489007 + ], + [ + 16.476795, + 47.0796369 + ], + [ + 16.527684, + 47.0588402 + ] + ] + ], + "terms_text": "geoimage.at", + "id": "geoimage.at" + }, + { + "name": "Geoportal.gov.pl (Orthophotomap)", + "type": "tms", + "template": "http://wms.misek.pl/geoportal.orto/tms/{zoom}/{x}/{y}", + "scaleExtent": [ + 6, + 24 + ], + "polygon": [ + [ + [ + 15.9751041, + 54.3709213 + ], + [ + 16.311164, + 54.5561775 + ], + [ + 17.1391878, + 54.7845723 + ], + [ + 18.3448458, + 54.9022727 + ], + [ + 19.6613689, + 54.4737213 + ], + [ + 20.2815206, + 54.4213456 + ], + [ + 21.4663914, + 54.3406369 + ], + [ + 22.7759855, + 54.3769755 + ], + [ + 22.8625989, + 54.4233613 + ], + [ + 23.2956657, + 54.2678633 + ], + [ + 23.5347186, + 54.0955258 + ], + [ + 23.5208604, + 53.9775182 + ], + [ + 23.7183389, + 53.4629603 + ], + [ + 23.9296755, + 53.1856735 + ], + [ + 23.9296755, + 52.6887269 + ], + [ + 23.732197, + 52.6067497 + ], + [ + 23.5658994, + 52.5878101 + ], + [ + 23.2090523, + 52.3302642 + ], + [ + 23.1951942, + 52.2370089 + ], + [ + 23.5035377, + 52.1860596 + ], + [ + 23.6906226, + 52.0030113 + ], + [ + 23.5970802, + 51.739903 + ], + [ + 23.6629063, + 51.3888562 + ], + [ + 23.9366046, + 50.9827781 + ], + [ + 24.1687284, + 50.8604752 + ], + [ + 24.0197534, + 50.8035823 + ], + [ + 24.1098313, + 50.6610467 + ], + [ + 24.0578633, + 50.4188439 + ], + [ + 23.6178674, + 50.3083403 + ], + [ + 22.6824431, + 49.5163532 + ], + [ + 22.7378756, + 49.2094935 + ], + [ + 22.9041733, + 49.0780441 + ], + [ + 22.8625989, + 48.9940062 + ], + [ + 22.6096878, + 49.0371785 + ], + [ + 22.0761495, + 49.2004392 + ], + [ + 21.8474902, + 49.3721872 + ], + [ + 21.3763135, + 49.4488281 + ], + [ + 21.1026153, + 49.3721872 + ], + [ + 20.9120659, + 49.3022043 + ], + [ + 20.6452967, + 49.3902311 + ], + [ + 20.1845136, + 49.3315641 + ], + [ + 20.1186875, + 49.2004392 + ], + [ + 19.9419962, + 49.1302123 + ], + [ + 19.765305, + 49.2117568 + ], + [ + 19.7479823, + 49.3992506 + ], + [ + 19.6024718, + 49.4150307 + ], + [ + 19.5089294, + 49.5815389 + ], + [ + 19.4292451, + 49.5905232 + ], + [ + 19.2317666, + 49.4150307 + ], + [ + 18.9961783, + 49.387976 + ], + [ + 18.9338167, + 49.4916048 + ], + [ + 18.8368097, + 49.4938552 + ], + [ + 18.8021643, + 49.6623381 + ], + [ + 18.6427958, + 49.7094091 + ], + [ + 18.521537, + 49.8994693 + ], + [ + 18.0815412, + 50.0109209 + ], + [ + 17.8875272, + 49.9886512 + ], + [ + 17.7385522, + 50.0687739 + ], + [ + 17.6068999, + 50.1709584 + ], + [ + 17.7454813, + 50.2153184 + ], + [ + 17.710836, + 50.3017019 + ], + [ + 17.4163505, + 50.2640668 + ], + [ + 16.9486384, + 50.4453265 + ], + [ + 16.8932058, + 50.4033889 + ], + [ + 17.0006064, + 50.3105529 + ], + [ + 17.017929, + 50.2241854 + ], + [ + 16.8135215, + 50.186489 + ], + [ + 16.6402948, + 50.0976742 + ], + [ + 16.4324227, + 50.2862087 + ], + [ + 16.1968344, + 50.4276731 + ], + [ + 16.4220291, + 50.5885165 + ], + [ + 16.3388803, + 50.6632429 + ], + [ + 16.2280152, + 50.6368824 + ], + [ + 16.0547884, + 50.6127057 + ], + [ + 15.5732181, + 50.7641544 + ], + [ + 15.2683391, + 50.8976368 + ], + [ + 15.2440873, + 50.980597 + ], + [ + 15.0292862, + 51.0133036 + ], + [ + 15.0015699, + 50.8582883 + ], + [ + 14.8110205, + 50.8735944 + ], + [ + 14.956531, + 51.0721176 + ], + [ + 15.0188926, + 51.2914636 + ], + [ + 14.9392083, + 51.4601459 + ], + [ + 14.7209426, + 51.5571799 + ], + [ + 14.7521234, + 51.6260562 + ], + [ + 14.5996839, + 51.8427626 + ], + [ + 14.70362, + 52.0733396 + ], + [ + 14.5581095, + 52.2497371 + ], + [ + 14.5165351, + 52.425436 + ], + [ + 14.6031485, + 52.5878101 + ], + [ + 14.1146491, + 52.8208272 + ], + [ + 14.152759, + 52.9733951 + ], + [ + 14.3502374, + 53.0734212 + ], + [ + 14.4229927, + 53.2665624 + ], + [ + 14.1977979, + 53.8734759 + ], + [ + 14.2220497, + 53.9958517 + ] + ] + ], + "terms_text": "Copyright © Główny Urząd Geodezji i Kartografii." + }, + { + "name": "IBGE Mapa de Setores Rurais", + "type": "tms", + "template": "http://{switch:a,b,c}.tiles.mapbox.com/v3/tmpsantos.i00mo1kj/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 0, + 14 + ], + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 ], [ - 15.1393406, - 55.2517359 + -27.76041, + -8.937033 ], [ - 15.1532015, - 55.3410836 + -27.67249, + -22.20839 ], [ - 15.309925, - 55.3330556 + -51.11495, + -35.46552 ], [ - 15.295719, - 55.2437356 + -53.39394, + -33.85064 ], [ - 15.1393406, - 55.2517359 + -53.62553, + -33.72493 ], [ - 15.1255631, - 55.1623802 + -53.62503, + -33.15428 ], [ - 15.2815819, - 55.1544167 + -53.24498, + -32.73392 ], [ - 15.2535578, - 54.9757646 + -53.65747, + -32.51873 ], [ - 14.6317464, - 55.0062496 - ] - ] - ], - "terms_url": "http://wiki.openstreetmap.org/wiki/Fugro", - "terms_text": "Fugro Aerial Mapping" - }, - { - "name": "Geodatastyrelsen (Denmark)", - "type": "tms", - "template": "http://mapproxy.gpweb.dk/tiles/1.0.0/kortforsyningen_ortoforaar/EPSG3857/{zoom}/{x}/{y}.jpeg", - "scaleExtent": [ - 0, - 21 - ], - "polygon": [ - [ + -53.8329, + -32.16592 + ], [ - 8.3743941, - 54.9551655 + -54.64174, + -31.55507 ], [ - 8.3683809, - 55.4042149 + -55.29638, + -31.3429 ], [ - 8.2103997, - 55.4039795 + -55.57371, + -30.99691 ], [ - 8.2087314, - 55.4937345 + -56.06384, + -31.16749 ], [ - 8.0502655, - 55.4924731 + -56.10468, + -30.86436 ], [ - 8.0185123, - 56.7501399 + -56.86862, + -30.20752 ], [ - 8.1819161, - 56.7509948 + -57.39671, + -30.40464 ], [ - 8.1763274, - 57.0208898 + -57.74384, + -30.22142 ], [ - 8.3413329, - 57.0219872 + -55.83724, + -28.16598 ], [ - 8.3392467, - 57.1119574 + -54.86969, + -27.44994 ], [ - 8.5054433, - 57.1123212 + -53.9016, + -27.02998 ], [ - 8.5033923, - 57.2020499 + -53.74972, + -26.25781 ], [ - 9.3316304, - 57.2027636 + -53.97158, + -25.74513 ], [ - 9.3319079, - 57.2924835 + -54.44723, + -25.79609 ], [ - 9.4978864, - 57.2919578 + -54.67802, + -25.64668 ], [ - 9.4988593, - 57.3820608 + -54.36097, + -24.35145 ], [ - 9.6649749, - 57.3811615 + -54.41679, + -24.06527 ], [ - 9.6687295, - 57.5605591 + -54.64355, + -23.94107 ], [ - 9.8351961, - 57.5596265 + -55.22163, + -24.11355 ], [ - 9.8374896, - 57.6493322 + -55.49138, + -24.02797 ], [ - 10.1725726, - 57.6462818 + -55.71734, + -22.68488 ], [ - 10.1754245, - 57.7367768 + -55.90555, + -22.39886 ], [ - 10.5118282, - 57.7330269 + -56.45255, + -22.21731 ], [ - 10.5152095, - 57.8228945 + -56.8256, + -22.4002 ], [ - 10.6834853, - 57.8207722 + -57.34109, + -22.34351 ], [ - 10.6751613, - 57.6412021 + -58.08472, + -22.13075 ], [ - 10.5077045, - 57.6433097 + -57.95766, + -20.99818 ], [ - 10.5039992, - 57.5535088 + -58.26551, + -20.24147 ], [ - 10.671038, - 57.5514113 + -58.03577, + -19.95871 ], [ - 10.6507805, - 57.1024538 + -58.23083, + -19.75211 ], [ - 10.4857673, - 57.1045138 + -57.64739, + -18.19828 ], [ - 10.4786236, - 56.9249051 + -57.89356, + -17.57377 ], [ - 10.3143981, - 56.9267573 + -58.16997, + -17.53519 ], [ - 10.3112341, - 56.8369269 + -58.48825, + -17.21961 ], [ - 10.4750295, - 56.83509 + -58.57691, + -16.81466 ], [ - 10.4649016, - 56.5656681 + -58.45563, + -16.42158 ], [ - 10.9524239, - 56.5589761 + -60.2541, + -16.32571 ], [ - 10.9479249, - 56.4692243 + -60.33481, + -15.51483 ], [ - 11.1099335, - 56.4664675 + -60.67423, + -15.1122 ], [ - 11.1052639, - 56.376833 + -60.34999, + -14.99707 ], [ - 10.9429901, - 56.3795284 + -60.63603, + -13.84119 ], [ - 10.9341235, - 56.1994768 + -61.07283, + -13.62569 ], [ - 10.7719685, - 56.2020244 + -61.9025, + -13.62647 ], [ - 10.7694751, - 56.1120103 + -62.21395, + -13.25048 ], [ - 10.6079695, - 56.1150259 + -62.80185, + -13.10905 ], [ - 10.4466742, - 56.116717 + -63.17194, + -12.76568 ], [ - 10.2865948, - 56.118675 + -63.74229, + -12.54071 ], [ - 10.2831527, - 56.0281851 + -64.32845, + -12.59578 ], [ - 10.4439274, - 56.0270388 + -65.10261, + -12.0682 ], [ - 10.4417713, - 55.7579243 + -65.45781, + -11.27865 ], [ - 10.4334961, - 55.6693533 + -65.41641, + -9.838943 ], [ - 10.743814, - 55.6646861 + -66.52331, + -9.985873 ], [ - 10.743814, - 55.5712253 + -67.66452, + -10.80093 ], [ - 10.8969041, - 55.5712253 + -67.99778, + -10.75991 ], [ - 10.9051793, - 55.3953852 + -68.52286, + -11.20807 ], [ - 11.0613726, - 55.3812841 + -69.88988, + -11.02776 ], [ - 11.0593038, - 55.1124061 + -70.30957, + -11.1699 ], [ - 11.0458567, - 55.0318621 + -70.71896, + -11.02003 ], [ - 11.2030844, - 55.0247474 + -70.68128, + -9.669083 ], [ - 11.2030844, - 55.117139 + -71.27536, + -10.08971 ], [ - 11.0593038, - 55.1124061 + -72.18053, + -10.09967 ], [ - 11.0613726, - 55.3812841 + -72.41623, + -9.587397 ], [ - 11.0789572, - 55.5712253 + -73.29207, + -9.454149 ], [ - 10.8969041, - 55.5712253 + -73.0625, + -9.017267 ], [ - 10.9258671, - 55.6670198 + -73.61432, + -8.40982 ], [ - 10.743814, - 55.6646861 + -74.09056, + -7.527548 ], [ - 10.7562267, - 55.7579243 + -74.03652, + -7.27885 ], [ - 10.4417713, - 55.7579243 + -73.84718, + -7.238285 ], [ - 10.4439274, - 56.0270388 + -73.78618, + -6.774872 ], [ - 10.4466742, - 56.116717 + -73.22362, + -6.430106 ], [ - 10.6079695, - 56.1150259 + -73.33719, + -6.029736 ], [ - 10.6052053, - 56.0247462 + -72.93016, + -5.038711 ], [ - 10.9258671, - 56.0201215 + -71.93973, + -4.425027 ], [ - 10.9197132, - 55.9309388 + -70.96802, + -4.248294 ], [ - 11.0802782, - 55.92792 + -70.79598, + -4.064931 ], [ - 11.0858066, - 56.0178284 + -70.02393, + -4.167345 ], [ - 11.7265047, - 56.005058 + -69.51025, + -1.134089 ], [ - 11.7319981, - 56.0952142 + -69.70776, + -0.567619 ], [ - 12.0540333, - 56.0871256 + -70.13645, + -0.226161 ], [ - 12.0608477, - 56.1762576 + -70.14083, + 0.5844 ], [ - 12.7023469, - 56.1594405 + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 ], [ - 12.6611131, - 55.7114318 + -63.17706, + 4.048301 ], [ - 12.9792318, - 55.7014026 + -62.96093, + 3.763658 ], [ - 12.9612912, - 55.5217294 + -62.82024, + 4.106019 ], [ - 12.3268659, - 55.5412096 + -62.49922, + 4.270815 ], [ - 12.3206071, - 55.4513655 + -61.91181, + 4.26284 ], [ - 12.4778226, - 55.447067 + -61.35393, + 4.630097 ], [ - 12.4702432, - 55.3570479 + -61.04904, + 4.623115 ], [ - 12.6269738, - 55.3523837 + -60.70452, + 4.969851 ], [ - 12.6200898, - 55.2632576 + -60.78709, + 5.296764 ], [ - 12.4627339, - 55.26722 + -60.22457, + 5.371207 ], [ - 12.4552949, - 55.1778223 + -59.89857, + 5.107541 ], [ - 12.2987046, - 55.1822303 + -59.97549, + 4.603025 ], [ - 12.2897344, - 55.0923641 + -59.59676, + 4.439875 ], [ - 12.6048608, - 55.0832904 + -59.41942, + 3.96994 ], [ - 12.5872011, - 54.9036285 + -59.71017, + 3.542008 ], [ - 12.2766618, - 54.9119031 + -59.88955, + 2.72301 ], [ - 12.2610181, - 54.7331602 + -59.63006, + 2.316332 ], [ - 12.1070691, - 54.7378161 + -59.63382, + 1.966581 ], [ - 12.0858621, - 54.4681655 + -59.18812, + 1.478079 ], [ - 11.7794953, - 54.4753579 + -58.80545, + 1.320732 ], [ - 11.7837381, - 54.5654783 + -58.35933, + 1.689932 ], [ - 11.1658525, - 54.5782155 + -57.6, + 1.803907 ], [ - 11.1706443, - 54.6686508 + -57.39854, + 2.065119 ], [ - 10.8617173, - 54.6733956 + -57.12392, + 2.128758 ], [ - 10.8651245, - 54.7634667 + -56.02925, + 1.949445 ], [ - 10.7713646, - 54.7643888 + -56.23884, + 2.263348 ], [ - 10.7707276, - 54.7372807 + -55.98195, + 2.628657 ], [ - 10.7551428, - 54.7375776 + -55.64816, + 2.519953 ], [ - 10.7544039, - 54.7195666 + -54.93958, + 2.682515 ], [ - 10.7389074, - 54.7197588 + -54.24988, + 2.25056 ], [ - 10.7384368, - 54.7108482 + -53.73937, + 2.473731 ], [ - 10.7074486, - 54.7113045 + -52.98578, + 2.280494 ], [ - 10.7041094, - 54.6756741 + -52.65712, + 2.564069 ], [ - 10.5510973, - 54.6781698 + -52.41739, + 3.22121 ], [ - 10.5547184, - 54.7670245 + -51.73983, + 4.119158 ], [ - 10.2423994, - 54.7705935 + -51.7246, + 4.556867 ], [ - 10.2459845, - 54.8604673 + -51.0112, + 5.522895 ], [ - 10.0902268, - 54.8622134 + -43.48209, + 5.335832 ], [ - 10.0873731, - 54.7723851 + -29.3325, + 2.335959 + ] + ] + ] + }, + { + "name": "IBGE Mapa de Setores Urbanos", + "type": "tms", + "template": "http://{switch:a,b,c}.tiles.mapbox.com/v3/tmpsantos.hgda0m6h/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + -29.3325, + 2.335959 ], [ - 9.1555798, - 54.7769557 + -28.72472, + 2.031551 ], [ - 9.1562752, - 54.8675369 + -27.76041, + -8.937033 ], [ - 8.5321973, - 54.8663765 + -27.67249, + -22.20839 ], [ - 8.531432, - 54.95516 - ] - ], - [ + -51.11495, + -35.46552 + ], [ - 11.4577738, - 56.819554 + -53.39394, + -33.85064 ], [ - 11.7849181, - 56.8127385 + -53.62553, + -33.72493 ], [ - 11.7716715, - 56.6332796 + -53.62503, + -33.15428 ], [ - 11.4459621, - 56.6401087 - ] - ], - [ + -53.24498, + -32.73392 + ], [ - 11.3274736, - 57.3612962 + -53.65747, + -32.51873 ], [ - 11.3161808, - 57.1818004 + -53.8329, + -32.16592 ], [ - 11.1508692, - 57.1847276 + -54.64174, + -31.55507 ], [ - 11.1456628, - 57.094962 + -55.29638, + -31.3429 ], [ - 10.8157703, - 57.1001693 + -55.57371, + -30.99691 ], [ - 10.8290599, - 57.3695272 - ] - ], - [ + -56.06384, + -31.16749 + ], [ - 11.5843266, - 56.2777928 + -56.10468, + -30.86436 ], [ - 11.5782882, - 56.1880397 + -56.86862, + -30.20752 ], [ - 11.7392309, - 56.1845765 + -57.39671, + -30.40464 ], [ - 11.7456428, - 56.2743186 - ] - ], - [ + -57.74384, + -30.22142 + ], [ - 14.6825922, - 55.3639405 + -55.83724, + -28.16598 ], [ - 14.8395247, - 55.3565231 + -54.86969, + -27.44994 ], [ - 14.8263755, - 55.2671261 + -53.9016, + -27.02998 ], [ - 15.1393406, - 55.2517359 + -53.74972, + -26.25781 ], [ - 15.1532015, - 55.3410836 + -53.97158, + -25.74513 ], [ - 15.309925, - 55.3330556 + -54.44723, + -25.79609 ], [ - 15.295719, - 55.2437356 + -54.67802, + -25.64668 ], [ - 15.1393406, - 55.2517359 + -54.36097, + -24.35145 ], [ - 15.1255631, - 55.1623802 + -54.41679, + -24.06527 ], [ - 15.2815819, - 55.1544167 + -54.64355, + -23.94107 ], [ - 15.2535578, - 54.9757646 + -55.22163, + -24.11355 ], [ - 14.6317464, - 55.0062496 - ] - ] - ], - "terms_url": "http://download.kortforsyningen.dk/content/vilkaar-og-betingelser", - "terms_text": "Geodatastyrelsen og Danske Kommuner" - }, - { - "name": "Geoimage.at MaxRes", - "type": "tms", - "template": "http://geoimage.openstreetmap.at/4d80de696cd562a63ce463a58a61488d/{zoom}/{x}/{y}.jpg", - "polygon": [ - [ + -55.49138, + -24.02797 + ], [ - 16.5073284, - 46.9929304 + -55.71734, + -22.68488 ], [ - 16.283417, - 46.9929304 + -55.90555, + -22.39886 ], [ - 16.135839, - 46.8713046 + -56.45255, + -22.21731 ], [ - 15.9831722, - 46.8190947 + -56.8256, + -22.4002 ], [ - 16.0493278, - 46.655175 + -57.34109, + -22.34351 ], [ - 15.8610387, - 46.7180116 + -58.08472, + -22.13075 ], [ - 15.7592608, - 46.6900933 + -57.95766, + -20.99818 ], [ - 15.5607938, - 46.6796202 + -58.26551, + -20.24147 ], [ - 15.5760605, - 46.6342132 + -58.03577, + -19.95871 ], [ - 15.4793715, - 46.6027553 + -58.23083, + -19.75211 ], [ - 15.4335715, - 46.6516819 + -57.64739, + -18.19828 ], [ - 15.2249267, - 46.6342132 + -57.89356, + -17.57377 ], [ - 15.0468154, - 46.6481886 + -58.16997, + -17.53519 ], [ - 14.9908376, - 46.5887681 + -58.48825, + -17.21961 ], [ - 14.9603042, - 46.6237293 + -58.57691, + -16.81466 ], [ - 14.8534374, - 46.6027553 + -58.45563, + -16.42158 ], [ - 14.8330818, - 46.5012666 + -60.2541, + -16.32571 ], [ - 14.7516595, - 46.4977636 + -60.33481, + -15.51483 ], [ - 14.6804149, - 46.4381781 + -60.67423, + -15.1122 ], [ - 14.6142593, - 46.4381781 + -60.34999, + -14.99707 ], [ - 14.578637, - 46.3785275 + -60.63603, + -13.84119 ], [ - 14.4412369, - 46.4311638 + -61.07283, + -13.62569 ], [ - 14.1613476, - 46.4276563 + -61.9025, + -13.62647 ], [ - 14.1257253, - 46.4767409 + -62.21395, + -13.25048 ], [ - 14.0188585, - 46.4767409 + -62.80185, + -13.10905 ], [ - 13.9119917, - 46.5257813 + -63.17194, + -12.76568 ], [ - 13.8254805, - 46.5047694 + -63.74229, + -12.54071 ], [ - 13.4438134, - 46.560783 + -64.32845, + -12.59578 ], [ - 13.3064132, - 46.5502848 + -65.10261, + -12.0682 ], [ - 13.1283019, - 46.5887681 + -65.45781, + -11.27865 ], [ - 12.8433237, - 46.6132433 + -65.41641, + -9.838943 ], [ - 12.7262791, - 46.6412014 + -66.52331, + -9.985873 ], [ - 12.5125455, - 46.6656529 + -67.66452, + -10.80093 ], [ - 12.3598787, - 46.7040543 + -67.99778, + -10.75991 ], [ - 12.3649676, - 46.7703197 + -68.52286, + -11.20807 ], [ - 12.2886341, - 46.7772902 + -69.88988, + -11.02776 ], [ - 12.2733674, - 46.8852187 + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 ], [ - 12.2072118, - 46.8747835 + -70.68128, + -9.669083 ], [ - 12.1308784, - 46.9026062 + -71.27536, + -10.08971 ], [ - 12.1156117, - 46.9998721 + -72.18053, + -10.09967 ], [ - 12.2530119, - 47.0657733 + -72.41623, + -9.587397 ], [ - 12.2123007, - 47.0934969 + -73.29207, + -9.454149 ], [ - 11.9833004, - 47.0449712 + -73.0625, + -9.017267 ], [ - 11.7339445, - 46.9616816 + -73.61432, + -8.40982 ], [ - 11.6321666, - 47.010283 + -74.09056, + -7.527548 ], [ - 11.5405665, - 46.9755722 + -74.03652, + -7.27885 ], [ - 11.4998553, - 47.0068129 + -73.84718, + -7.238285 ], [ - 11.418433, - 46.9651546 + -73.78618, + -6.774872 ], [ - 11.2555884, - 46.9755722 + -73.22362, + -6.430106 ], [ - 11.1130993, - 46.913036 + -73.33719, + -6.029736 ], [ - 11.0418548, - 46.7633482 + -72.93016, + -5.038711 ], [ - 10.8891879, - 46.7598621 + -71.93973, + -4.425027 ], [ - 10.7416099, - 46.7842599 + -70.96802, + -4.248294 ], [ - 10.7059877, - 46.8643462 + -70.79598, + -4.064931 ], [ - 10.5787653, - 46.8399847 + -70.02393, + -4.167345 ], [ - 10.4566318, - 46.8504267 + -69.51025, + -1.134089 ], [ - 10.4769874, - 46.9269392 + -69.70776, + -0.567619 ], [ - 10.3853873, - 46.9894592 + -70.13645, + -0.226161 ], [ - 10.2327204, - 46.8643462 + -70.14083, + 0.5844 ], [ - 10.1207647, - 46.8330223 + -69.26594, + 0.806502 ], [ - 9.8663199, - 46.9408389 + -69.34226, + 0.968924 ], [ - 9.9019422, - 47.0033426 + -69.92481, + 1.015705 ], [ - 9.6831197, - 47.0588402 + -69.92343, + 1.773851 ], [ - 9.6118752, - 47.0380354 + -68.38511, + 1.82943 ], [ - 9.6322307, - 47.128131 + -68.24848, + 2.119808 ], [ - 9.5813418, - 47.1662025 + -67.94571, + 1.948424 ], [ - 9.5406306, - 47.2664422 + -67.37696, + 2.327468 ], [ - 9.6067863, - 47.3492559 + -67.05751, + 1.858336 ], [ - 9.6729419, - 47.369939 + -67.00579, + 1.291603 ], [ - 9.6424085, - 47.4457079 + -66.79967, + 1.314684 ], [ - 9.5660751, - 47.4801122 + -66.28683, + 0.857709 ], [ - 9.7136531, - 47.5282405 + -65.67671, + 1.111146 ], [ - 9.7848976, - 47.5969187 + -65.42494, + 0.966549 ], [ - 9.8357866, - 47.5454185 + -65.15671, + 1.24203 ], [ - 9.9477423, - 47.538548 + -64.27483, + 1.601591 ], [ - 10.0902313, - 47.4491493 + -64.0486, + 2.065137 ], [ - 10.1105869, - 47.3664924 + -63.47236, + 2.279358 ], [ - 10.2428982, - 47.3871688 + -64.13446, + 2.433909 ], [ - 10.1869203, - 47.2698953 + -64.10005, + 2.723778 ], [ - 10.3243205, - 47.2975125 + -64.32628, + 3.118275 ], [ - 10.4820763, - 47.4491493 + -64.28142, + 3.541983 ], [ - 10.4311873, - 47.4869904 + -64.88451, + 4.117671 ], [ - 10.4413651, - 47.5900549 + -64.88064, + 4.342461 ], [ - 10.4871652, - 47.5522881 + -64.13653, + 4.223152 ], [ - 10.5482319, - 47.5351124 + -63.95465, + 4.021316 ], [ - 10.5991209, - 47.5660246 + -63.17706, + 4.048301 ], [ - 10.7568766, - 47.5316766 + -62.96093, + 3.763658 ], [ - 10.8891879, - 47.5454185 + -62.82024, + 4.106019 ], [ - 10.9400769, - 47.4869904 + -62.49922, + 4.270815 ], [ - 10.9960547, - 47.3906141 + -61.91181, + 4.26284 ], [ - 11.2352328, - 47.4422662 + -61.35393, + 4.630097 ], [ - 11.2810328, - 47.3975039 + -61.04904, + 4.623115 ], [ - 11.4235219, - 47.5144941 + -60.70452, + 4.969851 ], [ - 11.5761888, - 47.5076195 + -60.78709, + 5.296764 ], [ - 11.6067221, - 47.5900549 + -60.22457, + 5.371207 ], [ - 11.8357224, - 47.5866227 + -59.89857, + 5.107541 ], [ - 12.003656, - 47.6243647 + -59.97549, + 4.603025 ], [ - 12.2072118, - 47.6037815 + -59.59676, + 4.439875 ], [ - 12.1614117, - 47.6963421 + -59.41942, + 3.96994 ], [ - 12.2581008, - 47.7442718 + -59.71017, + 3.542008 ], [ - 12.2530119, - 47.6792136 + -59.88955, + 2.72301 ], [ - 12.4311232, - 47.7100408 + -59.63006, + 2.316332 ], [ - 12.4921899, - 47.631224 + -59.63382, + 1.966581 ], [ - 12.5685234, - 47.6277944 + -59.18812, + 1.478079 ], [ - 12.6295901, - 47.6894913 + -58.80545, + 1.320732 ], [ - 12.7720792, - 47.6689338 + -58.35933, + 1.689932 ], [ - 12.8331459, - 47.5419833 + -57.6, + 1.803907 ], [ - 12.975635, - 47.4732332 + -57.39854, + 2.065119 ], [ - 13.0417906, - 47.4938677 + -57.12392, + 2.128758 ], [ - 13.0367017, - 47.5557226 + -56.02925, + 1.949445 ], [ - 13.0977685, - 47.6415112 + -56.23884, + 2.263348 ], [ - 13.0316128, - 47.7100408 + -55.98195, + 2.628657 ], [ - 12.9043905, - 47.7203125 + -55.64816, + 2.519953 ], [ - 13.0061684, - 47.84683 + -54.93958, + 2.682515 ], [ - 12.9451016, - 47.9355501 + -54.24988, + 2.25056 ], [ - 12.8636793, - 47.9594103 + -53.73937, + 2.473731 ], [ - 12.8636793, - 48.0036929 + -52.98578, + 2.280494 ], [ - 12.7517236, - 48.0989418 + -52.65712, + 2.564069 ], [ - 12.8738571, - 48.2109733 + -52.41739, + 3.22121 ], [ - 12.9603683, - 48.2109733 + -51.73983, + 4.119158 ], [ - 13.0417906, - 48.2652035 + -51.7246, + 4.556867 ], [ - 13.1842797, - 48.2990682 + -51.0112, + 5.522895 ], [ - 13.2606131, - 48.2922971 + -43.48209, + 5.335832 ], [ - 13.3980133, - 48.3565867 + -29.3325, + 2.335959 + ] + ] + ] + }, + { + "name": "Imagerie Drone (Haiti)", + "type": "tms", + "template": "http://wms.openstreetmap.fr/tms/1.0.0/iomhaiti/{zoom}/{x}/{y}", + "polygon": [ + [ + [ + -72.1547401, + 19.6878969 ], [ - 13.4438134, - 48.417418 + -72.162234, + 19.689011 ], [ - 13.4387245, - 48.5523383 + -72.164995, + 19.6932445 ], [ - 13.509969, - 48.5860123 + -72.1657838, + 19.6979977 ], [ - 13.6117469, - 48.5725454 + -72.161603, + 19.7035677 ], [ - 13.7287915, - 48.5118999 + -72.1487449, + 19.7028993 ], [ - 13.7847694, - 48.5725454 + -72.1477194, + 19.7026765 ], [ - 13.8203916, - 48.6263915 + -72.1485082, + 19.7001514 ], [ - 13.7949471, - 48.7171267 + -72.1436963, + 19.7011169 ], [ - 13.850925, - 48.7741724 + -72.1410143, + 19.7000029 ], [ - 14.0595697, - 48.6633774 + -72.139476, + 19.6973664 ], [ - 14.0137696, - 48.6331182 + -72.1382533, + 19.6927617 ], [ - 14.0748364, - 48.5927444 + -72.1386872, + 19.6923161 ], [ - 14.2173255, - 48.5961101 + -72.1380561, + 19.6896423 ], [ - 14.3649034, - 48.5489696 + -72.1385294, + 19.6894938 ], [ - 14.4666813, - 48.6499311 + -72.1388055, + 19.6901251 ], [ - 14.5582815, - 48.5961101 + -72.1388844, + 19.6876741 ], [ - 14.5989926, - 48.6263915 + -72.1378195, + 19.6872656 ], [ - 14.7211261, - 48.5759124 + -72.13778, + 19.6850003 ], [ - 14.7211261, - 48.6868997 + -72.1369517, + 19.6855945 ], [ - 14.822904, - 48.7271983 + -72.136794, + 19.6840719 ], [ - 14.8178151, - 48.777526 + -72.135729, + 19.6835148 ], [ - 14.9647227, - 48.7851754 + -72.1355713, + 19.6740817 ], [ - 14.9893637, - 49.0126611 + -72.1366362, + 19.6708133 ], [ - 15.1485933, - 48.9950306 + -72.1487843, + 19.6710733 ], [ - 15.1943934, - 48.9315502 + -72.1534779, + 19.6763843 ], [ - 15.3063491, - 48.9850128 + -72.1530835, + 19.6769414 ], [ - 15.3928603, - 48.9850128 + -72.1533251, + 19.6769768 ], [ - 15.4844604, - 48.9282069 + -72.1532807, + 19.6796525 ], [ - 15.749083, - 48.8545973 + -72.1523834, + 19.6797175 ], [ - 15.8406831, - 48.8880697 + -72.1522749, + 19.6803488 ], [ - 16.0086166, - 48.7808794 + -72.1519101, + 19.6803395 ], [ - 16.2070835, - 48.7339115 + -72.1518608, + 19.6805067 ], [ - 16.3953727, - 48.7372678 + -72.1528173, + 19.6806552 ], [ - 16.4920617, - 48.8110498 + -72.1522299, + 19.6833011 ], [ - 16.6905286, - 48.7741724 + -72.1507801, + 19.6831499 ], [ - 16.7057953, - 48.7339115 + -72.1504457, + 19.6847862 ], [ - 16.8991733, - 48.713769 + -72.1508591, + 19.6843492 ], [ - 16.9755067, - 48.515271 + -72.1530087, + 19.6849898 ], [ - 16.8482844, - 48.4511817 + -72.1546258, + 19.6854354 ], [ - 16.8533733, - 48.3464411 + -72.1543103, + 19.6870694 ], [ - 16.9551512, - 48.2516513 + -72.1547244, + 19.6868466 ], [ - 16.9907734, - 48.1498955 + -72.1548501, + 19.6877564 ], [ - 17.0925513, - 48.1397088 + -72.1545814, + 19.6877982 + ] + ], + [ + [ + -72.1310601, + 19.6718929 ], [ - 17.0823736, - 48.0241182 + -72.1259842, + 19.6772765 ], [ - 17.1739737, - 48.0207146 + -72.1255379, + 19.6776179 ], [ - 17.0823736, - 47.8741447 + -72.1216891, + 19.6776442 ], [ - 16.9856845, - 47.8673174 + -72.1149677, + 19.672602 ], [ - 17.0823736, - 47.8092489 + -72.1152745, + 19.6687152 ], [ - 17.0925513, - 47.7031919 + -72.1198205, + 19.6627535 ], [ - 16.7414176, - 47.6792136 + -72.1227768, + 19.6625696 ], [ - 16.7057953, - 47.7511153 + -72.1248965, + 19.662701 ], [ - 16.5378617, - 47.7545368 + -72.1285779, + 19.6645394 ], [ - 16.5480395, - 47.7066164 + -72.1308091, + 19.6661677 ], [ - 16.4208172, - 47.6689338 + -72.1316737, + 19.668794 ], [ - 16.573484, - 47.6175045 + -72.1315621, + 19.671 + ] + ], + [ + [ + -71.845795, + 19.6709758 ], [ - 16.670173, - 47.631224 + -71.8429354, + 19.6759525 ], [ - 16.7108842, - 47.538548 + -71.8410027, + 19.6759525 ], [ - 16.6599952, - 47.4491493 + -71.8380249, + 19.6755254 ], [ - 16.5429506, - 47.3940591 + -71.8378671, + 19.6745041 ], [ - 16.4615283, - 47.3940591 + -71.8390504, + 19.6743927 ], [ - 16.4920617, - 47.276801 + -71.8390109, + 19.6741141 ], [ - 16.425906, - 47.1973317 + -71.8398392, + 19.673947 ], [ - 16.4717061, - 47.1489007 + -71.8389123, + 19.6736127 ], [ - 16.5480395, - 47.1489007 + -71.8380249, + 19.67209 ], [ - 16.476795, - 47.0796369 + -71.8380052, + 19.6726285 ], [ - 16.527684, - 47.0588402 - ] - ] - ], - "terms_text": "geoimage.at", - "id": "geoimage.at" - }, - { - "name": "Geoportal.gov.pl (Orthophotomap)", - "type": "tms", - "template": "http://wms.misek.pl/geoportal.orto/tms/{zoom}/{x}/{y}", - "scaleExtent": [ - 6, - 24 - ], - "polygon": [ - [ + -71.8376699, + 19.6727214 + ], [ - 15.9751041, - 54.3709213 + -71.8376305, + 19.672545 ], [ - 16.311164, - 54.5561775 + -71.8354414, + 19.6732135 ], [ - 17.1391878, - 54.7845723 + -71.835333, + 19.6729999 ], [ - 18.3448458, - 54.9022727 + -71.8331242, + 19.6734642 ], [ - 19.6613689, - 54.4737213 + -71.8326706, + 19.6716815 ], [ - 20.2815206, - 54.4213456 + -71.8321579, + 19.67209 ], [ - 21.4663914, - 54.3406369 + -71.8307183, + 19.6694902 ], [ - 22.7759855, - 54.3769755 + -71.8306009, + 19.6697594 ], [ - 22.8625989, - 54.4233613 + -71.8302174, + 19.6698907 ], [ - 23.2956657, - 54.2678633 + -71.8291833, + 19.6672095 ], [ - 23.5347186, - 54.0955258 + -71.8290749, + 19.6672095 ], [ - 23.5208604, - 53.9775182 + -71.8289122, + 19.6667916 ], [ - 23.7183389, - 53.4629603 + -71.8289516, + 19.6666199 ], [ - 23.9296755, - 53.1856735 + -71.8288333, + 19.6663506 ], [ - 23.9296755, - 52.6887269 + -71.8285572, + 19.6664759 ], [ - 23.732197, - 52.6067497 + -71.8288678, + 19.6672466 ], [ - 23.5658994, - 52.5878101 + -71.8287593, + 19.6674138 ], [ - 23.2090523, - 52.3302642 + -71.8277979, + 19.6678177 ], [ - 23.1951942, - 52.2370089 + -71.8277112, + 19.6678586 ], [ - 23.5035377, - 52.1860596 + -71.8278263, + 19.6679637 ], [ - 23.6906226, - 52.0030113 + -71.8271831, + 19.6681212 ], [ - 23.5970802, - 51.739903 + -71.8271761, + 19.6680917 ], [ - 23.6629063, - 51.3888562 + -71.8264405, + 19.6683921 ], [ - 23.9366046, - 50.9827781 + -71.8264074, + 19.6683231 ], [ - 24.1687284, - 50.8604752 + -71.8261954, + 19.6684253 ], [ - 24.0197534, - 50.8035823 + -71.8261806, + 19.6683556 ], [ - 24.1098313, - 50.6610467 + -71.8258946, + 19.6684206 ], [ - 24.0578633, - 50.4188439 + -71.8258897, + 19.6686574 ], [ - 23.6178674, - 50.3083403 + -71.8251551, + 19.6687549 ], [ - 22.6824431, - 49.5163532 + -71.8254509, + 19.6691588 ], [ - 22.7378756, - 49.2094935 + -71.8229332, + 19.6695739 ], [ - 22.9041733, - 49.0780441 + -71.822713, + 19.6696658 ], [ - 22.8625989, - 48.9940062 + -71.8227688, + 19.6697577 ], [ - 22.6096878, - 49.0371785 + -71.8201751, + 19.6709855 ], [ - 22.0761495, - 49.2004392 + -71.8198474, + 19.6704537 ], [ - 21.8474902, - 49.3721872 + -71.8197985, + 19.6706014 ], [ - 21.3763135, - 49.4488281 + -71.8194674, + 19.6707557 ], [ - 21.1026153, - 49.3721872 + -71.8182472, + 19.6713433 ], [ - 20.9120659, - 49.3022043 + -71.8181426, + 19.6711431 ], [ - 20.6452967, - 49.3902311 + -71.8175813, + 19.6714254 ], [ - 20.1845136, - 49.3315641 + -71.816959, + 19.6707672 ], [ - 20.1186875, - 49.2004392 + -71.8176388, + 19.6718965 ], [ - 19.9419962, - 49.1302123 + -71.8171403, + 19.6720376 ], [ - 19.765305, - 49.2117568 + -71.8158225, + 19.6718045 ], [ - 19.7479823, - 49.3992506 + -71.8138354, + 19.6711874 ], [ - 19.6024718, - 49.4150307 + -71.8123259, + 19.6706982 ], [ - 19.5089294, - 49.5815389 + -71.8121759, + 19.6704258 ], [ - 19.4292451, - 49.5905232 + -71.8124304, + 19.6701467 ], [ - 19.2317666, - 49.4150307 + -71.8119184, + 19.6700141 ], [ - 18.9961783, - 49.387976 + -71.8118765, + 19.6705828 ], [ - 18.9338167, - 49.4916048 + -71.811169, + 19.6703483 ], [ - 18.8368097, - 49.4938552 + -71.8095938, + 19.6698516 ], [ - 18.8021643, - 49.6623381 + -71.8077992, + 19.6692829 ], [ - 18.6427958, - 49.7094091 + -71.8056028, + 19.668612 ], [ - 18.521537, - 49.8994693 + -71.8051443, + 19.6668942 ], [ - 18.0815412, - 50.0109209 + -71.8051196, + 19.6652322 ], [ - 17.8875272, - 49.9886512 + -71.8052315, + 19.661979 ], [ - 17.7385522, - 50.0687739 + -71.8065603, + 19.6523921 ], [ - 17.6068999, - 50.1709584 + -71.8073412, + 19.6482946 ], [ - 17.7454813, - 50.2153184 + -71.8099686, + 19.6468292 ], [ - 17.710836, - 50.3017019 + -71.8147517, + 19.6454502 ], [ - 17.4163505, - 50.2640668 + -71.8147726, + 19.6455619 ], [ - 16.9486384, - 50.4453265 + -71.8150027, + 19.6455093 ], [ - 16.8932058, - 50.4033889 + -71.8149469, + 19.6453846 ], [ - 17.0006064, - 50.3105529 + -71.8159928, + 19.6450234 ], [ - 17.017929, - 50.2241854 + -71.8158882, + 19.6448855 ], [ - 16.8135215, - 50.186489 + -71.8165854, + 19.6446097 ], [ - 16.6402948, - 50.0976742 + -71.8190119, + 19.643802 ], [ - 16.4324227, - 50.2862087 + -71.8211524, + 19.643454 ], [ - 16.1968344, - 50.4276731 + -71.8221564, + 19.6433292 ], [ - 16.4220291, - 50.5885165 + -71.8269046, + 19.643211 ], [ - 16.3388803, - 50.6632429 + -71.8280481, + 19.6432241 ], [ - 16.2280152, - 50.6368824 + -71.8304466, + 19.6440778 ], [ - 16.0547884, - 50.6127057 + -71.8306419, + 19.6448592 ], [ - 15.5732181, - 50.7641544 + -71.8295263, + 19.6450365 ], [ - 15.2683391, - 50.8976368 + -71.8296064, + 19.6456111 ], [ - 15.2440873, - 50.980597 + -71.8299411, + 19.6455651 ], [ - 15.0292862, - 51.0133036 + -71.8303699, + 19.6451744 ], [ - 15.0015699, - 50.8582883 + -71.830471, + 19.6453452 ], [ - 14.8110205, - 50.8735944 + -71.8308092, + 19.6451974 ], [ - 14.956531, - 51.0721176 + -71.8310184, + 19.6451088 ], [ - 15.0188926, - 51.2914636 + -71.8312519, + 19.6458541 ], [ - 14.9392083, - 51.4601459 + -71.8311125, + 19.6458245 ], [ - 14.7209426, - 51.5571799 + -71.831367, + 19.6465862 ], [ - 14.7521234, - 51.6260562 + -71.8328939, + 19.646189 ], [ - 14.5996839, - 51.8427626 + -71.8344566, + 19.6457062 ], [ - 14.70362, - 52.0733396 + -71.8344664, + 19.6463052 ], [ - 14.5581095, - 52.2497371 + -71.834215, + 19.6461938 ], [ - 14.5165351, - 52.425436 + -71.8342002, + 19.6465513 ], [ - 14.6031485, - 52.5878101 + -71.8346702, + 19.6463 ], [ - 14.1146491, - 52.8208272 + -71.8349118, + 19.6463905 ], [ - 14.152759, - 52.9733951 + -71.8347984, + 19.6462187 ], [ - 14.3502374, - 53.0734212 + -71.8354393, + 19.6458496 ], [ - 14.4229927, - 53.2665624 + -71.8355034, + 19.6458032 ], [ - 14.1977979, - 53.8734759 + -71.8364747, + 19.6461328 ], [ - 14.2220497, - 53.9958517 - ] - ] - ], - "terms_text": "Copyright © Główny Urząd Geodezji i Kartografii." - }, - { - "name": "Imagerie Drone (Haiti)", - "type": "tms", - "template": "http://wms.openstreetmap.fr/tms/1.0.0/iomhaiti/{zoom}/{x}/{y}", - "polygon": [ - [ - [ - -72.1547401, - 19.6878969 + -71.8376382, + 19.6472658 ], [ - -72.162234, - 19.689011 + -71.8379143, + 19.647888 ], [ - -72.164995, - 19.6932445 + -71.8390483, + 19.6508039 ], [ - -72.1657838, - 19.6979977 + -71.8456942, + 19.6696203 + ] + ], + [ + [ + -72.098878, + 18.54843 ], [ - -72.161603, - 19.7035677 + -72.096993, + 18.5501994 ], [ - -72.1487449, - 19.7028993 + -72.0972888, + 18.5503209 ], [ - -72.1477194, - 19.7026765 + -72.0968451, + 18.5503489 ], [ - -72.1485082, - 19.7001514 + -72.0955632, + 18.551854 ], [ - -72.1436963, - 19.7011169 + -72.0956428, + 18.5526742 ], [ - -72.1410143, - 19.7000029 + -72.0959914, + 18.5533748 ], [ - -72.139476, - 19.6973664 + -72.0962145, + 18.553203 ], [ - -72.1382533, - 19.6927617 + -72.0962842, + 18.5535665 ], [ - -72.1386872, - 19.6923161 + -72.0964446, + 18.5535533 ], [ - -72.1380561, - 19.6896423 + -72.0965352, + 18.5539764 ], [ - -72.1385294, - 19.6894938 + -72.0965056, + 18.554173 ], [ - -72.1388055, - 19.6901251 + -72.0966085, + 18.5541747 ], [ - -72.1388844, - 19.6876741 + -72.0965178, + 18.5542127 ], [ - -72.1378195, - 19.6872656 + -72.0968769, + 18.5546588 ], [ - -72.13778, - 19.6850003 + -72.0979018, + 18.5552141 ], [ - -72.1369517, - 19.6855945 + -72.1006211, + 18.5555875 ], [ - -72.136794, - 19.6840719 + -72.1014926, + 18.5556206 ], [ - -72.135729, - 19.6835148 + -72.1024339, + 18.5555016 ], [ - -72.1355713, - 19.6740817 + -72.103417, + 18.5543515 ], [ - -72.1366362, - 19.6708133 + -72.1034798, + 18.5516215 ], [ - -72.1487843, - 19.6710733 + -72.1030789, + 18.5516149 ], [ - -72.1534779, - 19.6763843 + -72.1033752, + 18.5515224 ], [ - -72.1530835, - 19.6769414 + -72.1035042, + 18.5515224 ], [ - -72.1533251, - 19.6769768 + -72.1035239, + 18.5502417 ], [ - -72.1532807, - 19.6796525 + -72.1028701, + 18.5503062 ], [ - -72.1523834, - 19.6797175 + -72.1029015, + 18.55025 ], [ - -72.1522749, - 19.6803488 + -72.1028457, + 18.5501773 ], [ - -72.1519101, - 19.6803395 + -72.1035081, + 18.5500252 ], [ - -72.1518608, - 19.6805067 + -72.103491, + 18.5497396 ], [ - -72.1528173, - 19.6806552 + -72.1035181, + 18.5497361 ], [ - -72.1522299, - 19.6833011 + -72.1035398, + 18.5489039 ], [ - -72.1507801, - 19.6831499 + -72.1034317, + 18.5487056 ], [ - -72.1504457, - 19.6847862 + -72.102717, + 18.5481437 ], [ - -72.1508591, - 19.6843492 + -72.1025601, + 18.5481536 ], [ - -72.1530087, - 19.6849898 + -72.10229, + 18.5482751 ], [ - -72.1546258, - 19.6854354 + -72.1022891, + 18.5482569 ], [ - -72.1543103, - 19.6870694 + -72.1025201, + 18.5481396 ], [ - -72.1547244, - 19.6868466 + -72.1023388, + 18.5481321 ], [ - -72.1548501, - 19.6877564 + -72.0999082, + 18.5480901 ], [ - -72.1545814, - 19.6877982 + -72.09907, + 18.5483799 ] ], [ [ - -72.1310601, - 19.6718929 - ], - [ - -72.1259842, - 19.6772765 + -72.2542503, + 18.568262 ], [ - -72.1255379, - 19.6776179 + -72.2560252, + 18.5717765 ], [ - -72.1216891, - 19.6776442 + -72.2557886, + 18.5748049 ], [ - -72.1149677, - 19.672602 + -72.2535009, + 18.5755526 ], [ - -72.1152745, - 19.6687152 + -72.2522782, + 18.5755526 ], [ - -72.1198205, - 19.6627535 + -72.2499906, + 18.5740945 ], [ - -72.1227768, - 19.6625696 + -72.2473874, + 18.5698323 ], [ - -72.1248965, - 19.662701 + -72.2460069, + 18.566729 ], [ - -72.1285779, - 19.6645394 + -72.2458492, + 18.5629527 ], [ - -72.1308091, - 19.6661677 + -72.2479396, + 18.5625414 ], [ - -72.1316737, - 19.668794 + -72.2501483, + 18.5628031 ], [ - -72.1315621, - 19.671 + -72.2519232, + 18.5650839 ] ], [ [ - -71.845795, - 19.6709758 - ], - [ - -71.8429354, - 19.6759525 - ], - [ - -71.8410027, - 19.6759525 + -72.303145, + 18.5332749 ], [ - -71.8380249, - 19.6755254 + -72.3031275, + 18.5331799 ], [ - -71.8378671, - 19.6745041 + -72.3048311, + 18.5311081 ], [ - -71.8390504, - 19.6743927 + -72.3097397, + 18.5311081 ], [ - -71.8390109, - 19.6741141 + -72.3164332, + 18.5324302 ], [ - -71.8398392, - 19.673947 + -72.3234056, + 18.5366083 ], [ - -71.8389123, - 19.6736127 + -72.3261388, + 18.5387765 ], [ - -71.8380249, - 19.67209 + -72.3261946, + 18.5426371 ], [ - -71.8380052, - 19.6726285 + -72.3170468, + 18.5540596 ], [ - -71.8376699, - 19.6727214 + -72.3130864, + 18.5540596 ], [ - -71.8376305, - 19.672545 + -72.2987511, + 18.5453342 ], [ - -71.8354414, - 19.6732135 + -72.2988627, + 18.5407333 ], [ - -71.835333, - 19.6729999 + -72.2962969, + 18.5404689 ], [ - -71.8331242, - 19.6734642 + -72.2954602, + 18.5395169 ], [ - -71.8326706, - 19.6716815 + -72.2961853, + 18.5338582 ], [ - -71.8321579, - 19.67209 + -72.2971893, + 18.5332235 ], [ - -71.8307183, - 19.6694902 + -72.3007034, + 18.5332764 ], [ - -71.8306009, - 19.6697594 + -72.3022652, + 18.5342284 ], [ - -71.8302174, - 19.6698907 + -72.3028486, + 18.5335189 ], [ - -71.8291833, - 19.6672095 + -72.303104, + 18.5333361 ], [ - -71.8290749, - 19.6672095 + -72.303181, + 18.5334007 ], [ - -71.8289122, - 19.6667916 + -72.3035793, + 18.5335614 ], [ - -71.8289516, - 19.6666199 + -72.3030793, + 18.5346463 ], [ - -71.8288333, - 19.6663506 + -72.303715, + 18.5339873 ], [ - -71.8285572, - 19.6664759 + -72.3045286, + 18.5344052 ], [ - -71.8288678, - 19.6672466 + -72.3044015, + 18.5345097 ], [ - -71.8287593, - 19.6674138 + -72.3062747, + 18.5352571 ], [ - -71.8277979, - 19.6678177 + -72.3063107, + 18.5352741 ], [ - -71.8277112, - 19.6678586 + -72.3061219, + 18.5357628 ], [ - -71.8278263, - 19.6679637 + -72.3061219, + 18.5358196 ], [ - -71.8271831, - 19.6681212 + -72.30637, + 18.5358928 ], [ - -71.8271761, - 19.6680917 + -72.3062726, + 18.5354869 ], [ - -71.8264405, - 19.6683921 + -72.3066688, + 18.5350891 ], [ - -71.8264074, - 19.6683231 + -72.3061963, + 18.5349706 ], [ - -71.8261954, - 19.6684253 + -72.3058869, + 18.5349385 ], [ - -71.8261806, - 19.6683556 + -72.3055373, + 18.5346833 ], [ - -71.8258946, - 19.6684206 + -72.3054864, + 18.534613 ], [ - -71.8258897, - 19.6686574 + -72.3055585, + 18.5345065 ], [ - -71.8251551, - 19.6687549 + -72.3046749, + 18.5342293 ], [ - -71.8254509, - 19.6691588 + -72.3047617, + 18.5338817 ], [ - -71.8229332, - 19.6695739 + -72.3043252, + 18.5337511 ], [ - -71.822713, - 19.6696658 - ], + -72.3042595, + 18.5336346 + ] + ], + [ [ - -71.8227688, - 19.6697577 + -72.2981405, + 18.477502 ], [ - -71.8201751, - 19.6709855 + -72.2935652, + 18.4948587 ], [ - -71.8198474, - 19.6704537 + -72.2922242, + 18.4964297 ], [ - -71.8197985, - 19.6706014 + -72.2931708, + 18.4972526 ], [ - -71.8194674, - 19.6707557 + -72.2892266, + 18.5057058 ], [ - -71.8182472, - 19.6713433 + -72.2878067, + 18.5080996 ], [ - -71.8181426, - 19.6711431 + -72.2850458, + 18.5119893 ], [ - -71.8175813, - 19.6714254 + -72.2840203, + 18.5113161 ], [ - -71.816959, - 19.6707672 + -72.2808649, + 18.515879 ], [ - -71.8176388, - 19.6718965 + -72.2773151, + 18.5175994 ], [ - -71.8171403, - 19.6720376 + -72.2723454, + 18.5175246 ], [ - -71.8158225, - 19.6718045 + -72.2662714, + 18.5144578 ], [ - -71.8138354, - 19.6711874 + -72.2665869, + 18.5066783 ], [ - -71.8123259, - 19.6706982 + -72.2692643, + 18.5046154 ], [ - -71.8121759, - 19.6704258 + -72.2661965, + 18.5029756 ], [ - -71.8124304, - 19.6701467 + -72.2688181, + 18.4965222 ], [ - -71.8119184, - 19.6700141 + -72.2691528, + 18.4959403 ], [ - -71.8118765, - 19.6705828 + -72.2702684, + 18.4961519 ], [ - -71.811169, - 19.6703483 + -72.2702684, + 18.4955964 ], [ - -71.8095938, - 19.6698516 + -72.2690691, + 18.49557 ], [ - -71.8077992, - 19.6692829 + -72.2692922, + 18.4937714 ], [ - -71.8056028, - 19.668612 + -72.2736988, + 18.4859951 ], [ - -71.8051443, - 19.6668942 + -72.2746749, + 18.4850429 ], [ - -71.8051196, - 19.6652322 + -72.2751769, + 18.483403 ], [ - -71.8052315, - 19.661979 + -72.2765435, + 18.4813398 ], [ - -71.8065603, - 19.6523921 + -72.2773523, + 18.4814985 ], [ - -71.8073412, - 19.6482946 + -72.2783006, + 18.4809694 ], [ - -71.8099686, - 19.6468292 + -72.2778544, + 18.4807049 ], [ - -71.8147517, - 19.6454502 + -72.2771013, + 18.480123 ], [ - -71.8147726, - 19.6455619 + -72.2789978, + 18.4775836 ], [ - -71.8150027, - 19.6455093 + -72.279723, + 18.4772927 ], [ - -71.8149469, - 19.6453846 + -72.2806433, + 18.4776365 ], [ - -71.8159928, - 19.6450234 + -72.2813685, + 18.4771604 ], [ - -71.8158882, - 19.6448855 + -72.2808386, + 18.4769752 ], [ - -71.8165854, - 19.6446097 + -72.2812848, + 18.4758378 ], [ - -71.8190119, - 19.643802 + -72.2823167, + 18.4751765 ], [ - -71.8211524, - 19.643454 + -72.2851615, + 18.4750971 ], [ - -71.8221564, - 19.6433292 + -72.2849941, + 18.4763668 ], [ - -71.8269046, - 19.643211 + -72.2854404, + 18.4769752 ], [ - -71.8280481, - 19.6432241 + -72.286277, + 18.4756262 ], [ - -71.8304466, - 19.6440778 + -72.2869325, + 18.4754675 ], [ - -71.8306419, - 19.6448592 + -72.2865978, + 18.4751897 ], [ - -71.8295263, - 19.6450365 + -72.2865978, + 18.4750046 ], [ - -71.8296064, - 19.6456111 + -72.2909765, + 18.4747268 ], [ - -71.8299411, - 19.6455651 + -72.2946579, + 18.4749384 ], [ - -71.8303699, - 19.6451744 + -72.2973911, + 18.476843 + ] + ], + [ + [ + -72.3466657, + 18.5222375 ], [ - -71.830471, - 19.6453452 + -72.346833, + 18.5244325 ], [ - -71.8308092, - 19.6451974 + -72.3475303, + 18.5277645 ], [ - -71.8310184, - 19.6451088 + -72.3455501, + 18.5291131 ], [ - -71.8312519, - 19.6458541 + -72.3403069, + 18.5292189 ], [ - -71.8311125, - 19.6458245 + -72.3383267, + 18.5280289 ], [ - -71.831367, - 19.6465862 + -72.3369043, + 18.530118 ], [ - -71.8328939, - 19.646189 + -72.3338086, + 18.5296684 ], [ - -71.8344566, - 19.6457062 + -72.3289279, + 18.5270769 ], [ - -71.8344664, - 19.6463052 + -72.328649, + 18.5253316 ], [ - -71.834215, - 19.6461938 + -72.3292068, + 18.5232689 ], [ - -71.8342002, - 19.6465513 + -72.330406, + 18.5220524 ], [ - -71.8346702, - 19.6463 + -72.3321631, + 18.5221847 ], [ - -71.8349118, - 19.6463905 + -72.3322467, + 18.5191963 ], [ - -71.8347984, - 19.6462187 + -72.3369183, + 18.5183633 + ], + [ + -72.3382012, + 18.5184691 ], [ - -71.8354393, - 19.6458496 + -72.3381454, + 18.5181782 ], [ - -71.8355034, - 19.6458032 + -72.3411993, + 18.5177947 ], [ - -71.8364747, - 19.6461328 + -72.3454943, + 18.5171997 ], [ - -71.8376382, - 19.6472658 + -72.3492595, + 18.517279 ], [ - -71.8379143, - 19.647888 + -72.3504308, + 18.5188922 ], [ - -71.8390483, - 19.6508039 + -72.3503472, + 18.5206112 ], [ - -71.8456942, - 19.6696203 + -72.3496778, + 18.5220392 ] ], [ [ - -72.098878, - 18.54843 + -72.3303078, + 18.5486462 ], [ - -72.096993, - 18.5501994 + -72.3429687, + 18.5508149 ], [ - -72.0972888, - 18.5503209 + -72.3433236, + 18.5530585 ], [ - -72.0968451, - 18.5503489 + -72.3413121, + 18.5614341 ], [ - -72.0955632, - 18.551854 + -72.3390639, + 18.5613593 ], [ - -72.0956428, - 18.5526742 + -72.3384723, + 18.5638271 ], [ - -72.0959914, - 18.5533748 + -72.3375257, + 18.5654348 ], [ - -72.0962145, - 18.553203 + -72.3348436, + 18.5650609 ], [ - -72.0962842, - 18.5535665 + -72.3311755, + 18.5638271 ], [ - -72.0964446, - 18.5535533 + -72.3312149, + 18.5616211 ], [ - -72.0965352, - 18.5539764 + -72.3232082, + 18.5606863 ], [ - -72.0965056, - 18.554173 + -72.3212361, + 18.559602 ], [ - -72.0966085, - 18.5541747 + -72.3208023, + 18.5587046 ], [ - -72.0965178, - 18.5542127 + -72.3208811, + 18.557882 ], [ - -72.0968769, - 18.5546588 + -72.3259493, + 18.5580274 ], [ - -72.0979018, - 18.5552141 + -72.3266186, + 18.5581993 ], [ - -72.1006211, - 18.5555875 + -72.3259214, + 18.5577498 ], [ - -72.1014926, - 18.5556206 + -72.3250986, + 18.5573797 ], [ - -72.1024339, - 18.5555016 + -72.3233767, + 18.552263 ], [ - -72.103417, - 18.5543515 + -72.3245994, + 18.5478507 ], [ - -72.1034798, - 18.5516215 + -72.3288986, + 18.5483742 ], [ - -72.1030789, - 18.5516149 - ], + -72.329979, + 18.5489548 + ] + ], + [ [ - -72.1033752, - 18.5515224 + -72.3231383, + 18.5269828 ], [ - -72.1035042, - 18.5515224 + -72.3223434, + 18.528067 ], [ - -72.1035239, - 18.5502417 + -72.3209629, + 18.5279745 ], [ - -72.1028701, - 18.5503062 + -72.3207816, + 18.5271282 ], [ - -72.1029015, - 18.55025 + -72.3208513, + 18.5253697 ], [ - -72.1028457, - 18.5501773 + -72.3214649, + 18.5249598 ], [ - -72.1035081, - 18.5500252 + -72.3225666, + 18.5248937 ], [ - -72.103491, - 18.5497396 + -72.3228454, + 18.52533 ], [ - -72.1035181, - 18.5497361 - ], + -72.3232359, + 18.5264804 + ] + ], + [ [ - -72.1035398, - 18.5489039 + -72.2160832, + 18.6457752 ], [ - -72.1034317, - 18.5487056 + -72.2159649, + 18.6553795 ], [ - -72.102717, - 18.5481437 + -72.2030279, + 18.6558279 ], [ - -72.1025601, - 18.5481536 + -72.1947057, + 18.6553421 ], [ - -72.10229, - 18.5482751 + -72.1922208, + 18.6545573 ], [ - -72.1022891, - 18.5482569 + -72.1920631, + 18.6521283 ], [ - -72.1025201, - 18.5481396 + -72.193483, + 18.6477559 ], [ - -72.1023388, - 18.5481321 + -72.201253, + 18.6385249 ], [ - -72.0999082, - 18.5480901 + -72.2069327, + 18.6388239 ], [ - -72.09907, - 18.5483799 - ] - ], - [ + -72.2120996, + 18.6424117 + ], [ - -72.2542503, - 18.568262 + -72.2118068, + 18.6430591 ], [ - -72.2560252, - 18.5717765 + -72.2121693, + 18.6426892 ], [ - -72.2557886, - 18.5748049 + -72.2127968, + 18.6427552 ], [ - -72.2535009, - 18.5755526 + -72.2134662, + 18.6431252 ], [ - -72.2522782, - 18.5755526 + -72.2135638, + 18.6437462 ], [ - -72.2499906, - 18.5740945 + -72.2154176, + 18.6443947 ], [ - -72.2473874, - 18.5698323 + -72.2158909, + 18.6450301 + ] + ], + [ + [ + -72.2867654, + 18.6482017 ], [ - -72.2460069, - 18.566729 + -72.2900977, + 18.6527446 ], [ - -72.2458492, - 18.5629527 + -72.28981, + 18.6536532 ], [ - -72.2479396, - 18.5625414 + -72.2900738, + 18.6542664 ], [ - -72.2501483, - 18.5628031 + -72.290721, + 18.6537667 ], [ - -72.2519232, - 18.5650839 - ] - ], - [ + -72.2910327, + 18.6544709 + ], [ - -72.303145, - 18.5332749 + -72.2912485, + 18.654221 ], [ - -72.3031275, - 18.5331799 + -72.29168, + 18.6558905 ], [ - -72.3048311, - 18.5311081 + -72.2912245, + 18.656606 ], [ - -72.3097397, - 18.5311081 + -72.2922673, + 18.65597 ], [ - -72.3164332, - 18.5324302 + -72.2926869, + 18.6567536 ], [ - -72.3234056, - 18.5366083 + -72.2930705, + 18.6567309 ], [ - -72.3261388, - 18.5387765 + -72.2941253, + 18.6581846 ], [ - -72.3261946, - 18.5426371 + -72.2960192, + 18.6608421 ], [ - -72.3170468, - 18.5540596 + -72.2959713, + 18.6619096 ], [ - -72.3130864, - 18.5540596 + -72.2932862, + 18.664567 ], [ - -72.2987511, - 18.5453342 + -72.2906731, + 18.6659979 ], [ - -72.2988627, - 18.5407333 + -72.2895943, + 18.6661342 ], [ - -72.2962969, - 18.5404689 + -72.2895943, + 18.6665657 ], [ - -72.2954602, - 18.5395169 + -72.2877004, + 18.6664749 ], [ - -72.2961853, - 18.5338582 + -72.2875805, + 18.6676559 ], [ - -72.2971893, - 18.5332235 + -72.2831214, + 18.6697227 ], [ - -72.3007034, - 18.5332764 + -72.2796453, + 18.6696546 ], [ - -72.3022652, - 18.5342284 + -72.2784311, + 18.6690787 ], [ - -72.3028486, - 18.5335189 + -72.2783972, + 18.6687736 ], [ - -72.303104, - 18.5333361 + -72.277736, + 18.6691671 ], [ - -72.303181, - 18.5334007 + -72.2774394, + 18.669143 ], [ - -72.3035793, - 18.5335614 + -72.2770071, + 18.6683159 ], [ - -72.3030793, - 18.5346463 + -72.2765575, + 18.6681125 ], [ - -72.303715, - 18.5339873 + -72.2765385, + 18.6680583 ], [ - -72.3045286, - 18.5344052 + -72.2752319, + 18.6685239 ], [ - -72.3044015, - 18.5345097 + -72.2749292, + 18.6674649 ], [ - -72.3062747, - 18.5352571 + -72.2746416, + 18.6674309 ], [ - -72.3063107, - 18.5352741 + -72.2734668, + 18.6682145 ], [ - -72.3061219, - 18.5357628 + -72.2732271, + 18.6682712 ], [ - -72.3061219, - 18.5358196 + -72.2726757, + 18.6671583 ], [ - -72.30637, - 18.5358928 + -72.2719147, + 18.6674288 ], [ - -72.3062726, - 18.5354869 + -72.2718808, + 18.6673405 ], [ - -72.3066688, - 18.5350891 + -72.2688149, + 18.6681868 ], [ - -72.3061963, - 18.5349706 + -72.2688269, + 18.6671761 ], [ - -72.3058869, - 18.5349385 + -72.2690786, + 18.6668241 ], [ - -72.3055373, - 18.5346833 + -72.2688149, + 18.66679 ], [ - -72.3054864, - 18.534613 + -72.2681077, + 18.6670739 ], [ - -72.3055585, - 18.5345065 + -72.2676282, + 18.6673805 ], [ - -72.3046749, - 18.5342293 + -72.2675563, + 18.6666878 ], [ - -72.3047617, - 18.5338817 + -72.266861, + 18.666949 ], [ - -72.3043252, - 18.5337511 + -72.2655904, + 18.6673578 ], [ - -72.3042595, - 18.5336346 - ] - ], - [ + -72.2654466, + 18.6670058 + ], [ - -72.2981405, - 18.477502 + -72.2647514, + 18.6674146 ], [ - -72.2935652, - 18.4948587 + -72.2629893, + 18.6681868 ], [ - -72.2922242, - 18.4964297 + -72.2628455, + 18.6681754 ], [ - -72.2931708, - 18.4972526 + -72.2626537, + 18.6676076 ], [ - -72.2892266, - 18.5057058 + -72.2623001, + 18.6677098 ], [ - -72.2878067, - 18.5080996 + -72.2624799, + 18.6679199 ], [ - -72.2850458, - 18.5119893 + -72.2624799, + 18.6682322 ], [ - -72.2840203, - 18.5113161 + -72.262306, + 18.6682606 ], [ - -72.2808649, - 18.515879 + -72.2620963, + 18.6679654 ], [ - -72.2773151, - 18.5175994 + -72.2622761, + 18.6689193 ], [ - -72.2723454, - 18.5175246 + -72.2601484, + 18.6688966 ], [ - -72.2662714, - 18.5144578 + -72.2542749, + 18.6687944 ], [ - -72.2665869, - 18.5066783 + -72.2505388, + 18.6683476 ], [ - -72.2692643, - 18.5046154 + -72.2504371, + 18.669536 ], [ - -72.2661965, - 18.5029756 + -72.2477926, + 18.6698893 ], [ - -72.2688181, - 18.4965222 + -72.2415204, + 18.669793 ], [ - -72.2691528, - 18.4959403 + -72.2414187, + 18.6741933 ], [ - -72.2702684, - 18.4961519 + -72.2389167, + 18.6739759 ], [ - -72.2702684, - 18.4955964 + -72.2387249, + 18.6734649 ], [ - -72.2690691, - 18.49557 + -72.2383653, + 18.6733059 ], [ - -72.2692922, - 18.4937714 + -72.2387009, + 18.6739532 ], [ - -72.2736988, - 18.4859951 + -72.2375502, + 18.6738964 ], [ - -72.2746749, - 18.4850429 + -72.2374183, + 18.6735103 ], [ - -72.2751769, - 18.483403 + -72.237742, + 18.67334 ], [ - -72.2765435, - 18.4813398 + -72.2375142, + 18.6732605 ], [ - -72.2773523, - 18.4814985 + -72.236843, + 18.6734876 ], [ - -72.2783006, - 18.4809694 + -72.2364354, + 18.6724088 ], [ - -72.2778544, - 18.4807049 + -72.2355124, + 18.6726019 ], [ - -72.2771013, - 18.480123 + -72.2354045, + 18.6724202 ], [ - -72.2789978, - 18.4775836 + -72.2353027, + 18.6729028 ], [ - -72.279723, - 18.4772927 + -72.2345475, + 18.6726871 ], [ - -72.2806433, - 18.4776365 + -72.2343077, + 18.6724599 ], [ - -72.2813685, - 18.4771604 + -72.2342358, + 18.6734706 ], [ - -72.2808386, - 18.4769752 + -72.2334087, + 18.6734592 ], [ - -72.2812848, - 18.4758378 + -72.2332889, + 18.6733003 ], [ - -72.2823167, - 18.4751765 + -72.2327375, + 18.6732889 ], [ - -72.2851615, - 18.4750971 + -72.2327135, + 18.6735047 ], [ - -72.2849941, - 18.4763668 + -72.227703, + 18.6725281 ], [ - -72.2854404, - 18.4769752 + -72.2265283, + 18.6716537 ], [ - -72.286277, - 18.4756262 + -72.226804, + 18.6715742 ], [ - -72.2869325, - 18.4754675 + -72.2274993, + 18.6715855 ], [ - -72.2865978, - 18.4751897 + -72.2274873, + 18.6714493 ], [ - -72.2865978, - 18.4750046 + -72.2272899, + 18.6714623 ], [ - -72.2909765, - 18.4747268 + -72.2272814, + 18.6712977 ], [ - -72.2946579, - 18.4749384 + -72.2272094, + 18.671358 ], [ - -72.2973911, - 18.476843 - ] - ], - [ + -72.2261785, + 18.6713693 + ], [ - -72.3466657, - 18.5222375 + -72.2256032, + 18.670881 ], [ - -72.346833, - 18.5244325 + -72.2255073, + 18.6694502 ], [ - -72.3475303, - 18.5277645 + -72.2261066, + 18.6696886 ], [ - -72.3455501, - 18.5291131 + -72.2261785, + 18.6695949 ], [ - -72.3403069, - 18.5292189 + -72.2259837, + 18.6695495 ], [ - -72.3383267, - 18.5280289 + -72.225777, + 18.6691379 ], [ - -72.3369043, - 18.530118 + -72.2253335, + 18.6694643 ], [ - -72.3338086, - 18.5296684 + -72.2249739, + 18.66947 ], [ - -72.3289279, - 18.5270769 + -72.2245783, + 18.6678802 ], [ - -72.328649, - 18.5253316 + -72.2235525, + 18.6677046 ], [ - -72.3292068, - 18.5232689 + -72.2235907, + 18.6675921 ], [ - -72.330406, - 18.5220524 + -72.2224634, + 18.6676283 ], [ - -72.3321631, - 18.5221847 + -72.2223659, + 18.667022 ], [ - -72.3322467, - 18.5191963 + -72.2223277, + 18.6670943 ], [ - -72.3369183, - 18.5183633 + -72.2219209, + 18.667026 ], [ - -72.3382012, - 18.5184691 + -72.2208105, + 18.6669015 ], [ - -72.3381454, - 18.5181782 + -72.220809, + 18.6665325 ], [ - -72.3411993, - 18.5177947 + -72.2208705, + 18.6663593 ], [ - -72.3454943, - 18.5171997 + -72.2206023, + 18.6668107 ], [ - -72.3492595, - 18.517279 + -72.2203895, + 18.6666361 ], [ - -72.3504308, - 18.5188922 + -72.2184341, + 18.6650535 ], [ - -72.3503472, - 18.5206112 + -72.21829, + 18.6640979 ], [ - -72.3496778, - 18.5220392 - ] - ], - [ + -72.2183493, + 18.6608376 + ], [ - -72.3303078, - 18.5486462 + -72.2187223, + 18.6606541 ], [ - -72.3429687, - 18.5508149 + -72.2186894, + 18.660603 ], [ - -72.3433236, - 18.5530585 + -72.2187253, + 18.6604525 ], [ - -72.3413121, - 18.5614341 + -72.2189771, + 18.6603247 ], [ - -72.3390639, - 18.5613593 + -72.2187823, + 18.6601998 ], [ - -72.3384723, - 18.5638271 + -72.2186984, + 18.6602367 ], [ - -72.3375257, - 18.5654348 + -72.2185815, + 18.6600352 ], [ - -72.3348436, - 18.5650609 + -72.2186085, + 18.6600039 ], [ - -72.3311755, - 18.5638271 + -72.2187823, + 18.6601345 ], [ - -72.3312149, - 18.5616211 + -72.218995, + 18.6600181 ], [ - -72.3232082, - 18.5606863 + -72.2189111, + 18.6599131 ], [ - -72.3212361, - 18.559602 + -72.2189681, + 18.6597938 ], [ - -72.3208023, - 18.5587046 + -72.2183807, + 18.6595837 ], [ - -72.3208811, - 18.557882 + -72.2184728, + 18.6539662 ], [ - -72.3259493, - 18.5580274 + -72.2201001, + 18.6511554 ], [ - -72.3266186, - 18.5581993 + -72.225796, + 18.6469472 ], [ - -72.3259214, - 18.5577498 + -72.2283048, + 18.6457265 ], [ - -72.3250986, - 18.5573797 + -72.2379335, + 18.645855 ], [ - -72.3233767, - 18.552263 + -72.237764, + 18.6446985 ], [ - -72.3245994, - 18.5478507 + -72.2400355, + 18.6432529 ], [ - -72.3288986, - 18.5483742 + -72.2455958, + 18.6433493 ], [ - -72.329979, - 18.5489548 - ] - ], - [ - [ - -72.3231383, - 18.5269828 + -72.2482742, + 18.6450358 ], [ - -72.3223434, - 18.528067 + -72.2487488, + 18.6436705 ], [ - -72.3209629, - 18.5279745 + -72.2511067, + 18.6429775 ], [ - -72.3207816, - 18.5271282 + -72.2512385, + 18.6433409 ], [ - -72.3208513, - 18.5253697 + -72.2512625, + 18.6431592 ], [ - -72.3214649, - 18.5249598 + -72.2514843, + 18.6431365 ], [ - -72.3225666, - 18.5248937 + -72.2513284, + 18.6429718 ], [ - -72.3228454, - 18.52533 + -72.2533602, + 18.6423471 ], [ - -72.3232359, - 18.5264804 - ] - ], - [ + -72.253516, + 18.6426765 + ], [ - -72.2160832, - 18.6457752 + -72.2539535, + 18.6425402 ], [ - -72.2159649, - 18.6553795 + -72.2541453, + 18.642932 ], [ - -72.2030279, - 18.6558279 + -72.2543851, + 18.6428696 ], [ - -72.1947057, - 18.6553421 + -72.2543791, + 18.6427503 ], [ - -72.1922208, - 18.6545573 + -72.2564168, + 18.6423244 ], [ - -72.1920631, - 18.6521283 + -72.2566925, + 18.6431365 ], [ - -72.193483, - 18.6477559 + -72.2568783, + 18.6428582 ], [ - -72.201253, - 18.6385249 + -72.2568184, + 18.6425288 ], [ - -72.2069327, - 18.6388239 + -72.258843, + 18.6420991 ], [ - -72.2120996, - 18.6424117 + -72.258885, + 18.6422467 ], [ - -72.2118068, - 18.6430591 + -72.2592626, + 18.6422297 ], [ - -72.2121693, - 18.6426892 + -72.2596461, + 18.6424057 ], [ - -72.2127968, - 18.6427552 + -72.2592206, + 18.6406907 ], [ - -72.2134662, - 18.6431252 + -72.2599545, + 18.6404815 ], [ - -72.2135638, - 18.6437462 + -72.2601156, + 18.6406341 ], [ - -72.2154176, - 18.6443947 + -72.2601156, + 18.6399393 ], [ - -72.2158909, - 18.6450301 - ] - ], - [ + -72.2615268, + 18.6394669 + ], [ - -72.2867654, - 18.6482017 + -72.2626056, + 18.6391034 ], [ - -72.2900977, - 18.6527446 + -72.2654465, + 18.6387286 ], [ - -72.28981, - 18.6536532 + -72.2719433, + 18.6386832 ], [ - -72.2900738, - 18.6542664 + -72.272201, + 18.6388649 ], [ - -72.290721, - 18.6537667 + -72.2730341, + 18.6394158 ], [ - -72.2910327, - 18.6544709 + -72.273166, + 18.6412558 ], [ - -72.2912485, - 18.654221 + -72.2738732, + 18.6410286 ], [ - -72.29168, - 18.6558905 + -72.2742208, + 18.6416079 ], [ - -72.2912245, - 18.656606 + -72.2752187, + 18.6416987 ], [ - -72.2922673, - 18.65597 + -72.2754524, + 18.6415738 ], [ - -72.2926869, - 18.6567536 + -72.2755513, + 18.6416874 ], [ - -72.2930705, - 18.6567309 + -72.2755394, + 18.6417527 ], [ - -72.2941253, - 18.6581846 + -72.2764713, + 18.6418634 ], [ - -72.2960192, - 18.6608421 + -72.276753, + 18.6418975 ], [ - -72.2959713, - 18.6619096 + -72.2762953, + 18.6426002 ], [ - -72.2932862, - 18.664567 + -72.2774226, + 18.6429978 ], [ - -72.2906731, - 18.6659979 + -72.277982, + 18.6427247 ], [ - -72.2895943, - 18.6661342 + -72.2785796, + 18.6431303 ], [ - -72.2895943, - 18.6665657 + -72.2785669, + 18.6432307 ], [ - -72.2877004, - 18.6664749 + -72.2789017, + 18.6433471 ], [ - -72.2875805, - 18.6676559 + -72.279851, + 18.6439655 ], [ - -72.2831214, - 18.6697227 + -72.2858703, + 18.6469651 + ] + ], + [ + [ + -72.5557247, + 18.5305893 ], [ - -72.2796453, - 18.6696546 + -72.5555866, + 18.5367036 ], [ - -72.2784311, - 18.6690787 + -72.554995, + 18.537975 ], [ - -72.2783972, - 18.6687736 + -72.5488026, + 18.537919 ], [ - -72.277736, - 18.6691671 + -72.5486646, + 18.5372832 ], [ - -72.2774394, - 18.669143 + -72.548842, + 18.5306267 ], [ - -72.2770071, - 18.6683159 + -72.5493745, + 18.5301031 ], [ - -72.2765575, - 18.6681125 + -72.555133, + 18.5301218 + ] + ], + [ + [ + -72.6235278, + 18.5079877 ], [ - -72.2765385, - 18.6680583 + -72.6234441, + 18.5095217 ], [ - -72.2752319, - 18.6685239 + -72.6226074, + 18.5104341 ], [ - -72.2749292, - 18.6674649 + -72.6204878, + 18.511849 ], [ - -72.2746416, - 18.6674309 + -72.6183403, + 18.5107514 ], [ - -72.2734668, - 18.6682145 + -72.6162207, + 18.5083183 ], [ - -72.2732271, - 18.6682712 + -72.6162625, + 18.506467 ], [ - -72.2726757, - 18.6671583 + -72.618661, + 18.5044438 ], [ - -72.2719147, - 18.6674288 + -72.6204041, + 18.5044967 ], [ - -72.2718808, - 18.6673405 + -72.6228305, + 18.506996 + ] + ] + ] + }, + { + "name": "Interspect ortofotó 2014", + "type": "tms", + "description": "Four districts of Budapest: III, XIII, XIV, XV", + "template": "http://geoserver.infobex.hu/Budapest2014/IST/{zoom}/{x}/{y}.jpg", + "scaleExtent": [ + 10, + 21 + ], + "polygon": [ + [ + [ + 19.04642, + 47.61098 ], [ - -72.2688149, - 18.6681868 + 19.05375, + 47.60995 ], [ - -72.2688269, - 18.6671761 + 19.06033, + 47.61037 ], [ - -72.2690786, - 18.6668241 + 19.06022, + 47.61009 ], [ - -72.2688149, - 18.66679 + 19.06091, + 47.61023 ], [ - -72.2681077, - 18.6670739 + 19.0755, + 47.60835 ], [ - -72.2676282, - 18.6673805 + 19.07796, + 47.60718 ], [ - -72.2675563, - 18.6666878 + 19.07773, + 47.60627 ], [ - -72.266861, - 18.666949 + 19.07599, + 47.60433 ], [ - -72.2655904, - 18.6673578 + 19.07337, + 47.59906 ], [ - -72.2654466, - 18.6670058 + 19.07232, + 47.59332 ], [ - -72.2647514, - 18.6674146 + 19.0723, + 47.58865 ], [ - -72.2629893, - 18.6681868 + 19.0693, + 47.5798 ], [ - -72.2628455, - 18.6681754 + 19.06891, + 47.57742 ], [ - -72.2626537, - 18.6676076 + 19.06949, + 47.57211 ], [ - -72.2623001, - 18.6677098 + 19.06623, + 47.56375 ], [ - -72.2624799, - 18.6679199 + 19.06717, + 47.56427 ], [ - -72.2624799, - 18.6682322 + 19.0692, + 47.56456 ], [ - -72.262306, - 18.6682606 + 19.06992, + 47.56418 ], [ - -72.2620963, - 18.6679654 + 19.07011, + 47.56363 ], [ - -72.2622761, - 18.6689193 + 19.07785, + 47.56148 ], [ - -72.2601484, - 18.6688966 + 19.07986, + 47.56053 ], [ - -72.2542749, - 18.6687944 + 19.08359, + 47.55604 ], [ - -72.2505388, - 18.6683476 + 19.08516, + 47.5548 ], [ - -72.2504371, - 18.669536 + 19.08601, + 47.5551 ], [ - -72.2477926, - 18.6698893 + 19.08703, + 47.55488 ], [ - -72.2415204, - 18.669793 + 19.0984, + 47.54666 ], [ - -72.2414187, - 18.6741933 + 19.09974, + 47.54692 ], [ - -72.2389167, - 18.6739759 + 19.10094, + 47.54656 ], [ - -72.2387249, - 18.6734649 + 19.1015, + 47.54593 ], [ - -72.2383653, - 18.6733059 + 19.1015, + 47.54523 ], [ - -72.2387009, - 18.6739532 + 19.10255, + 47.54458 ], [ - -72.2375502, - 18.6738964 + 19.10939, + 47.56255 ], [ - -72.2374183, - 18.6735103 + 19.10917, + 47.56324 ], [ - -72.237742, - 18.67334 + 19.11193, + 47.57058 ], [ - -72.2375142, - 18.6732605 + 19.11235, + 47.57087 ], [ - -72.236843, - 18.6734876 + 19.11271, + 47.57297 ], [ - -72.2364354, - 18.6724088 + 19.11382, + 47.57379 ], [ - -72.2355124, - 18.6726019 + 19.1144, + 47.57504 ], [ - -72.2354045, - 18.6724202 + 19.11779, + 47.58375 ], [ - -72.2353027, - 18.6729028 + 19.11774, + 47.5844 ], [ - -72.2345475, - 18.6726871 + 19.11844, + 47.58512 ], [ - -72.2343077, - 18.6724599 + 19.12, + 47.58924 ], [ - -72.2342358, - 18.6734706 + 19.12008, + 47.59563 ], [ - -72.2334087, - 18.6734592 + 19.1206, + 47.59856 ], [ - -72.2332889, - 18.6733003 + 19.12127, + 47.59952 ], [ - -72.2327375, - 18.6732889 + 19.12266, + 47.6004 ], [ - -72.2327135, - 18.6735047 + 19.12436, + 47.6008 ], [ - -72.227703, - 18.6725281 + 19.1255, + 47.60048 ], [ - -72.2265283, - 18.6716537 + 19.12577, + 47.5997 ], [ - -72.226804, - 18.6715742 + 19.128, + 47.59885 ], [ - -72.2274993, - 18.6715855 + 19.13058, + 47.59898 ], [ - -72.2274873, - 18.6714493 + 19.13768, + 47.60057 ], [ - -72.2272899, - 18.6714623 + 19.13874, + 47.60043 ], [ - -72.2272814, - 18.6712977 + 19.14144, + 47.59639 ], [ - -72.2272094, - 18.671358 + 19.14122, + 47.59568 ], [ - -72.2261785, - 18.6713693 + 19.14023, + 47.59527 ], [ - -72.2256032, - 18.670881 + 19.15557, + 47.58499 ], [ - -72.2255073, - 18.6694502 + 19.15413, + 47.58389 ], [ - -72.2261066, - 18.6696886 + 19.15329, + 47.58013 ], [ - -72.2261785, - 18.6695949 + 19.15344, + 47.57918 ], [ - -72.2259837, - 18.6695495 + 19.15499, + 47.57884 ], [ - -72.225777, - 18.6691379 + 19.16043, + 47.57871 ], [ - -72.2253335, - 18.6694643 + 19.16043, + 47.57583 ], [ - -72.2249739, - 18.66947 + 19.16213, + 47.57583 ], [ - -72.2245783, - 18.6678802 + 19.16196, + 47.57383 ], [ - -72.2235525, - 18.6677046 + 19.17573, + 47.56442 ], [ - -72.2235907, - 18.6675921 + 19.17511, + 47.56345 ], [ - -72.2224634, - 18.6676283 + 19.16356, + 47.55986 ], [ - -72.2223659, - 18.667022 + 19.16295, + 47.5594 ], [ - -72.2223277, - 18.6670943 + 19.17589, + 47.55134 ], [ - -72.2219209, - 18.667026 + 19.18156, + 47.54896 ], [ - -72.2208105, - 18.6669015 + 19.18205, + 47.5483 ], [ - -72.220809, - 18.6665325 + 19.18165, + 47.54762 ], [ - -72.2208705, - 18.6663593 + 19.16905, + 47.53994 ], [ - -72.2206023, - 18.6668107 + 19.15316, + 47.52885 ], [ - -72.2203895, - 18.6666361 + 19.14747, + 47.52584 ], [ - -72.2184341, - 18.6650535 + 19.14691, + 47.52332 ], [ - -72.21829, - 18.6640979 + 19.14947, + 47.52059 ], [ - -72.2183493, - 18.6608376 + 19.15581, + 47.51256 ], [ - -72.2187223, - 18.6606541 + 19.1572, + 47.51155 ], [ - -72.2186894, - 18.660603 + 19.15697, + 47.51051 ], [ - -72.2187253, - 18.6604525 + 19.15885, + 47.50566 ], [ - -72.2189771, - 18.6603247 + 19.15866, + 47.50493 ], [ - -72.2187823, - 18.6601998 + 19.15793, + 47.50438 ], [ - -72.2186984, - 18.6602367 + 19.10292, + 47.49828 ], [ - -72.2185815, - 18.6600352 + 19.1016, + 47.49846 ], [ - -72.2186085, - 18.6600039 + 19.10057, + 47.49914 ], [ - -72.2187823, - 18.6601345 + 19.09185, + 47.5003 ], [ - -72.218995, - 18.6600181 + 19.08953, + 47.50117 ], [ - -72.2189111, - 18.6599131 + 19.07138, + 47.51722 + ], + [ + 19.06794, + 47.51558 ], [ - -72.2189681, - 18.6597938 + 19.06631, + 47.51529 ], [ - -72.2183807, - 18.6595837 + 19.06522, + 47.51545 ], [ - -72.2184728, - 18.6539662 + 19.06347, + 47.51668 ], [ - -72.2201001, - 18.6511554 + 19.06072, + 47.51512 ], [ - -72.225796, - 18.6469472 + 19.05709, + 47.51044 ], [ - -72.2283048, - 18.6457265 + 19.05567, + 47.50992 ], [ - -72.2379335, - 18.645855 + 19.05417, + 47.50997 ], [ - -72.237764, - 18.6446985 + 19.04318, + 47.51383 ], [ - -72.2400355, - 18.6432529 + 19.04093, + 47.51397 ], [ - -72.2455958, - 18.6433493 + 19.04045, + 47.51449 ], [ - -72.2482742, - 18.6450358 + 19.03916, + 47.51909 ], [ - -72.2487488, - 18.6436705 + 19.03898, + 47.52143 ], [ - -72.2511067, - 18.6429775 + 19.03938, + 47.52358 ], [ - -72.2512385, - 18.6433409 + 19.04081, + 47.52649 ], [ - -72.2512625, - 18.6431592 + 19.0408, + 47.53092 ], [ - -72.2514843, - 18.6431365 + 19.02088, + 47.53091 ], [ - -72.2513284, - 18.6429718 + 19.02088, + 47.529 ], [ - -72.2533602, - 18.6423471 + 19.0172, + 47.52866 ], [ - -72.253516, - 18.6426765 + 19.01684, + 47.52876 ], [ - -72.2539535, - 18.6425402 + 19.01453, + 47.53356 ], [ - -72.2541453, - 18.642932 + 19.01459, + 47.5347 ], [ - -72.2543851, - 18.6428696 + 19.01373, + 47.5348 ], [ - -72.2543791, - 18.6427503 + 19.01167, + 47.53786 ], [ - -72.2564168, - 18.6423244 + 19.01055, + 47.53839 ], [ - -72.2566925, - 18.6431365 + 19.0051, + 47.53978 ], [ - -72.2568783, - 18.6428582 + 19.00501, + 47.54075 ], [ - -72.2568184, - 18.6425288 + 19.00761, + 47.54245 ], [ - -72.258843, - 18.6420991 + 19.00684, + 47.54297 ], [ - -72.258885, - 18.6422467 + 19.00684, + 47.54385 ], [ - -72.2592626, - 18.6422297 + 19.00525, + 47.54499 ], [ - -72.2596461, - 18.6424057 + 19.0053, + 47.5455 ], [ - -72.2592206, - 18.6406907 + 19.00462, + 47.54557 ], [ - -72.2599545, - 18.6404815 + 19.00434, + 47.54599 ], [ - -72.2601156, - 18.6406341 + 19.00261, + 47.55075 ], [ - -72.2601156, - 18.6399393 + 18.99714, + 47.55468 ], [ - -72.2615268, - 18.6394669 + 18.99466, + 47.55877 ], [ - -72.2626056, - 18.6391034 + 18.99244, + 47.5605 ], [ - -72.2654465, - 18.6387286 + 18.99173, + 47.56266 ], [ - -72.2719433, - 18.6386832 + 18.99105, + 47.56278 ], [ - -72.272201, - 18.6388649 + 18.986, + 47.56863 ], [ - -72.2730341, - 18.6394158 + 18.97914, + 47.57257 ], [ - -72.273166, - 18.6412558 + 18.97675, + 47.57301 ], [ - -72.2738732, - 18.6410286 + 18.97622, + 47.57444 ], [ - -72.2742208, - 18.6416079 + 18.97677, + 47.57463 ], [ - -72.2752187, - 18.6416987 + 18.97641, + 47.57596 ], [ - -72.2754524, - 18.6415738 + 18.98247, + 47.58127 ], [ - -72.2755513, - 18.6416874 + 18.98227, + 47.58198 ], [ - -72.2755394, - 18.6417527 + 18.98276, + 47.58283 ], [ - -72.2764713, - 18.6418634 + 18.97695, + 47.58448 ], [ - -72.276753, - 18.6418975 + 18.97645, + 47.58485 ], [ - -72.2762953, - 18.6426002 + 18.97639, + 47.58555 ], [ - -72.2774226, - 18.6429978 + 18.98285, + 47.58936 ], [ - -72.277982, - 18.6427247 + 18.9841, + 47.58929 ], [ - -72.2785796, - 18.6431303 + 18.99076, + 47.58612 ], [ - -72.2785669, - 18.6432307 + 18.99375, + 47.58507 ], [ - -72.2789017, - 18.6433471 + 18.99618, + 47.58645 ], [ - -72.279851, - 18.6439655 + 18.99727, + 47.58664 ], [ - -72.2858703, - 18.6469651 - ] - ], - [ + 19.00068, + 47.58457 + ], [ - -72.5557247, - 18.5305893 + 19.0016, + 47.58438 ], [ - -72.5555866, - 18.5367036 + 19.00892, + 47.58637 ], [ - -72.554995, - 18.537975 + 19.01088, + 47.58637 ], [ - -72.5488026, - 18.537919 + 19.01088, + 47.5869 ], [ - -72.5486646, - 18.5372832 + 19.01264, + 47.58738 ], [ - -72.548842, - 18.5306267 + 19.02151, + 47.58876 ], [ - -72.5493745, - 18.5301031 + 19.02593, + 47.58914 ], [ - -72.555133, - 18.5301218 - ] - ], - [ + 19.03271, + 47.5883 + ], [ - -72.6235278, - 18.5079877 + 19.03199, + 47.59087 ], [ - -72.6234441, - 18.5095217 + 19.03113, + 47.59163 ], [ - -72.6226074, - 18.5104341 + 19.03125, + 47.59276 ], [ - -72.6204878, - 18.511849 + 19.02883, + 47.59838 ], [ - -72.6183403, - 18.5107514 + 19.02808, + 47.59978 ], [ - -72.6162207, - 18.5083183 + 19.0239, + 47.60425 ], [ - -72.6162625, - 18.506467 + 19.02393, + 47.60498 ], [ - -72.618661, - 18.5044438 + 19.02531, + 47.60575 ], [ - -72.6204041, - 18.5044967 + 19.03768, + 47.6104 ], [ - -72.6228305, - 18.506996 + 19.04642, + 47.61098 ] ] - ] + ], + "terms_url": "http://interspect.hu/", + "terms_text": "Interspect Kft." }, { "name": "Ireland Bartholomew Quarter-Inch 1940", @@ -9061,6 +14623,74 @@ iD.data.imagery = [ ], "terms_text": "AGIS OF2011" }, + { + "name": "Kanton Aargau 25cm (AGIS 2014)", + "type": "tms", + "template": "http://mapproxy.osm.ch:8080/tiles/AGIS2014/EPSG900913/{z}/{x}/{y}.png?origin=nw", + "scaleExtent": [ + 8, + 19 + ], + "polygon": [ + [ + [ + 7.7, + 47.12 + ], + [ + 7.7, + 47.63 + ], + [ + 8.5, + 47.63 + ], + [ + 8.5, + 47.12 + ], + [ + 7.7, + 47.12 + ] + ] + ], + "terms_text": "AGIS OF2014" + }, + { + "name": "Kanton Solothurn 25cm (SOGIS 2011-2014)", + "type": "tms", + "template": "http://mapproxy.osm.ch:8080/tiles/sogis2014/EPSG900913/{z}/{x}/{y}.png?origin=nw", + "scaleExtent": [ + 12, + 19 + ], + "polygon": [ + [ + [ + 7.08, + 47.03 + ], + [ + 7.08, + 47.54 + ], + [ + 8.04, + 47.54 + ], + [ + 8.04, + 47.03 + ], + [ + 7.08, + 47.03 + ] + ] + ], + "terms_text": "Orthofoto WMS Solothurn" + }, { "name": "Katastrálna mapa Slovenska (KaPor, 2010-04)", "type": "tms", @@ -23989,6 +29619,41 @@ iD.data.imagery = [ ] ] }, + { + "name": "Szeged ortophoto 2011", + "type": "tms", + "template": "http://e.tile.openstreetmap.hu/szeged-2011-10cm/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 10, + 22 + ], + "polygon": [ + [ + [ + 20.1103390994, + 46.226038352 + ], + [ + 20.1103390994, + 46.2791486357 + ], + [ + 20.1989636982, + 46.2791486357 + ], + [ + 20.1989636982, + 46.226038352 + ], + [ + 20.1103390994, + 46.226038352 + ] + ] + ], + "terms_url": "http://www.geo.u-szeged.hu", + "terms_text": "SZTE TFGT - University of Szeged" + }, { "name": "Toulouse - Orthophotoplan 2007", "type": "tms", @@ -32441,5 +38106,39 @@ iD.data.imagery = [ ], "terms_text": "basemap.at", "id": "basemap.at" + }, + { + "name": "Übersichtsplan Zürich", + "type": "tms", + "template": "http://mapproxy.sosm.ch:8080/tiles/zh_uebersichtsplan/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 8.4482, + 47.321 + ], + [ + 8.4482, + 47.4339 + ], + [ + 8.6248, + 47.4339 + ], + [ + 8.6248, + 47.321 + ], + [ + 8.4482, + 47.321 + ] + ] + ], + "terms_text": "Stadt Zürich Open Government Data" } ]; \ No newline at end of file diff --git a/vendor/assets/iD/presets.js b/vendor/assets/iD/presets.js index 9ef8ee97c..507c415ff 100644 --- a/vendor/assets/iD/presets.js +++ b/vendor/assets/iD/presets.js @@ -525,6 +525,28 @@ iD.data.presets = { }, "name": "Bicycle Repair Station" }, + "amenity/biergarten": { + "icon": "beer", + "fields": [ + "address", + "building_area", + "opening_hours", + "smoking" + ], + "geometry": [ + "point", + "area" + ], + "tags": { + "amenity": "biergarten" + }, + "terms": [ + "beer", + "bier", + "booze" + ], + "name": "Beer Garden" + }, "amenity/boat_rental": { "fields": [ "operator" @@ -1537,6 +1559,33 @@ iD.data.presets = { }, "name": "Restaurant" }, + "amenity/sanitary_dump_station": { + "fields": [ + "operator", + "access_toilets", + "fee", + "water_point" + ], + "geometry": [ + "point", + "vertex", + "area" + ], + "terms": [ + "Motor Home", + "Camper", + "Sanitary", + "Dump Station", + "Elsan", + "CDP", + "CTDP", + "Chemical Toilet" + ], + "tags": { + "amenity": "sanitary_dump_station" + }, + "name": "RV Toilet Disposal" + }, "amenity/school": { "icon": "school", "fields": [ @@ -1761,7 +1810,8 @@ iD.data.presets = { "operator", "building_area", "access_toilets", - "gender" + "gender", + "fee" ], "geometry": [ "point", @@ -4997,6 +5047,15 @@ iD.data.presets = { }, "leisure/marina": { "icon": "harbor", + "fields": [ + "operator", + "address", + "capacity", + "fee", + "sanitary_dump_station", + "power_supply", + "internet_access" + ], "geometry": [ "point", "vertex", @@ -5390,6 +5449,9 @@ iD.data.presets = { }, "man_made/lighthouse": { "icon": "lighthouse", + "fields": [ + "building_area" + ], "geometry": [ "point", "area" @@ -5478,6 +5540,45 @@ iD.data.presets = { }, "name": "Pipeline" }, + "man_made/silo": { + "fields": [ + "building_area", + "crop" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "grain", + "corn", + "wheat" + ], + "tags": { + "man_made": "silo" + }, + "name": "Silo" + }, + "man_made/storage_tank": { + "fields": [ + "building_area", + "content" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "water", + "oil", + "gas", + "petrol" + ], + "tags": { + "man_made": "storage_tank" + }, + "name": "Storage Tank" + }, "man_made/survey_point": { "icon": "monument", "fields": [ @@ -8991,29 +9092,43 @@ iD.data.presets = { "icon": "campsite", "fields": [ "operator", - "address" + "address", + "capacity", + "fee" ], "geometry": [ "point", "vertex", "area" ], + "terms": [ + "Tent" + ], "tags": { "tourism": "camp_site" }, "name": "Camp Site" }, "tourism/caravan_site": { + "icon": "bus", "fields": [ "operator", "address", - "smoking" + "capacity", + "fee", + "sanitary_dump_station", + "power_supply", + "internet_access" ], "geometry": [ "point", "vertex", "area" ], + "terms": [ + "Motor Home", + "Camper" + ], "tags": { "tourism": "caravan_site" }, @@ -9697,6 +9812,29 @@ iD.data.presets = { }, "name": "Drain" }, + "waterway/fuel": { + "icon": "fuel", + "fields": [ + "operator", + "address", + "building_area", + "opening_hours" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "petrol", + "gas", + "diesel", + "boat" + ], + "tags": { + "waterway": "fuel" + }, + "name": "Marine Fuel Station" + }, "waterway/river": { "icon": "waterway-river", "fields": [ @@ -9736,6 +9874,35 @@ iD.data.presets = { }, "name": "Riverbank" }, + "waterway/sanitary_dump_station": { + "fields": [ + "operator", + "access_toilets", + "fee", + "water_point" + ], + "geometry": [ + "point", + "vertex", + "area" + ], + "terms": [ + "Boat", + "Watercraft", + "Sanitary", + "Dump Station", + "Pumpout", + "Pump out", + "Elsan", + "CDP", + "CTDP", + "Chemical Toilet" + ], + "tags": { + "waterway": "sanitary_dump_station" + }, + "name": "Marine Toilet Disposal" + }, "waterway/stream": { "icon": "waterway-stream", "fields": [ @@ -12277,25 +12444,6 @@ iD.data.presets = { ], "suggestion": true }, - "amenity/fuel/Stacja paliw": { - "tags": { - "name": "Stacja paliw", - "amenity": "fuel" - }, - "name": "Stacja paliw", - "icon": "fuel", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "amenity/fuel/Bharat Petroleum": { "tags": { "name": "Bharat Petroleum", @@ -14753,6 +14901,7 @@ iD.data.presets = { "amenity/fast_food/Taco Bell": { "tags": { "name": "Taco Bell", + "cuisine": "mexican", "amenity": "fast_food" }, "name": "Taco Bell", @@ -14871,30 +15020,6 @@ iD.data.presets = { ], "suggestion": true }, - "amenity/fast_food/Kebab": { - "tags": { - "name": "Kebab", - "amenity": "fast_food" - }, - "name": "Kebab", - "icon": "fast-food", - "geometry": [ - "point", - "area" - ], - "fields": [ - "cuisine", - "operator", - "address", - "building_area", - "opening_hours", - "takeaway", - "delivery", - "drive_through", - "smoking" - ], - "suggestion": true - }, "amenity/fast_food/Макдоналдс": { "tags": { "name": "Макдоналдс", @@ -14944,30 +15069,6 @@ iD.data.presets = { ], "suggestion": true }, - "amenity/fast_food/Imbiss": { - "tags": { - "name": "Imbiss", - "amenity": "fast_food" - }, - "name": "Imbiss", - "icon": "fast-food", - "geometry": [ - "point", - "area" - ], - "fields": [ - "cuisine", - "operator", - "address", - "building_area", - "opening_hours", - "takeaway", - "delivery", - "drive_through", - "smoking" - ], - "suggestion": true - }, "amenity/fast_food/Chipotle": { "tags": { "name": "Chipotle", @@ -15386,6 +15487,7 @@ iD.data.presets = { "amenity/fast_food/Panda Express": { "tags": { "name": "Panda Express", + "cuisine": "chinese", "amenity": "fast_food" }, "name": "Panda Express", @@ -15749,6 +15851,7 @@ iD.data.presets = { "amenity/restaurant/Pizza Hut": { "tags": { "name": "Pizza Hut", + "cuisine": "pizza", "amenity": "restaurant" }, "name": "Pizza Hut", @@ -22549,12 +22652,12 @@ iD.data.presets = { ], "suggestion": true }, - "amenity/bank/Millenium Bank": { + "amenity/bank/Millenium": { "tags": { - "name": "Millenium Bank", + "name": "Millenium", "amenity": "bank" }, - "name": "Millenium Bank", + "name": "Millenium", "icon": "bank", "geometry": [ "point", @@ -25661,27 +25764,6 @@ iD.data.presets = { ], "suggestion": true }, - "amenity/cafe/Eisdiele": { - "tags": { - "name": "Eisdiele", - "amenity": "cafe" - }, - "name": "Eisdiele", - "icon": "cafe", - "geometry": [ - "point", - "area" - ], - "fields": [ - "cuisine", - "internet_access", - "address", - "building_area", - "opening_hours", - "smoking" - ], - "suggestion": true - }, "amenity/cafe/Dunkin Donuts": { "tags": { "name": "Dunkin Donuts", @@ -26220,12 +26302,12 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/EDEKA": { + "shop/supermarket/Edeka": { "tags": { - "name": "EDEKA", + "name": "Edeka", "shop": "supermarket" }, - "name": "EDEKA", + "name": "Edeka", "icon": "grocery", "geometry": [ "point", @@ -26581,25 +26663,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/REWE": { - "tags": { - "name": "REWE", - "shop": "supermarket" - }, - "name": "REWE", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/Rewe": { "tags": { "name": "Rewe", @@ -26695,25 +26758,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/Edeka": { - "tags": { - "name": "Edeka", - "shop": "supermarket" - }, - "name": "Edeka", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/Pick n Pay": { "tags": { "name": "Pick n Pay", @@ -26866,25 +26910,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/LIDL": { - "tags": { - "name": "LIDL", - "shop": "supermarket" - }, - "name": "LIDL", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/tegut": { "tags": { "name": "tegut", @@ -27341,25 +27366,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/COOP": { - "tags": { - "name": "COOP", - "shop": "supermarket" - }, - "name": "COOP", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/Food Basics": { "tags": { "name": "Food Basics", @@ -28842,12 +28848,12 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/Co-operative Food": { + "shop/supermarket/The Co-operative Food": { "tags": { - "name": "Co-operative Food", + "name": "The Co-operative Food", "shop": "supermarket" }, - "name": "Co-operative Food", + "name": "The Co-operative Food", "icon": "grocery", "geometry": [ "point", @@ -29355,25 +29361,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/SPAR": { - "tags": { - "name": "SPAR", - "shop": "supermarket" - }, - "name": "SPAR", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/No Frills": { "tags": { "name": "No Frills", @@ -29469,25 +29456,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/supermarket/The Co-operative Food": { - "tags": { - "name": "The Co-operative Food", - "shop": "supermarket" - }, - "name": "The Co-operative Food", - "icon": "grocery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/supermarket/Eurospin": { "tags": { "name": "Eurospin", @@ -31602,25 +31570,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/convenience/Sklep spożywczy": { - "tags": { - "name": "Sklep spożywczy", - "shop": "convenience" - }, - "name": "Sklep spożywczy", - "icon": "shop", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/convenience/Centra": { "tags": { "name": "Centra", @@ -31926,6 +31875,25 @@ iD.data.presets = { ], "suggestion": true }, + "shop/convenience/Sklep spożywczy": { + "tags": { + "name": "Sklep spożywczy", + "shop": "convenience" + }, + "name": "Sklep spożywczy", + "icon": "shop", + "geometry": [ + "point", + "area" + ], + "fields": [ + "operator", + "address", + "building_area", + "opening_hours" + ], + "suggestion": true + }, "shop/convenience/24 часа": { "tags": { "name": "24 часа", @@ -32135,25 +32103,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/convenience/Spożywczy": { - "tags": { - "name": "Spożywczy", - "shop": "convenience" - }, - "name": "Spożywczy", - "icon": "shop", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/convenience/Фортуна": { "tags": { "name": "Фортуна", @@ -33009,25 +32958,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/car_repair/Kwik-Fit": { - "tags": { - "name": "Kwik-Fit", - "shop": "car_repair" - }, - "name": "Kwik-Fit", - "icon": "car", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/car_repair/Midas": { "tags": { "name": "Midas", @@ -33275,25 +33205,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/car_repair/AutoZone": { - "tags": { - "name": "AutoZone", - "shop": "car_repair" - }, - "name": "AutoZone", - "icon": "car", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/car_repair/Автосервис": { "tags": { "name": "Автосервис", @@ -37011,25 +36922,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/bakery/Bäcker": { - "tags": { - "name": "Bäcker", - "shop": "bakery" - }, - "name": "Bäcker", - "icon": "bakery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/bakery/Schäfer's": { "tags": { "name": "Schäfer's", @@ -37163,25 +37055,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/bakery/Piekarnia": { - "tags": { - "name": "Piekarnia", - "shop": "bakery" - }, - "name": "Piekarnia", - "icon": "bakery", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/bakery/Пекарня": { "tags": { "name": "Пекарня", @@ -38797,25 +38670,6 @@ iD.data.presets = { ], "suggestion": true }, - "shop/hairdresser/Fryzjer": { - "tags": { - "name": "Fryzjer", - "shop": "hairdresser" - }, - "name": "Fryzjer", - "icon": "hairdresser", - "geometry": [ - "point", - "area" - ], - "fields": [ - "operator", - "address", - "building_area", - "opening_hours" - ], - "suggestion": true - }, "shop/hairdresser/Franck Provost": { "tags": { "name": "Franck Provost", @@ -39400,6 +39254,11 @@ iD.data.presets = { "type": "combo", "label": "Type" }, + "content": { + "key": "content", + "type": "combo", + "label": "Contents" + }, "country": { "key": "country", "type": "combo", @@ -39975,6 +39834,11 @@ iD.data.presets = { "type": "typeCombo", "label": "Type" }, + "power_supply": { + "key": "power_supply", + "type": "check", + "label": "Power Supply" + }, "railway": { "key": "railway", "type": "typeCombo", @@ -40055,6 +39919,11 @@ iD.data.presets = { } } }, + "sanitary_dump_station": { + "key": "sanitary_dump_station", + "type": "check", + "label": "Toilet Disposal" + }, "seasonal": { "key": "seasonal", "type": "check", @@ -40360,6 +40229,11 @@ iD.data.presets = { "type": "combo", "label": "Type" }, + "water_point": { + "key": "water_point", + "type": "check", + "label": "Water Point" + }, "waterway": { "key": "waterway", "type": "typeCombo", -- 2.43.2