umap-project 3.0.5__py3-none-any.whl → 3.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of umap-project might be problematic. Click here for more details.
- umap/__init__.py +1 -1
- umap/forms.py +1 -1
- umap/locale/br/LC_MESSAGES/django.mo +0 -0
- umap/locale/br/LC_MESSAGES/django.po +219 -72
- umap/locale/ca/LC_MESSAGES/django.mo +0 -0
- umap/locale/ca/LC_MESSAGES/django.po +286 -95
- umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- umap/locale/cs_CZ/LC_MESSAGES/django.po +211 -65
- umap/locale/da/LC_MESSAGES/django.mo +0 -0
- umap/locale/da/LC_MESSAGES/django.po +394 -202
- umap/locale/de/LC_MESSAGES/django.mo +0 -0
- umap/locale/de/LC_MESSAGES/django.po +146 -75
- umap/locale/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +125 -59
- umap/locale/en/LC_MESSAGES/django.mo +0 -0
- umap/locale/en/LC_MESSAGES/django.po +124 -58
- umap/locale/es/LC_MESSAGES/django.mo +0 -0
- umap/locale/es/LC_MESSAGES/django.po +125 -59
- umap/locale/et/LC_MESSAGES/django.mo +0 -0
- umap/locale/et/LC_MESSAGES/django.po +210 -64
- umap/locale/eu/LC_MESSAGES/django.mo +0 -0
- umap/locale/eu/LC_MESSAGES/django.po +212 -65
- umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
- umap/locale/fa_IR/LC_MESSAGES/django.po +286 -95
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +125 -59
- umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- umap/locale/gl/LC_MESSAGES/django.po +212 -66
- umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- umap/locale/hu/LC_MESSAGES/django.po +148 -78
- umap/locale/is/LC_MESSAGES/django.mo +0 -0
- umap/locale/is/LC_MESSAGES/django.po +130 -60
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.po +219 -73
- umap/locale/ms/LC_MESSAGES/django.mo +0 -0
- umap/locale/ms/LC_MESSAGES/django.po +289 -98
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +128 -61
- umap/locale/pl/LC_MESSAGES/django.mo +0 -0
- umap/locale/pl/LC_MESSAGES/django.po +287 -96
- umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- umap/locale/pt/LC_MESSAGES/django.po +211 -65
- umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- umap/locale/zh_TW/LC_MESSAGES/django.po +212 -66
- umap/management/commands/migrate_to_S3.py +42 -20
- umap/management/commands/purge_old_versions.py +63 -0
- umap/management/commands/switch_user.py +52 -0
- umap/managers.py +29 -2
- umap/middleware.py +1 -1
- umap/migrations/0028_map_is_template.py +21 -0
- umap/models.py +14 -4
- umap/settings/base.py +22 -0
- umap/static/umap/base.css +4 -2
- umap/static/umap/content.css +1 -1
- umap/static/umap/css/dialog.css +5 -2
- umap/static/umap/css/form.css +19 -12
- umap/static/umap/css/icon.css +6 -0
- umap/static/umap/css/importers.css +4 -0
- umap/static/umap/css/panel.css +2 -0
- umap/static/umap/img/16-white.svg +5 -1
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/24-white.svg +3 -2
- umap/static/umap/img/24.svg +3 -4
- umap/static/umap/img/importers/opendata.svg +1 -0
- umap/static/umap/img/source/16-white.svg +8 -4
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/img/source/24-white.svg +5 -4
- umap/static/umap/img/source/24.svg +5 -6
- umap/static/umap/js/components/modal.js +27 -0
- umap/static/umap/js/modules/caption.js +4 -4
- umap/static/umap/js/modules/data/features.js +40 -4
- umap/static/umap/js/modules/data/layer.js +208 -138
- umap/static/umap/js/modules/form/builder.js +6 -14
- umap/static/umap/js/modules/form/fields.js +2 -2
- umap/static/umap/js/modules/help.js +15 -3
- umap/static/umap/js/modules/importer.js +7 -4
- umap/static/umap/js/modules/importers/opendata.js +142 -0
- umap/static/umap/js/modules/permissions.js +3 -3
- umap/static/umap/js/modules/rendering/controls.js +34 -2
- umap/static/umap/js/modules/rendering/icon.js +2 -2
- umap/static/umap/js/modules/rendering/layers/base.js +1 -1
- umap/static/umap/js/modules/rendering/layers/classified.js +55 -49
- umap/static/umap/js/modules/rendering/layers/cluster.js +16 -9
- umap/static/umap/js/modules/rendering/layers/heat.js +13 -11
- umap/static/umap/js/modules/rendering/map.js +5 -0
- umap/static/umap/js/modules/rendering/ui.js +23 -0
- umap/static/umap/js/modules/rules.js +24 -23
- umap/static/umap/js/modules/schema.js +60 -4
- umap/static/umap/js/modules/sync/updaters.js +7 -3
- umap/static/umap/js/modules/tableeditor.js +7 -30
- umap/static/umap/js/modules/templates.js +122 -0
- umap/static/umap/js/modules/ui/bar.js +13 -3
- umap/static/umap/js/modules/ui/panel.js +1 -1
- umap/static/umap/js/modules/umap.js +28 -13
- umap/static/umap/js/umap.controls.js +11 -4
- umap/static/umap/locale/br.js +51 -18
- umap/static/umap/locale/br.json +51 -18
- umap/static/umap/locale/da.js +343 -310
- umap/static/umap/locale/da.json +343 -310
- umap/static/umap/locale/de.js +40 -7
- umap/static/umap/locale/de.json +40 -7
- umap/static/umap/locale/el.js +31 -4
- umap/static/umap/locale/el.json +31 -4
- umap/static/umap/locale/en.js +34 -1
- umap/static/umap/locale/en.json +34 -1
- umap/static/umap/locale/es.js +37 -4
- umap/static/umap/locale/es.json +37 -4
- umap/static/umap/locale/fr.js +34 -1
- umap/static/umap/locale/fr.json +34 -1
- umap/static/umap/locale/hu.js +44 -17
- umap/static/umap/locale/hu.json +44 -17
- umap/static/umap/locale/it.js +74 -41
- umap/static/umap/locale/it.json +74 -41
- umap/static/umap/locale/nl.js +42 -9
- umap/static/umap/locale/nl.json +42 -9
- umap/static/umap/map.css +3 -23
- umap/static/umap/vendors/textpath/leaflet.textpath.js +184 -0
- umap/storage/fs.py +19 -9
- umap/templates/umap/dashboard_menu.html +5 -0
- umap/templates/umap/design_system.html +9 -0
- umap/templates/umap/js.html +3 -0
- umap/templates/umap/map_init.html +3 -1
- umap/templates/umap/map_list.html +2 -2
- umap/templates/umap/map_table.html +18 -18
- umap/templates/umap/user_dashboard.html +9 -58
- umap/templates/umap/user_map_table.html +36 -0
- umap/templates/umap/user_templates.html +19 -0
- umap/templatetags/umap_tags.py +5 -0
- umap/tests/integration/test_basics.py +9 -1
- umap/tests/integration/test_conditional_rules.py +57 -0
- umap/tests/integration/test_datalayer.py +16 -9
- umap/tests/integration/test_edit_marker.py +11 -0
- umap/tests/integration/test_tableeditor.py +42 -7
- umap/tests/integration/test_templates.py +44 -0
- umap/tests/test_dashboard.py +19 -0
- umap/tests/test_purge_old_versions.py +91 -0
- umap/tests/test_switch_user.py +31 -0
- umap/tests/test_views.py +67 -0
- umap/urls.py +7 -1
- umap/views.py +65 -19
- {umap_project-3.0.5.dist-info → umap_project-3.1.0.dist-info}/METADATA +15 -15
- {umap_project-3.0.5.dist-info → umap_project-3.1.0.dist-info}/RECORD +145 -132
- {umap_project-3.0.5.dist-info → umap_project-3.1.0.dist-info}/WHEEL +0 -0
- {umap_project-3.0.5.dist-info → umap_project-3.1.0.dist-info}/entry_points.txt +0 -0
- {umap_project-3.0.5.dist-info → umap_project-3.1.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,6 +4,7 @@ import { translate } from '../i18n.js'
|
|
|
4
4
|
import { WithTemplate } from '../utils.js'
|
|
5
5
|
import * as Utils from '../utils.js'
|
|
6
6
|
import ContextMenu from './contextmenu.js'
|
|
7
|
+
import TemplateImporter from '../templates.js'
|
|
7
8
|
|
|
8
9
|
const TOP_BAR_TEMPLATE = `
|
|
9
10
|
<div class="umap-main-edit-toolbox with-transition dark">
|
|
@@ -37,6 +38,7 @@ const TOP_BAR_TEMPLATE = `
|
|
|
37
38
|
<i class="icon icon-16 icon-save-disabled"></i>
|
|
38
39
|
<span hidden data-ref="saveLabel">${translate('Save')}</span>
|
|
39
40
|
<span hidden data-ref="saveDraftLabel">${translate('Save draft')}</span>
|
|
41
|
+
<span hidden data-ref="saveTemplateLabel">${translate('Save template')}</span>
|
|
40
42
|
</button>
|
|
41
43
|
</div>
|
|
42
44
|
</div>`
|
|
@@ -167,8 +169,11 @@ export class TopBar extends WithTemplate {
|
|
|
167
169
|
const syncEnabled = this._umap.getProperty('syncEnabled')
|
|
168
170
|
this.elements.peers.hidden = !syncEnabled
|
|
169
171
|
this.elements.view.disabled = this._umap.sync._undoManager.isDirty()
|
|
170
|
-
|
|
171
|
-
|
|
172
|
+
const isDraft = this._umap.permissions.isDraft()
|
|
173
|
+
const isTemplate = this._umap.getProperty('is_template')
|
|
174
|
+
this.elements.saveLabel.hidden = isDraft || isTemplate
|
|
175
|
+
this.elements.saveDraftLabel.hidden = !isDraft || isTemplate
|
|
176
|
+
this.elements.saveTemplateLabel.hidden = !isTemplate
|
|
172
177
|
this._umap.sync._undoManager.toggleState()
|
|
173
178
|
}
|
|
174
179
|
}
|
|
@@ -228,7 +233,7 @@ export class BottomBar extends WithTemplate {
|
|
|
228
233
|
|
|
229
234
|
buildDataLayerSwitcher() {
|
|
230
235
|
this.elements.layers.innerHTML = ''
|
|
231
|
-
const datalayers = this._umap.datalayers.filter((d) => d.
|
|
236
|
+
const datalayers = this._umap.datalayers.filter((d) => d.properties.inCaption)
|
|
232
237
|
if (datalayers.length < 2) {
|
|
233
238
|
this.elements.layers.hidden = true
|
|
234
239
|
} else {
|
|
@@ -261,6 +266,7 @@ const EDIT_BAR_TEMPLATE = `
|
|
|
261
266
|
<hr>
|
|
262
267
|
<li data-ref="caption" hidden><button data-getstarted type="button" title="${translate('Edit map name and caption')}"><i class="icon icon-24 icon-caption"></i></button></li>
|
|
263
268
|
<li data-ref="import" hidden><button type="button"><i class="icon icon-24 icon-upload"></i></button></li>
|
|
269
|
+
<li data-ref="templates" hidden><button type="button" title="${translate('Load template')}" data-getstarted><i class="icon icon-24 icon-template"></i></button></li>
|
|
264
270
|
<li data-ref="layers" hidden><button type="button" title="${translate('Manage layers')}"><i class="icon icon-24 icon-layers"></i></button></li>
|
|
265
271
|
<li data-ref="tilelayers" hidden><button type="button" title="${translate('Change tilelayers')}"><i class="icon icon-24 icon-tilelayer"></i></button></li>
|
|
266
272
|
<li data-ref="center" hidden><button type="button"><i class="icon icon-24 icon-center"></i></button></li>
|
|
@@ -272,6 +278,7 @@ const EDIT_BAR_TEMPLATE = `
|
|
|
272
278
|
export class EditBar extends WithTemplate {
|
|
273
279
|
constructor(umap, leafletMap, parent) {
|
|
274
280
|
super()
|
|
281
|
+
this.templateIimporter = new TemplateImporter(umap)
|
|
275
282
|
this._umap = umap
|
|
276
283
|
this._leafletMap = leafletMap
|
|
277
284
|
this.loadTemplate(EDIT_BAR_TEMPLATE)
|
|
@@ -288,6 +295,7 @@ export class EditBar extends WithTemplate {
|
|
|
288
295
|
this._onClick('multipolygon', () => this._umap.editedFeature.ui.editor.newShape())
|
|
289
296
|
this._onClick('caption', () => this._umap.editCaption())
|
|
290
297
|
this._onClick('import', () => this._umap.importer.open())
|
|
298
|
+
this._onClick('templates', () => this.templateIimporter.open())
|
|
291
299
|
this._onClick('layers', () => this._umap.editDatalayers())
|
|
292
300
|
this._onClick('tilelayers', () => this._leafletMap.editTileLayers())
|
|
293
301
|
this._onClick('center', () => this._umap.editCenter())
|
|
@@ -306,6 +314,8 @@ export class EditBar extends WithTemplate {
|
|
|
306
314
|
this.elements.multipolygon.hidden = !(editedFeature instanceof Polygon)
|
|
307
315
|
this.elements.caption.hidden = this._umap.properties.editMode !== 'advanced'
|
|
308
316
|
this.elements.import.hidden = this._umap.properties.editMode !== 'advanced'
|
|
317
|
+
this.elements.templates.hidden =
|
|
318
|
+
this._umap.properties.editMode !== 'advanced' && !this._umap.datalayers.count()
|
|
309
319
|
this.elements.layers.hidden = this._umap.properties.editMode !== 'advanced'
|
|
310
320
|
this.elements.tilelayers.hidden = this._umap.properties.editMode !== 'advanced'
|
|
311
321
|
this.elements.center.hidden = this._umap.properties.editMode !== 'advanced'
|
|
@@ -57,7 +57,7 @@ export class Panel {
|
|
|
57
57
|
if (className) DomUtil.addClass(body, className)
|
|
58
58
|
const promise = new Promise((resolve, reject) => {
|
|
59
59
|
DomUtil.addClass(this.container, 'on')
|
|
60
|
-
resolve()
|
|
60
|
+
resolve(this)
|
|
61
61
|
})
|
|
62
62
|
DomEvent.on(closeButton, 'click', this.close, this)
|
|
63
63
|
DomEvent.on(resizeButton, 'click', this.resize, this)
|
|
@@ -137,7 +137,7 @@ export default class Umap {
|
|
|
137
137
|
this.caption = new Caption(this, this._leafletMap)
|
|
138
138
|
this.importer = new Importer(this)
|
|
139
139
|
this.share = new Share(this)
|
|
140
|
-
this.rules = new Rules(this)
|
|
140
|
+
this.rules = new Rules(this, this)
|
|
141
141
|
|
|
142
142
|
if (this.hasEditMode()) {
|
|
143
143
|
this.editPanel = new EditPanel(this, this._leafletMap)
|
|
@@ -205,6 +205,7 @@ export default class Umap {
|
|
|
205
205
|
}
|
|
206
206
|
this._defaultExtent = true
|
|
207
207
|
this.properties.name = translate('Untitled map')
|
|
208
|
+
await this.loadTemplateFromQueryString()
|
|
208
209
|
await this.loadDataFromQueryString()
|
|
209
210
|
}
|
|
210
211
|
|
|
@@ -349,6 +350,16 @@ export default class Umap {
|
|
|
349
350
|
}
|
|
350
351
|
}
|
|
351
352
|
|
|
353
|
+
async loadTemplateFromQueryString() {
|
|
354
|
+
const templateUrl = this.searchParams.get('templateUrl')
|
|
355
|
+
if (templateUrl) {
|
|
356
|
+
this.importer.build()
|
|
357
|
+
this.importer.url = templateUrl
|
|
358
|
+
this.importer.format = 'umap'
|
|
359
|
+
this.importer.submit()
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
352
363
|
async loadDataFromQueryString() {
|
|
353
364
|
let data = this.searchParams.get('data')
|
|
354
365
|
const dataUrls = this.searchParams.getAll('dataUrl')
|
|
@@ -493,8 +504,7 @@ export default class Umap {
|
|
|
493
504
|
}
|
|
494
505
|
|
|
495
506
|
getOption(key, feature) {
|
|
496
|
-
// TODO: remove when
|
|
497
|
-
// obj.getOption anymore
|
|
507
|
+
// TODO: remove when field.js does not call blindly obj.getOption anymore
|
|
498
508
|
return this.getProperty(key, feature)
|
|
499
509
|
}
|
|
500
510
|
|
|
@@ -627,20 +637,20 @@ export default class Umap {
|
|
|
627
637
|
this.fire('dataloaded')
|
|
628
638
|
}
|
|
629
639
|
|
|
630
|
-
createDataLayer(
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
const datalayer = new DataLayer(this, this._leafletMap,
|
|
640
|
+
createDataLayer(properties = {}, sync = true) {
|
|
641
|
+
properties.name =
|
|
642
|
+
properties.name || `${translate('Layer')} ${this.datalayers.count() + 1}`
|
|
643
|
+
const datalayer = new DataLayer(this, this._leafletMap, properties)
|
|
634
644
|
|
|
635
645
|
if (sync !== false) {
|
|
636
|
-
datalayer.sync.upsert(datalayer.
|
|
646
|
+
datalayer.sync.upsert(datalayer.properties)
|
|
637
647
|
}
|
|
638
648
|
return datalayer
|
|
639
649
|
}
|
|
640
650
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
return
|
|
651
|
+
// TODO: remove me in favor of createDataLayer
|
|
652
|
+
createDirtyDataLayer(properties) {
|
|
653
|
+
return this.createDataLayer(properties, true)
|
|
644
654
|
}
|
|
645
655
|
|
|
646
656
|
newDataLayer() {
|
|
@@ -747,7 +757,11 @@ export default class Umap {
|
|
|
747
757
|
if (!this.editEnabled) return
|
|
748
758
|
if (this.properties.editMode !== 'advanced') return
|
|
749
759
|
const container = DomUtil.create('div')
|
|
750
|
-
const metadataFields = [
|
|
760
|
+
const metadataFields = [
|
|
761
|
+
'properties.name',
|
|
762
|
+
'properties.description',
|
|
763
|
+
'properties.is_template',
|
|
764
|
+
]
|
|
751
765
|
|
|
752
766
|
DomUtil.createTitle(container, translate('Edit map details'), 'icon-caption')
|
|
753
767
|
const builder = new MutatingForm(this, metadataFields, {
|
|
@@ -1176,6 +1190,7 @@ export default class Umap {
|
|
|
1176
1190
|
}
|
|
1177
1191
|
const formData = new FormData()
|
|
1178
1192
|
formData.append('name', this.properties.name)
|
|
1193
|
+
formData.append('is_template', Boolean(this.properties.is_template))
|
|
1179
1194
|
formData.append('center', JSON.stringify(this.geometry()))
|
|
1180
1195
|
formData.append('tags', this.properties.tags || [])
|
|
1181
1196
|
formData.append('settings', JSON.stringify(geojson))
|
|
@@ -1480,7 +1495,7 @@ export default class Umap {
|
|
|
1480
1495
|
datalayer.renderToolbox(row)
|
|
1481
1496
|
const builder = new MutatingForm(
|
|
1482
1497
|
datalayer,
|
|
1483
|
-
[['
|
|
1498
|
+
[['properties.name', { handler: 'EditableText' }]],
|
|
1484
1499
|
{ className: 'umap-form-inline' }
|
|
1485
1500
|
)
|
|
1486
1501
|
const form = builder.build()
|
|
@@ -96,7 +96,7 @@ U.Locate = L.Control.Locate.extend({
|
|
|
96
96
|
})
|
|
97
97
|
|
|
98
98
|
U.Search = L.PhotonSearch.extend({
|
|
99
|
-
initialize: function (map, input, options) {
|
|
99
|
+
initialize: function (map, input, layer, options) {
|
|
100
100
|
this.options.placeholder = L._('Type a place name or coordinates')
|
|
101
101
|
this.options.location_bias_scale = 0.5
|
|
102
102
|
L.PhotonSearch.prototype.initialize.call(this, map, input, options)
|
|
@@ -107,6 +107,7 @@ U.Search = L.PhotonSearch.extend({
|
|
|
107
107
|
this.handleResultsWithReverse(geojson)
|
|
108
108
|
},
|
|
109
109
|
})
|
|
110
|
+
this.layer = layer
|
|
110
111
|
},
|
|
111
112
|
|
|
112
113
|
handleResultsWithReverse: function (geojson) {
|
|
@@ -123,6 +124,7 @@ U.Search = L.PhotonSearch.extend({
|
|
|
123
124
|
},
|
|
124
125
|
|
|
125
126
|
search: function () {
|
|
127
|
+
this.layer.clearLayers()
|
|
126
128
|
const pattern = /^(?<lat>[-+]?\d{1,2}[.,]\d+)\s*[ ,]\s*(?<lng>[-+]?\d{1,3}[.,]\d+)$/
|
|
127
129
|
if (pattern.test(this.input.value)) {
|
|
128
130
|
this.hide()
|
|
@@ -188,10 +190,10 @@ U.Search = L.PhotonSearch.extend({
|
|
|
188
190
|
const coords = feature.geometry.coordinates
|
|
189
191
|
const target = L.marker([coords[1], coords[0]], { icon })
|
|
190
192
|
el.addEventListener('mouseover', (event) => {
|
|
191
|
-
target.addTo(this.
|
|
193
|
+
target.addTo(this.layer)
|
|
192
194
|
})
|
|
193
195
|
el.addEventListener('mouseout', (event) => {
|
|
194
|
-
target.removeFrom(this.
|
|
196
|
+
target.removeFrom(this.layer)
|
|
195
197
|
})
|
|
196
198
|
},
|
|
197
199
|
|
|
@@ -227,9 +229,14 @@ U.SearchControl = L.Control.extend({
|
|
|
227
229
|
},
|
|
228
230
|
this
|
|
229
231
|
)
|
|
232
|
+
this.layer = L.layerGroup().addTo(map)
|
|
230
233
|
return container
|
|
231
234
|
},
|
|
232
235
|
|
|
236
|
+
onRemove: function () {
|
|
237
|
+
this.layer.remove()
|
|
238
|
+
},
|
|
239
|
+
|
|
233
240
|
open: function () {
|
|
234
241
|
const options = {
|
|
235
242
|
limit: 10,
|
|
@@ -241,7 +248,7 @@ U.SearchControl = L.Control.extend({
|
|
|
241
248
|
L.DomUtil.createTitle(container, L._('Search location'), 'icon-search')
|
|
242
249
|
const input = L.DomUtil.create('input', 'photon-input', container)
|
|
243
250
|
const resultsContainer = L.DomUtil.create('div', 'photon-autocomplete', container)
|
|
244
|
-
this.search = new U.Search(this.map, input, options)
|
|
251
|
+
this.search = new U.Search(this.map, input, this.layer, options)
|
|
245
252
|
const id = Math.random()
|
|
246
253
|
this.search.on('ajax:send', () => {
|
|
247
254
|
this.map.fire('dataloading', { id: id })
|
umap/static/umap/locale/br.js
CHANGED
|
@@ -404,7 +404,7 @@ const locale = {
|
|
|
404
404
|
"Max": "Brasañ",
|
|
405
405
|
"From": "Adalek",
|
|
406
406
|
"Until": "Betek",
|
|
407
|
-
"Example: key1,key2|Label 2,key3|Label 3|checkbox": "
|
|
407
|
+
"Example: key1,key2|Label 2,key3|Label 3|checkbox": "Skouer: key1,key2|Label 2,key3|Label 3|checkbox",
|
|
408
408
|
"Edit in OpenStreetMap": "Kemmañ e-barzh OpenStreetMap",
|
|
409
409
|
"Cannot determine latitude and longitude columns.": "Cannot determine latitude and longitude columns.",
|
|
410
410
|
"Back to layers": "Distreiñ d'ar gwiskadoù",
|
|
@@ -513,7 +513,7 @@ const locale = {
|
|
|
513
513
|
"Successfully imported {count} feature(s)": "{count} elfenn bet enporzhiet gant berzh",
|
|
514
514
|
"Disconnected": "Digennasket",
|
|
515
515
|
"You must be logged in": "Ret eo deoc'h bezañ kennasket",
|
|
516
|
-
"on hover": "
|
|
516
|
+
"on hover": "pa dremen al logodenn war-c'hore",
|
|
517
517
|
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Cannot load remote data for layer \"{layer}\" with url \"{url}\"",
|
|
518
518
|
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Cannot parse remote data for layer \"{layer}\" with url \"{url}\"",
|
|
519
519
|
"Import failed: invalid data": "Enporzhiadur c'hwitet: roadennoù direizh",
|
|
@@ -523,27 +523,60 @@ const locale = {
|
|
|
523
523
|
"Default zoom": "Zoum dre ziouer",
|
|
524
524
|
"Default latitude": "Ledred dre ziouer",
|
|
525
525
|
"Default longitude": "Hedred dre ziouer",
|
|
526
|
-
"Edit map default view": "
|
|
527
|
-
"Use current center and zoom": "
|
|
528
|
-
"Layer permalink": "
|
|
529
|
-
"Back to home": "
|
|
530
|
-
"Home logo": "
|
|
531
|
-
"Add this geometry to my map": "
|
|
532
|
-
"Add this place to my map": "
|
|
533
|
-
"Cancel last edit": "
|
|
534
|
-
"Redo last edit": "
|
|
535
|
-
"Links": "
|
|
536
|
-
"Images": "
|
|
526
|
+
"Edit map default view": "Kemmañ gwel dre ziouer ar gartenn",
|
|
527
|
+
"Use current center and zoom": "Implij ar c'hreiz hag ar zoum a-vremañ",
|
|
528
|
+
"Layer permalink": "Liamm padus ar gwiskad",
|
|
529
|
+
"Back to home": "Distreiñ d'an degemer",
|
|
530
|
+
"Home logo": "Logo an degemer",
|
|
531
|
+
"Add this geometry to my map": "Ouzhpennañ ar c'heometriezh-mañ d'am c'hartenn",
|
|
532
|
+
"Add this place to my map": "Ouzhpennañ al lec'h-mañ d'am c'hartenn",
|
|
533
|
+
"Cancel last edit": "Nullañ ar c'hemm diwezhañ",
|
|
534
|
+
"Redo last edit": "Adober ar c'hemm diwezhañ",
|
|
535
|
+
"Links": "Liammoù",
|
|
536
|
+
"Images": "Skeudennoù",
|
|
537
537
|
"Iframes": "Iframes",
|
|
538
|
-
"Tags": "
|
|
538
|
+
"Tags": "Tikedennoù",
|
|
539
539
|
"Geocode": "Geocode",
|
|
540
|
-
"Display the back to home icon": "
|
|
540
|
+
"Display the back to home icon": "Diskouez ar bouton \"distreiñ d'an degemer\"",
|
|
541
541
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
|
542
542
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
|
543
|
-
"Back to list": "
|
|
543
|
+
"Back to list": "Distreiñ d'al listenn",
|
|
544
544
|
"Toggle rule": "Toggle rule",
|
|
545
|
-
"Delete rule": "
|
|
546
|
-
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
|
545
|
+
"Delete rule": "Dilemel ar reolenn",
|
|
546
|
+
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes.",
|
|
547
|
+
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Activate collaborative live editing on this map. Other users must reload the map after changing this setting.",
|
|
548
|
+
"More help resources": "Titouroù skoazell all",
|
|
549
|
+
"This map is a template": "Ur patrom eo ar gartenn-mañ",
|
|
550
|
+
"Add text along path": "Ouzhpennañ an destenn a-hed al linenn",
|
|
551
|
+
"Text color": "Liv an destenn",
|
|
552
|
+
"Text offset": "Dilec'h an destenn",
|
|
553
|
+
"Text position": "Lec'hiadur an destenn",
|
|
554
|
+
"start": "deroù",
|
|
555
|
+
"center": "kreiz",
|
|
556
|
+
"end": "dibenn",
|
|
557
|
+
"Text repeat": "Adskrivañ an destenn",
|
|
558
|
+
"Text rotate": "C'hwelañ an destenn",
|
|
559
|
+
"Text size": "Ment an destenn",
|
|
560
|
+
"Load map template": "Kargañ patrom ar gartenn",
|
|
561
|
+
"My templates": "Ma fatromoù",
|
|
562
|
+
"From staff": "Erbedet",
|
|
563
|
+
"From community": "Eus ar gumuniezh",
|
|
564
|
+
"You must select a template.": "Dav eo deoc'h diuzañ ur patrom.",
|
|
565
|
+
"Line decoration": "Line decoration",
|
|
566
|
+
"Reuse this template": "Adimplij ar patrom-mañ",
|
|
567
|
+
"Create a new map using this template": "Krouiñ ur gartenn nevez en ur implij ar patrom-mañ",
|
|
568
|
+
"Save template": "Enrollañ ar patrom",
|
|
569
|
+
"Load template": "Kargañ ar patrom",
|
|
570
|
+
"Loading a template will apply predefined styles and settings to your map": "Loading a template will apply predefined styles and settings to your map",
|
|
571
|
+
"Load template with data": "Load template with data",
|
|
572
|
+
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".",
|
|
573
|
+
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.",
|
|
574
|
+
"There is no public template yet.": "There is no public template yet.",
|
|
575
|
+
"Explore": "Explore",
|
|
576
|
+
"Import data from public open data portals": "Import data from public open data portals",
|
|
577
|
+
"Choose a portal": "Choose a portal",
|
|
578
|
+
"Limit results to current map view": "Limit results to current map view",
|
|
579
|
+
"Please choose an instance first.": "Please choose an instance first."
|
|
547
580
|
}
|
|
548
581
|
L.registerLocale("br", locale)
|
|
549
582
|
L.setLocale("br")
|
umap/static/umap/locale/br.json
CHANGED
|
@@ -404,7 +404,7 @@
|
|
|
404
404
|
"Max": "Brasañ",
|
|
405
405
|
"From": "Adalek",
|
|
406
406
|
"Until": "Betek",
|
|
407
|
-
"Example: key1,key2|Label 2,key3|Label 3|checkbox": "
|
|
407
|
+
"Example: key1,key2|Label 2,key3|Label 3|checkbox": "Skouer: key1,key2|Label 2,key3|Label 3|checkbox",
|
|
408
408
|
"Edit in OpenStreetMap": "Kemmañ e-barzh OpenStreetMap",
|
|
409
409
|
"Cannot determine latitude and longitude columns.": "Cannot determine latitude and longitude columns.",
|
|
410
410
|
"Back to layers": "Distreiñ d'ar gwiskadoù",
|
|
@@ -513,7 +513,7 @@
|
|
|
513
513
|
"Successfully imported {count} feature(s)": "{count} elfenn bet enporzhiet gant berzh",
|
|
514
514
|
"Disconnected": "Digennasket",
|
|
515
515
|
"You must be logged in": "Ret eo deoc'h bezañ kennasket",
|
|
516
|
-
"on hover": "
|
|
516
|
+
"on hover": "pa dremen al logodenn war-c'hore",
|
|
517
517
|
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Cannot load remote data for layer \"{layer}\" with url \"{url}\"",
|
|
518
518
|
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Cannot parse remote data for layer \"{layer}\" with url \"{url}\"",
|
|
519
519
|
"Import failed: invalid data": "Enporzhiadur c'hwitet: roadennoù direizh",
|
|
@@ -523,25 +523,58 @@
|
|
|
523
523
|
"Default zoom": "Zoum dre ziouer",
|
|
524
524
|
"Default latitude": "Ledred dre ziouer",
|
|
525
525
|
"Default longitude": "Hedred dre ziouer",
|
|
526
|
-
"Edit map default view": "
|
|
527
|
-
"Use current center and zoom": "
|
|
528
|
-
"Layer permalink": "
|
|
529
|
-
"Back to home": "
|
|
530
|
-
"Home logo": "
|
|
531
|
-
"Add this geometry to my map": "
|
|
532
|
-
"Add this place to my map": "
|
|
533
|
-
"Cancel last edit": "
|
|
534
|
-
"Redo last edit": "
|
|
535
|
-
"Links": "
|
|
536
|
-
"Images": "
|
|
526
|
+
"Edit map default view": "Kemmañ gwel dre ziouer ar gartenn",
|
|
527
|
+
"Use current center and zoom": "Implij ar c'hreiz hag ar zoum a-vremañ",
|
|
528
|
+
"Layer permalink": "Liamm padus ar gwiskad",
|
|
529
|
+
"Back to home": "Distreiñ d'an degemer",
|
|
530
|
+
"Home logo": "Logo an degemer",
|
|
531
|
+
"Add this geometry to my map": "Ouzhpennañ ar c'heometriezh-mañ d'am c'hartenn",
|
|
532
|
+
"Add this place to my map": "Ouzhpennañ al lec'h-mañ d'am c'hartenn",
|
|
533
|
+
"Cancel last edit": "Nullañ ar c'hemm diwezhañ",
|
|
534
|
+
"Redo last edit": "Adober ar c'hemm diwezhañ",
|
|
535
|
+
"Links": "Liammoù",
|
|
536
|
+
"Images": "Skeudennoù",
|
|
537
537
|
"Iframes": "Iframes",
|
|
538
|
-
"Tags": "
|
|
538
|
+
"Tags": "Tikedennoù",
|
|
539
539
|
"Geocode": "Geocode",
|
|
540
|
-
"Display the back to home icon": "
|
|
540
|
+
"Display the back to home icon": "Diskouez ar bouton \"distreiñ d'an degemer\"",
|
|
541
541
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
|
542
542
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
|
543
|
-
"Back to list": "
|
|
543
|
+
"Back to list": "Distreiñ d'al listenn",
|
|
544
544
|
"Toggle rule": "Toggle rule",
|
|
545
|
-
"Delete rule": "
|
|
546
|
-
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
|
545
|
+
"Delete rule": "Dilemel ar reolenn",
|
|
546
|
+
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes.",
|
|
547
|
+
"Activate collaborative live editing on this map. Other users must reload the map after changing this setting.": "Activate collaborative live editing on this map. Other users must reload the map after changing this setting.",
|
|
548
|
+
"More help resources": "Titouroù skoazell all",
|
|
549
|
+
"This map is a template": "Ur patrom eo ar gartenn-mañ",
|
|
550
|
+
"Add text along path": "Ouzhpennañ an destenn a-hed al linenn",
|
|
551
|
+
"Text color": "Liv an destenn",
|
|
552
|
+
"Text offset": "Dilec'h an destenn",
|
|
553
|
+
"Text position": "Lec'hiadur an destenn",
|
|
554
|
+
"start": "deroù",
|
|
555
|
+
"center": "kreiz",
|
|
556
|
+
"end": "dibenn",
|
|
557
|
+
"Text repeat": "Adskrivañ an destenn",
|
|
558
|
+
"Text rotate": "C'hwelañ an destenn",
|
|
559
|
+
"Text size": "Ment an destenn",
|
|
560
|
+
"Load map template": "Kargañ patrom ar gartenn",
|
|
561
|
+
"My templates": "Ma fatromoù",
|
|
562
|
+
"From staff": "Erbedet",
|
|
563
|
+
"From community": "Eus ar gumuniezh",
|
|
564
|
+
"You must select a template.": "Dav eo deoc'h diuzañ ur patrom.",
|
|
565
|
+
"Line decoration": "Line decoration",
|
|
566
|
+
"Reuse this template": "Adimplij ar patrom-mañ",
|
|
567
|
+
"Create a new map using this template": "Krouiñ ur gartenn nevez en ur implij ar patrom-mañ",
|
|
568
|
+
"Save template": "Enrollañ ar patrom",
|
|
569
|
+
"Load template": "Kargañ ar patrom",
|
|
570
|
+
"Loading a template will apply predefined styles and settings to your map": "Loading a template will apply predefined styles and settings to your map",
|
|
571
|
+
"Load template with data": "Load template with data",
|
|
572
|
+
"You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".": "You have no registered template yet. You can add one by creating a new map and flagging it as \"template\".",
|
|
573
|
+
"There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.": "There is no recommended template yet. Recommended templates are the ones starred by uMap administrators.",
|
|
574
|
+
"There is no public template yet.": "There is no public template yet.",
|
|
575
|
+
"Explore": "Explore",
|
|
576
|
+
"Import data from public open data portals": "Import data from public open data portals",
|
|
577
|
+
"Choose a portal": "Choose a portal",
|
|
578
|
+
"Limit results to current map view": "Limit results to current map view",
|
|
579
|
+
"Please choose an instance first.": "Please choose an instance first."
|
|
547
580
|
}
|