mirror of
https://github.com/umap-project/umap.git
synced 2025-04-28 19:42:36 +02:00
Compare commits
55 commits
15c2b4ac11
...
80741f7fb2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
80741f7fb2 | ||
![]() |
a3a520dec4 | ||
![]() |
4b4f9bbc5c | ||
![]() |
279717e630 | ||
![]() |
39e4e2a33c | ||
![]() |
e5dbca21b0 | ||
![]() |
1ecddc1c02 | ||
![]() |
8658e7eba7 | ||
![]() |
6ac3685172 | ||
![]() |
1085861d42 | ||
![]() |
fab0c8f9ea | ||
![]() |
858768896e | ||
![]() |
bffbeb5230 | ||
![]() |
f01a74f19f | ||
![]() |
00228ccf92 | ||
![]() |
6c8046456a | ||
![]() |
626b669d89 | ||
![]() |
5af41b4528 | ||
![]() |
1a9c325f16 | ||
![]() |
19d16ac01b | ||
![]() |
efaa765b82 | ||
![]() |
92ca581fb6 | ||
![]() |
6687cd53ba | ||
![]() |
4997ee8860 | ||
![]() |
a708316604 | ||
![]() |
71d92aa610 | ||
![]() |
41752bd0c6 | ||
![]() |
5b6138a210 | ||
![]() |
07363fa5fe | ||
![]() |
7991d6cdbe | ||
![]() |
60ac4b35f2 | ||
![]() |
bf2e9dc175 | ||
![]() |
67ed6d5b44 | ||
![]() |
fad182c5f3 | ||
![]() |
3f5d282477 | ||
![]() |
49496348d2 | ||
![]() |
f8b13639aa | ||
![]() |
4c71710641 | ||
![]() |
92d5c47844 | ||
![]() |
05493d8a48 | ||
![]() |
fd8f403a69 | ||
![]() |
a6412c9539 | ||
![]() |
fe65a5351b | ||
![]() |
2ede25f541 | ||
![]() |
b7acdcfd93 | ||
![]() |
a3d2330661 | ||
![]() |
20ae374173 | ||
![]() |
162473da9d | ||
![]() |
78d333c217 | ||
![]() |
b0fe95dbd9 | ||
![]() |
23b82975f5 | ||
![]() |
169be73488 | ||
![]() |
103cedf0bf | ||
![]() |
4cbb2e1491 | ||
![]() |
c53eae5878 |
157 changed files with 3832 additions and 1612 deletions
2
Makefile
2
Makefile
|
@ -65,7 +65,7 @@ publish: ## Publish the Python package to Pypi
|
||||||
test: testpy testjs
|
test: testpy testjs
|
||||||
|
|
||||||
testpy:
|
testpy:
|
||||||
pytest -vv umap/tests/ --dist=loadgroup --reruns 1
|
pytest -vv umap/tests/ --dist=loadgroup --reruns 1 --maxfail 10
|
||||||
|
|
||||||
test-integration:
|
test-integration:
|
||||||
pytest -xv umap/tests/integration/ --dist=loadgroup
|
pytest -xv umap/tests/integration/ --dist=loadgroup
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
!!! abstract "Ce que nous allons apprendre"
|
!!! abstract "Ce que nous allons apprendre"
|
||||||
|
|
||||||
- Importer le contour d’une commune
|
- Importer le contour d’une commune
|
||||||
|
- Importer le cadastre [sur l'instance uMap pour les agents publics](https://umap.incubateur.anct.gouv.fr/fr/)
|
||||||
- Importer les contours des départements ou des régions
|
- Importer les contours des départements ou des régions
|
||||||
- Importer un point d’intérêt (bibliothèques, parkings, …) qui est enregistré sur OpenStreetMap
|
- Importer un point d’intérêt (bibliothèques, parkings, …) qui est enregistré sur OpenStreetMap
|
||||||
|
|
||||||
|
@ -15,12 +16,20 @@ Voilà les deux actions à effectuer une fois une carte préexistante, ou une no
|
||||||
|
|
||||||
uMap permet d’utiliser des données produites par de nombreux services et placées en open data sous différents formats. Nous verrons ultérieurement (niveau intermédiaire) où rechercher ces sources. D’ores et déjà, vous pouvez utiliser l’assistant d’importation pour récupérer en un clic des contours administratifs et des points d’intérêt.
|
uMap permet d’utiliser des données produites par de nombreux services et placées en open data sous différents formats. Nous verrons ultérieurement (niveau intermédiaire) où rechercher ces sources. D’ores et déjà, vous pouvez utiliser l’assistant d’importation pour récupérer en un clic des contours administratifs et des points d’intérêt.
|
||||||
|
|
||||||
### Ressources disponibles (20/09/2024)
|
### Ressources disponibles (05/11/2024)
|
||||||
|
|
||||||
Au 20 septembre 2024, les imports suivants sont disponibles :
|
Au 5 novembre 2024, les imports suivants sont disponibles :
|
||||||
|
|
||||||
- contour d’une commune
|
- contour d’une commune : limites communales jointives, issues du Référentiel à Grande Échelle (RGE), mises à jour par l'IGN ;
|
||||||
- contours des départements et des régions
|
- cadastre, sur l'instance uMap pour les agents publics :
|
||||||
|
- Parcelles
|
||||||
|
- Bâtiments
|
||||||
|
- Communes (attention ce périmètre est moins précis, privilégier celui issu du RGE ci-dessus)
|
||||||
|
- Feuilles
|
||||||
|
- Lieux-dits
|
||||||
|
- Préfixes des sections
|
||||||
|
- Subdivisions fiscales.
|
||||||
|
- contours des départements et des régions ;
|
||||||
- données issues d’OpenStreetMap placées dans [GeoDataMine](https://geodatamine.fr/). Comme son nom l’indique, GeoDataMine est une véritable mine de données très utiles pour les services publics :
|
- données issues d’OpenStreetMap placées dans [GeoDataMine](https://geodatamine.fr/). Comme son nom l’indique, GeoDataMine est une véritable mine de données très utiles pour les services publics :
|
||||||
- Aire de jeux
|
- Aire de jeux
|
||||||
- Aménagements cyclables
|
- Aménagements cyclables
|
||||||
|
@ -43,7 +52,7 @@ Au 20 septembre 2024, les imports suivants sont disponibles :
|
||||||
|
|
||||||
Voici un bref passage en revu des différents imports proposés et pour finir l’import de la localisation des bibliothèques de Clermont- Ferrand :
|
Voici un bref passage en revu des différents imports proposés et pour finir l’import de la localisation des bibliothèques de Clermont- Ferrand :
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 1. Importer le contour d’une commune
|
## 1. Importer le contour d’une commune
|
||||||
|
|
||||||
|
@ -58,30 +67,53 @@ Cliquez sur « Communes France » et sélectionnez la commune souhaitée dans
|
||||||
Le code affiché n’est pas le code postal mais le code INSEE de la commune.
|
Le code affiché n’est pas le code postal mais le code INSEE de la commune.
|
||||||
|
|
||||||
Voici le résultat avec la commune d’Arles (la plus vaste de France métropolitaine, un gain certain si on fait l’économie de dessiner son contour !)
|
Voici le résultat avec la commune d’Arles (la plus vaste de France métropolitaine, un gain certain si on fait l’économie de dessiner son contour !)
|
||||||

|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
Une fois cet import réalisé, tout est réglable : couleur de contour, de fond, affichage oui non d’une étiquette.
|
Une fois cet import réalisé, tout est réglable : couleur de contour, de fond, affichage oui non d’une étiquette.
|
||||||
|
|
||||||
## 2. Importer les contours des départements ou des régions
|
## 2. Importer le cadastre
|
||||||
|
|
||||||
|
Cliquez sur l’outil d’importation en bas de la barre de droite, puis descendez jusqu’au cadre « Assistants d’import ».
|
||||||
|
|
||||||
|
Cliquez sur « Cadastre », choisir l'objet du cadastre à importer, par défaut, les parcelles sont proposées. Sélectionner une commune, choisir le type de calque et cliquez sur "Importer".
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Pour régler l'épaisseur du trait et l'opacité du fond, cliquer dans la barre de droite sur "Gérer les calques", puis sur le petit stylo ("Editer") et enfin dans les "propriétés de la forme" :
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
On obtient une couche d'information moins chargée, ce qui permet d'ajouter d'autres données :
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Sur cet exemple, l'identifiant s'affiche au survol d'une parcelle avec la souris. Pour obtenir cet affichage, cliquer sur les "Propriétés avancées" du calque, juste en dessous des "Propriétés de la forme", puis dans "Clé pour le libellé", indiquer id. C'est en effet le nom donné dans le tableau de données à la colonne qui accueille l'identifiant des parcelles.
|
||||||
|
|
||||||
|
!!! note
|
||||||
|
Il est tout à fait possible d'utiliser le cadastre comme fond de carte. Dans ce cas, la méthode est différente, voir la fiche tuto [Où trouver des données](https://discover.umap-project.org/fr/tutorials/4-find-data/)
|
||||||
|
|
||||||
|
## 3. Importer les contours des départements ou des régions
|
||||||
|
|
||||||
Cliquez sur l’outil d’importation en bas de la barre de droite, puis cliquez sur le lien « Assistants d’import ».
|
Cliquez sur l’outil d’importation en bas de la barre de droite, puis cliquez sur le lien « Assistants d’import ».
|
||||||
|
|
||||||
Cliquez sur « Contours nationaux » puis soit départements, soit régions et enfin le type de calque (voir supra l’explication). Tous les départements sont importés :
|
Cliquez sur « Contours nationaux » puis soit départements, soit régions et enfin le type de calque (voir supra l’explication). Tous les départements sont importés :
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 3. Importer un point d’intérêt issu de GeoDataMine
|
## 4. Importer un point d’intérêt issu de GeoDataMine
|
||||||
|
|
||||||
Cliquez sur l’outil d’importation en bas de la barre de droite, puis cliquez sur le lien « Assistants d’import ».
|
Cliquez sur l’outil d’importation en bas de la barre de droite, puis cliquez sur le lien « Assistants d’import ».
|
||||||
|
|
||||||
Cliquez sur « GeoDataMine (thèmes OSM) » et sélectionnez les informations souhaitées, routes, bâtiments, commerces, services publics, …
|
Cliquez sur « GeoDataMine (thèmes OSM) » et sélectionnez les informations souhaitées, routes, bâtiments, commerces, services publics, …
|
||||||
Par exemple, en sélectionnant les points d’eau potable de la CA du Grand Avignon, puis « Copier dans un calque »
|
Par exemple, en sélectionnant les points d’eau potable de la CA du Grand Avignon, puis « Copier dans un calque » ou « Associer comme données distantes » (dans ce dernier cas, la carte se mettra automatiquement à jour lorsque le jeu de données changera).
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Voici une réelle économie de temps plutôt que de placer pointeur après pointeur tous les points d’eau.
|
Voici une réelle économie de temps plutôt que de placer pointeur après pointeur tous les points d’eau.
|
||||||
|
|
||||||
## 4. La carte combinée
|
## 5. La carte combinée
|
||||||
|
|
||||||
Bien entendu, on peut tout à fait combiner les différentes couches d’information et présenter par exemple la carte des Points d’eau potable dans la CA du Grand Avignon, avec les contours des communes qui composent l’EPCI, du département et de la région :
|
Bien entendu, on peut tout à fait combiner les différentes couches d’information et présenter par exemple la carte des Points d’eau potable dans la CA du Grand Avignon, avec les contours des communes qui composent l’EPCI, du département et de la région :
|
||||||
|
|
||||||
|
@ -89,7 +121,7 @@ Bien entendu, on peut tout à fait combiner les différentes couches d’informa
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
[Voir la carte en plein écran](https://umap.openstreetmap.fr/fr/map/points-deau-potable-grand-avignon_1116739?scaleControl=false&miniMap=false&scrollWheelZoom=true&zoomControl=true&editMode=disabled&moreControl=true&searchControl=null&tilelayersControl=null&embedControl=null&datalayersControl=true&onLoadPanel=none&captionBar=false&captionMenus=true#11/43.9889/4.7962){ .md-button }
|
[Voir la carte en plein écran](https://umap.incubateur.anct.gouv.fr/fr/map/points-deau-potable-grand-avignon_672)
|
||||||
|
|
||||||
Il faudra dans ce cas supprimer toutes les informations inutiles dans le tableau de données qui est accessible dans la barre de gauche pour chaque calque.
|
Il faudra dans ce cas supprimer toutes les informations inutiles dans le tableau de données qui est accessible dans la barre de gauche pour chaque calque.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Force rtfd to use a recent version of mkdocs
|
# Force rtfd to use a recent version of mkdocs
|
||||||
mkdocs==1.6.1
|
mkdocs==1.6.1
|
||||||
pymdown-extensions==10.14.3
|
pymdown-extensions==10.14.3
|
||||||
mkdocs-material==9.6.11
|
mkdocs-material==9.6.12
|
||||||
mkdocs-static-i18n==1.3.0
|
mkdocs-static-i18n==1.3.0
|
||||||
|
|
|
@ -1,5 +1,23 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 3.0.5 - 2025-04-25
|
||||||
|
|
||||||
|
* allow to save a remote data with unloaded data by @yohanboniface in #2657
|
||||||
|
* allow to save/undo/sync drag'n'drop of datalayers by @yohanboniface in #2677
|
||||||
|
* setting center and zoom manually should set dirty status by @yohanboniface in #2676
|
||||||
|
* fix error when saving and deleting heatmap layer by @yohanboniface in #2681
|
||||||
|
* make rules reordering syncable, savable and undoable by @yohanboniface in #2672
|
||||||
|
* loading remote data should not make the map dirty by @yohanboniface in #2679
|
||||||
|
* implement a design system for UI consistency by @davidbgk in #2654
|
||||||
|
* pass CSRF_TRUSTED_ORIGINS env to settings by @lippoliv in #2656
|
||||||
|
* do not display "saved" message if some request failed by @yohanboniface in #2669
|
||||||
|
* show an error message if saving layer failed by @yohanboniface in #2670
|
||||||
|
* naive support for GeometryCollection as Feature geometry by @yohanboniface in #2658
|
||||||
|
* add a back button in rules form by @yohanboniface in #2673
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @lippoliv made their first contribution in #2656
|
||||||
|
|
||||||
## 3.0.4 - 2025-04-14
|
## 3.0.4 - 2025-04-14
|
||||||
|
|
||||||
* do not show "back to home" button in iframes by @yohanboniface in #2644
|
* do not show "back to home" button in iframes by @yohanboniface in #2644
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Force rtfd to use a recent version of mkdocs
|
# Force rtfd to use a recent version of mkdocs
|
||||||
mkdocs==1.6.1
|
mkdocs==1.6.1
|
||||||
pymdown-extensions==10.14.3
|
pymdown-extensions==10.14.3
|
||||||
mkdocs-material==9.6.11
|
mkdocs-material==9.6.12
|
||||||
mkdocs-static-i18n==1.3.0
|
mkdocs-static-i18n==1.3.0
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dwayneparton/geojson-to-gpx": "^0.2.0",
|
"@dwayneparton/geojson-to-gpx": "^0.2.0",
|
||||||
"@placemarkio/tokml": "0.3.4",
|
"@placemarkio/tokml": "0.3.4",
|
||||||
"@tmcw/togeojson": "^5.8.0",
|
"@tmcw/togeojson": "^7.1.0",
|
||||||
"colorbrewer": "1.5.7",
|
"colorbrewer": "1.5.7",
|
||||||
"csv2geojson": "github:umap-project/csv2geojson#patched",
|
"csv2geojson": "github:umap-project/csv2geojson#patched",
|
||||||
"dompurify": "3.2.4",
|
"dompurify": "3.2.4",
|
||||||
|
|
|
@ -44,10 +44,10 @@ dependencies = [
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
dev = [
|
dev = [
|
||||||
"hatch==1.14.1",
|
"hatch==1.14.1",
|
||||||
"ruff==0.11.4",
|
"ruff==0.11.6",
|
||||||
"djlint==1.36.4",
|
"djlint==1.36.4",
|
||||||
"mkdocs==1.6.1",
|
"mkdocs==1.6.1",
|
||||||
"mkdocs-material==9.6.11",
|
"mkdocs-material==9.6.12",
|
||||||
"mkdocs-static-i18n==1.3.0",
|
"mkdocs-static-i18n==1.3.0",
|
||||||
"vermin==1.6.0",
|
"vermin==1.6.0",
|
||||||
"pymdown-extensions==10.14.3",
|
"pymdown-extensions==10.14.3",
|
||||||
|
@ -62,10 +62,10 @@ test = [
|
||||||
"pytest-playwright==0.7.0",
|
"pytest-playwright==0.7.0",
|
||||||
"pytest-rerunfailures==15.0",
|
"pytest-rerunfailures==15.0",
|
||||||
"pytest-xdist>=3.5.0,<4",
|
"pytest-xdist>=3.5.0,<4",
|
||||||
"moto[s3]==5.1.3"
|
"moto[s3]==5.1.4"
|
||||||
]
|
]
|
||||||
docker = [
|
docker = [
|
||||||
"uvicorn==0.34.1",
|
"uvicorn==0.34.2",
|
||||||
]
|
]
|
||||||
s3 = [
|
s3 = [
|
||||||
"django-storages[s3]==1.14.6",
|
"django-storages[s3]==1.14.6",
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
VERSION = "3.0.4"
|
VERSION = "3.0.5"
|
||||||
|
|
Binary file not shown.
|
@ -13,7 +13,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: uMap\n"
|
"Project-Id-Version: uMap\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-03-03 17:36+0000\n"
|
"POT-Creation-Date: 2025-04-11 15:30+0000\n"
|
||||||
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
||||||
"Last-Translator: prendi <prendi@openmailbox.org>, 2017\n"
|
"Last-Translator: prendi <prendi@openmailbox.org>, 2017\n"
|
||||||
"Language-Team: Greek (http://app.transifex.com/openstreetmap/umap/language/el/)\n"
|
"Language-Team: Greek (http://app.transifex.com/openstreetmap/umap/language/el/)\n"
|
||||||
|
@ -40,137 +40,205 @@ msgstr "Λόγω συντήρησης, ο ιστότοπος είναι μόνο
|
||||||
msgid ""
|
msgid ""
|
||||||
"Using “%(name)s” to authenticate is deprecated and will be removed soon. "
|
"Using “%(name)s” to authenticate is deprecated and will be removed soon. "
|
||||||
"Please configure another provider below before losing access to your account"
|
"Please configure another provider below before losing access to your account"
|
||||||
" and maps."
|
" and maps. Then, please logout and login again with the new provider."
|
||||||
msgstr ""
|
msgstr "Η χρήση του «%(name)s» για τον έλεγχο ταυτότητας έχει ξεπεραστεί και θα καταργηθεί σύντομα. Παρακαλούμε ρυθμίστε έναν άλλο πάροχο παρακάτω πριν χάσετε την πρόσβαση στο λογαριασμό και τους χάρτες σας. Στη συνέχεια, παρακαλούμε αποσυνδεθείτε και συνδεθείτε ξανά με τον νέο πάροχο."
|
||||||
|
|
||||||
#: models.py:60 models.py:79
|
#: models.py:61 models.py:80
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "όνομα"
|
msgstr "όνομα"
|
||||||
|
|
||||||
#: models.py:62 models.py:485
|
#: models.py:63 models.py:493
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "περιγραφή"
|
msgstr "περιγραφή"
|
||||||
|
|
||||||
#: models.py:110
|
#: models.py:111
|
||||||
msgid "details"
|
msgid "details"
|
||||||
msgstr "λεπτομέρειες"
|
msgstr "λεπτομέρειες"
|
||||||
|
|
||||||
#: models.py:111
|
#: models.py:112
|
||||||
msgid "Link to a page where the licence is detailed."
|
msgid "Link to a page where the licence is detailed."
|
||||||
msgstr "Σύνδεσμος σελίδας αναλυτικής Άδειας Χρήσης."
|
msgstr "Σύνδεσμος σελίδας αναλυτικής Άδειας Χρήσης."
|
||||||
|
|
||||||
#: models.py:121
|
#: models.py:122
|
||||||
msgid "URL template using OSM tile format"
|
msgid "URL template using OSM tile format"
|
||||||
msgstr "Πρότυπο URL που χρησιμοποιεί μορφοποίηση πλακιδίων OSM"
|
msgstr "Πρότυπο URL που χρησιμοποιεί μορφοποίηση πλακιδίων OSM"
|
||||||
|
|
||||||
#: models.py:127
|
#: models.py:128
|
||||||
msgid "Order of the tilelayers in the edit box"
|
msgid "Order of the tilelayers in the edit box"
|
||||||
msgstr "Σειρά των υπόβαθρων στο πλαίσιο επεξεργασίας"
|
msgstr "Σειρά των υπόβαθρων στο πλαίσιο επεξεργασίας"
|
||||||
|
|
||||||
#: models.py:175 models.py:479
|
#: models.py:176 models.py:487
|
||||||
msgid "Only editable with secret edit link"
|
msgid "Only editable with secret edit link"
|
||||||
msgstr "Επεξεργάσιμο μόνο με μυστικό σύνδεσμο"
|
msgstr "Επεξεργάσιμο μόνο με μυστικό σύνδεσμο"
|
||||||
|
|
||||||
#: models.py:176 models.py:480
|
#: models.py:177 models.py:488
|
||||||
msgid "Everyone can edit"
|
msgid "Everyone can edit"
|
||||||
msgstr "Όλοι μπορούν να επεξεργαστούν"
|
msgstr "Όλοι μπορούν να επεξεργαστούν"
|
||||||
|
|
||||||
#: models.py:179 models.py:473
|
#: models.py:180 models.py:481
|
||||||
msgid "Everyone"
|
msgid "Everyone"
|
||||||
msgstr "Οποιοσδήποτε"
|
msgstr "Οποιοσδήποτε"
|
||||||
|
|
||||||
#: models.py:180 models.py:189 models.py:474
|
#: models.py:181 models.py:190 models.py:482
|
||||||
msgid "Editors and team only"
|
msgid "Editors and team only"
|
||||||
msgstr "Μόνο συντάκτες και ομάδα"
|
msgstr "Μόνο συντάκτες και ομάδα"
|
||||||
|
|
||||||
#: models.py:181 models.py:475
|
#: models.py:182 models.py:483
|
||||||
msgid "Owner only"
|
msgid "Owner only"
|
||||||
msgstr "Μόνο ο κάτοχος"
|
msgstr "Μόνο ο κάτοχος"
|
||||||
|
|
||||||
#: models.py:184
|
#: models.py:185
|
||||||
msgid "Draft (private)"
|
msgid "Draft (private)"
|
||||||
msgstr "Πρόχειρο (ιδιωτικό)"
|
msgstr "Πρόχειρο (ιδιωτικό)"
|
||||||
|
|
||||||
#: models.py:185
|
#: models.py:186
|
||||||
msgid "Everyone (public)"
|
msgid "Everyone (public)"
|
||||||
msgstr "Όλοι (δημόσιος)"
|
msgstr "Όλοι (δημόσιος)"
|
||||||
|
|
||||||
#: models.py:188
|
#: models.py:189
|
||||||
msgid "Anyone with link"
|
msgid "Anyone with link"
|
||||||
msgstr "Οποιοδήποτε με τον σύνδεσμο"
|
msgstr "Οποιοδήποτε με τον σύνδεσμο"
|
||||||
|
|
||||||
#: models.py:190
|
#: models.py:191
|
||||||
msgid "Blocked"
|
msgid "Blocked"
|
||||||
msgstr "Αποκλεισμένος"
|
msgstr "Αποκλεισμένος"
|
||||||
|
|
||||||
#: models.py:191 models.py:469
|
#: models.py:192 models.py:477
|
||||||
msgid "Deleted"
|
msgid "Deleted"
|
||||||
msgstr "Διαγράφηκε"
|
msgstr "Διαγράφηκε"
|
||||||
|
|
||||||
#: models.py:194
|
#: models.py:195
|
||||||
msgid "center"
|
msgid "center"
|
||||||
msgstr "κέντρο"
|
msgstr "κέντρο"
|
||||||
|
|
||||||
#: models.py:195
|
#: models.py:196
|
||||||
msgid "zoom"
|
msgid "zoom"
|
||||||
msgstr "εστίαση"
|
msgstr "εστίαση"
|
||||||
|
|
||||||
#: models.py:197
|
#: models.py:198
|
||||||
msgid "locate"
|
msgid "locate"
|
||||||
msgstr "εντοπισμός θέσης"
|
msgstr "εντοπισμός θέσης"
|
||||||
|
|
||||||
#: models.py:197
|
#: models.py:198
|
||||||
msgid "Locate user on load?"
|
msgid "Locate user on load?"
|
||||||
msgstr "Εντοπισμός θέσης χρήστη κατά την φόρτωση;"
|
msgstr "Εντοπισμός θέσης χρήστη κατά την φόρτωση;"
|
||||||
|
|
||||||
#: models.py:201
|
#: models.py:202
|
||||||
msgid "Choose the map licence."
|
msgid "Choose the map licence."
|
||||||
msgstr "Επιλογή άδειας χρήσης του χάρτη."
|
msgstr "Επιλογή άδειας χρήσης του χάρτη."
|
||||||
|
|
||||||
#: models.py:202
|
#: models.py:203
|
||||||
msgid "licence"
|
msgid "licence"
|
||||||
msgstr "άδεια"
|
msgstr "άδεια"
|
||||||
|
|
||||||
#: models.py:213
|
#: models.py:214
|
||||||
msgid "owner"
|
msgid "owner"
|
||||||
msgstr "ιδιοκτήτης"
|
msgstr "ιδιοκτήτης"
|
||||||
|
|
||||||
#: models.py:217
|
#: models.py:218
|
||||||
msgid "editors"
|
msgid "editors"
|
||||||
msgstr "συντάκτες"
|
msgstr "συντάκτες"
|
||||||
|
|
||||||
#: models.py:223
|
#: models.py:224
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "ομάδα"
|
msgstr "ομάδα"
|
||||||
|
|
||||||
#: models.py:229 models.py:501
|
#: models.py:230 models.py:509
|
||||||
msgid "edit status"
|
msgid "edit status"
|
||||||
msgstr "κατάσταση επεξεργασίας"
|
msgstr "κατάσταση επεξεργασίας"
|
||||||
|
|
||||||
#: models.py:234 models.py:506
|
#: models.py:235 models.py:514
|
||||||
msgid "share status"
|
msgid "share status"
|
||||||
msgstr "κατάσταση διαμοιρασμού"
|
msgstr "κατάσταση διαμοιρασμού"
|
||||||
|
|
||||||
#: models.py:237 models.py:496
|
#: models.py:238 models.py:504
|
||||||
msgid "settings"
|
msgid "settings"
|
||||||
msgstr "ρυθμίσεις"
|
msgstr "ρυθμίσεις"
|
||||||
|
|
||||||
#: models.py:407
|
#: models.py:410
|
||||||
msgid "Clone of"
|
msgid "Clone of"
|
||||||
msgstr "Κλώνος του"
|
msgstr "Κλώνος του"
|
||||||
|
|
||||||
#: models.py:468 models.py:472 models.py:478
|
#: models.py:476 models.py:480 models.py:486
|
||||||
msgid "Inherit"
|
msgid "Inherit"
|
||||||
msgstr "Κληρονόμοι"
|
msgstr "Κληρονόμοι"
|
||||||
|
|
||||||
#: models.py:491
|
#: models.py:499
|
||||||
msgid "display on load"
|
msgid "display on load"
|
||||||
msgstr "εμφάνιση κατά τη φόρτωση"
|
msgstr "εμφάνιση κατά τη φόρτωση"
|
||||||
|
|
||||||
#: models.py:492
|
#: models.py:500
|
||||||
msgid "Display this layer on load."
|
msgid "Display this layer on load."
|
||||||
msgstr "Εμφάνιση αυτού του επιπέδου κατά την φόρτωση."
|
msgstr "Εμφάνιση αυτού του επιπέδου κατά την φόρτωση."
|
||||||
|
|
||||||
|
#: settings/base.py:295
|
||||||
|
msgid "Art and Culture"
|
||||||
|
msgstr "Τέχνες και Πολιτισμός"
|
||||||
|
|
||||||
|
#: settings/base.py:296
|
||||||
|
msgid "Cycling"
|
||||||
|
msgstr "Ποδηλασία"
|
||||||
|
|
||||||
|
#: settings/base.py:297
|
||||||
|
msgid "Business"
|
||||||
|
msgstr "Επιχειρήσεις"
|
||||||
|
|
||||||
|
#: settings/base.py:298
|
||||||
|
msgid "Environment"
|
||||||
|
msgstr "Περιβάλλον"
|
||||||
|
|
||||||
|
#: settings/base.py:299
|
||||||
|
msgid "Education"
|
||||||
|
msgstr "Εκπαίδευση"
|
||||||
|
|
||||||
|
#: settings/base.py:300
|
||||||
|
msgid "Food and Agriculture"
|
||||||
|
msgstr "Διατροφή και Γεωργία"
|
||||||
|
|
||||||
|
#: settings/base.py:301
|
||||||
|
msgid "Geopolitics"
|
||||||
|
msgstr "Γεωπολιτική"
|
||||||
|
|
||||||
|
#: settings/base.py:302
|
||||||
|
msgid "Health"
|
||||||
|
msgstr "Υγεία"
|
||||||
|
|
||||||
|
#: settings/base.py:303
|
||||||
|
msgid "Hiking"
|
||||||
|
msgstr "Πεζοπορία-Ορειβασία"
|
||||||
|
|
||||||
|
#: settings/base.py:304
|
||||||
|
msgid "History"
|
||||||
|
msgstr "Ιστορία"
|
||||||
|
|
||||||
|
#: settings/base.py:305
|
||||||
|
msgid "Public sector"
|
||||||
|
msgstr "Δημόσιος τομέας"
|
||||||
|
|
||||||
|
#: settings/base.py:306
|
||||||
|
msgid "Science"
|
||||||
|
msgstr "Επιστήμες"
|
||||||
|
|
||||||
|
#: settings/base.py:307
|
||||||
|
msgid "Shopping"
|
||||||
|
msgstr "Ψώνια"
|
||||||
|
|
||||||
|
#: settings/base.py:308
|
||||||
|
msgid "Sport and Leisure"
|
||||||
|
msgstr "Αθλητισμός και ελεύθερος χρόνος"
|
||||||
|
|
||||||
|
#: settings/base.py:309
|
||||||
|
msgid "Travel"
|
||||||
|
msgstr "Ταξίδια"
|
||||||
|
|
||||||
|
#: settings/base.py:310
|
||||||
|
msgid "Transports"
|
||||||
|
msgstr "Μεταφορές"
|
||||||
|
|
||||||
|
#: settings/base.py:311
|
||||||
|
msgid "Tourism"
|
||||||
|
msgstr "Τουρισμός"
|
||||||
|
|
||||||
#: templates/403.html:8
|
#: templates/403.html:8
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a href=\"https://discover.umap-project.org/support/faq/#map-statuses\" "
|
"<a href=\"https://discover.umap-project.org/support/faq/#map-statuses\" "
|
||||||
|
@ -423,7 +491,7 @@ msgstr "Οι ομάδες μου"
|
||||||
msgid "Map of the uMaps"
|
msgid "Map of the uMaps"
|
||||||
msgstr "Χάρτης των uMaps"
|
msgstr "Χάρτης των uMaps"
|
||||||
|
|
||||||
#: templates/umap/home.html:24
|
#: templates/umap/home.html:25
|
||||||
msgid "Get inspired, browse maps"
|
msgid "Get inspired, browse maps"
|
||||||
msgstr "Περιηγήσου και αναζήτησε την έμπνευση στους χάρτες!"
|
msgstr "Περιηγήσου και αναζήτησε την έμπνευση στους χάρτες!"
|
||||||
|
|
||||||
|
@ -431,11 +499,15 @@ msgstr "Περιηγήσου και αναζήτησε την έμπνευση
|
||||||
msgid "You are logged in. Continuing..."
|
msgid "You are logged in. Continuing..."
|
||||||
msgstr "Είστε συνδεδεμένοι. Συνέχεια..."
|
msgstr "Είστε συνδεδεμένοι. Συνέχεια..."
|
||||||
|
|
||||||
#: templates/umap/map_list.html:11 views.py:437
|
#: templates/umap/map_list.html:18 views.py:444
|
||||||
msgid "by"
|
msgid "by"
|
||||||
msgstr "από"
|
msgstr "από"
|
||||||
|
|
||||||
#: templates/umap/map_list.html:20
|
#: templates/umap/map_list.html:22
|
||||||
|
msgid "See the map"
|
||||||
|
msgstr "Δες τον χάρτη"
|
||||||
|
|
||||||
|
#: templates/umap/map_list.html:28
|
||||||
msgid "More"
|
msgid "More"
|
||||||
msgstr "Περισσότερα"
|
msgstr "Περισσότερα"
|
||||||
|
|
||||||
|
@ -594,11 +666,15 @@ msgid_plural "%(count)s maps found:"
|
||||||
msgstr[0] "%(count)s χάρτης βρέθηκε:"
|
msgstr[0] "%(count)s χάρτης βρέθηκε:"
|
||||||
msgstr[1] "%(count)s χάρτες βρέθηκαν:"
|
msgstr[1] "%(count)s χάρτες βρέθηκαν:"
|
||||||
|
|
||||||
#: templates/umap/search.html:28
|
#: templates/umap/search.html:30
|
||||||
msgid "No map found."
|
msgid "No map found."
|
||||||
msgstr "Δεν βρέθηκε κανένας χάρτης."
|
msgstr "Δεν βρέθηκε κανένας χάρτης."
|
||||||
|
|
||||||
#: templates/umap/search.html:33
|
#: templates/umap/search.html:36
|
||||||
|
msgid "Latest created maps in category"
|
||||||
|
msgstr "Τελευταία δημιουργημένοι χάρτες στην κατηγορία"
|
||||||
|
|
||||||
|
#: templates/umap/search.html:43
|
||||||
msgid "Latest created maps"
|
msgid "Latest created maps"
|
||||||
msgstr "Χάρτες που δημιουργήθηκαν τελευταίοι"
|
msgstr "Χάρτες που δημιουργήθηκαν τελευταίοι"
|
||||||
|
|
||||||
|
@ -606,7 +682,11 @@ msgstr "Χάρτες που δημιουργήθηκαν τελευταίοι"
|
||||||
msgid "Search maps"
|
msgid "Search maps"
|
||||||
msgstr "Αναζήτηση χαρτών"
|
msgstr "Αναζήτηση χαρτών"
|
||||||
|
|
||||||
#: templates/umap/search_bar.html:16
|
#: templates/umap/search_bar.html:14
|
||||||
|
msgid "Any category"
|
||||||
|
msgstr "Οποιαδήποτε κατηγορία"
|
||||||
|
|
||||||
|
#: templates/umap/search_bar.html:19
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Αναζήτηση"
|
msgstr "Αναζήτηση"
|
||||||
|
|
||||||
|
@ -670,70 +750,70 @@ msgstr "Χρήστες"
|
||||||
msgid "New team"
|
msgid "New team"
|
||||||
msgstr "Νέα ομάδα"
|
msgstr "Νέα ομάδα"
|
||||||
|
|
||||||
#: views.py:234
|
#: views.py:235
|
||||||
msgid "Cannot delete a team with more than one member"
|
msgid "Cannot delete a team with more than one member"
|
||||||
msgstr "Δεν είναι δυνατή η διαγραφή μιας ομάδας που έχει περισσότερα από ένα μέλη"
|
msgstr "Δεν είναι δυνατή η διαγραφή μιας ομάδας που έχει περισσότερα από ένα μέλη"
|
||||||
|
|
||||||
#: views.py:238
|
#: views.py:239
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Team “%(name)s” has been deleted"
|
msgid "Team “%(name)s” has been deleted"
|
||||||
msgstr "Η ομάδα «%(name)s» έχει διαγραφεί."
|
msgstr "Η ομάδα «%(name)s» έχει διαγραφεί."
|
||||||
|
|
||||||
#: views.py:442
|
#: views.py:449
|
||||||
msgid "View the map"
|
msgid "View the map"
|
||||||
msgstr "Προβολή του χάρτη"
|
msgstr "Προβολή του χάρτη"
|
||||||
|
|
||||||
#: views.py:838
|
#: views.py:845
|
||||||
msgid "See full screen"
|
msgid "See full screen"
|
||||||
msgstr "Προβολή πλήρους οθόνης"
|
msgstr "Προβολή πλήρους οθόνης"
|
||||||
|
|
||||||
#: views.py:981
|
#: views.py:988
|
||||||
msgid "Map editors updated with success!"
|
msgid "Map editors updated with success!"
|
||||||
msgstr "Η ενημέρωση των συντακτών χάρτη ήταν επιτυχής!"
|
msgstr "Η ενημέρωση των συντακτών χάρτη ήταν επιτυχής!"
|
||||||
|
|
||||||
#: views.py:1017
|
#: views.py:1024
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The uMap edit link for your map: %(map_name)s"
|
msgid "The uMap edit link for your map: %(map_name)s"
|
||||||
msgstr "Ο uMap σύνδεσμος επεξεργασίας του χάρτη σας: %(map_name)s"
|
msgstr "Ο uMap σύνδεσμος επεξεργασίας του χάρτη σας: %(map_name)s"
|
||||||
|
|
||||||
#: views.py:1020
|
#: views.py:1027
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Here is your secret edit link: %(link)s"
|
msgid "Here is your secret edit link: %(link)s"
|
||||||
msgstr "Εδώ είναι ο μυστικός σύνδεσμος επεξεργασίας: %(link)s"
|
msgstr "Εδώ είναι ο μυστικός σύνδεσμος επεξεργασίας: %(link)s"
|
||||||
|
|
||||||
#: views.py:1027
|
#: views.py:1034
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Can't send email to %(email)s"
|
msgid "Can't send email to %(email)s"
|
||||||
msgstr "Αδυναμία αποστολής email στο %(email)s"
|
msgstr "Αδυναμία αποστολής email στο %(email)s"
|
||||||
|
|
||||||
#: views.py:1030
|
#: views.py:1037
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Email sent to %(email)s"
|
msgid "Email sent to %(email)s"
|
||||||
msgstr "Μήνυμα email στάλθηκε στο %(email)s"
|
msgstr "Μήνυμα email στάλθηκε στο %(email)s"
|
||||||
|
|
||||||
#: views.py:1041
|
#: views.py:1048
|
||||||
msgid "Only its owner can delete the map."
|
msgid "Only its owner can delete the map."
|
||||||
msgstr "Μονό ο ιδιοκτήτης μπορεί να διαγράψει αυτό τον χάρτη."
|
msgstr "Μονό ο ιδιοκτήτης μπορεί να διαγράψει αυτό τον χάρτη."
|
||||||
|
|
||||||
#: views.py:1044
|
#: views.py:1054
|
||||||
msgid "Map successfully deleted."
|
msgid "Map successfully deleted."
|
||||||
msgstr "Ο χάρτης διαγράφηκε με επιτυχία."
|
msgstr "Ο χάρτης διαγράφηκε με επιτυχία."
|
||||||
|
|
||||||
#: views.py:1070
|
#: views.py:1080
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your map has been cloned! If you want to edit this map from another "
|
"Your map has been cloned! If you want to edit this map from another "
|
||||||
"computer, please use this link: %(anonymous_url)s"
|
"computer, please use this link: %(anonymous_url)s"
|
||||||
msgstr "Ο χάρτης κλωνοποιήθηκε! Αν θέλετε να τον επεξεργαστείτε από κάποιον άλλο υπολογιστή, παρακαλώ χρησιμοποιήστε αυτόν τον σύνδεσμο: %(anonymous_url)s"
|
msgstr "Ο χάρτης κλωνοποιήθηκε! Αν θέλετε να τον επεξεργαστείτε από κάποιον άλλο υπολογιστή, παρακαλώ χρησιμοποιήστε αυτόν τον σύνδεσμο: %(anonymous_url)s"
|
||||||
|
|
||||||
#: views.py:1075
|
#: views.py:1085
|
||||||
msgid "Congratulations, your map has been cloned!"
|
msgid "Congratulations, your map has been cloned!"
|
||||||
msgstr "Συγχαρητήρια ο χάρτης σας κλωνοποιήθηκε!"
|
msgstr "Συγχαρητήρια ο χάρτης σας κλωνοποιήθηκε!"
|
||||||
|
|
||||||
#: views.py:1329
|
#: views.py:1339
|
||||||
msgid "Layer successfully deleted."
|
msgid "Layer successfully deleted."
|
||||||
msgstr "Το επίπεδο διαγράφηκε με επιτυχία."
|
msgstr "Το επίπεδο διαγράφηκε με επιτυχία."
|
||||||
|
|
||||||
#: views.py:1351
|
#: views.py:1361
|
||||||
msgid "Permissions updated with success!"
|
msgid "Permissions updated with success!"
|
||||||
msgstr "Τα δικαιώματα ενημερώθηκαν με επιτυχία!"
|
msgstr "Τα δικαιώματα ενημερώθηκαν με επιτυχία!"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-04-11 15:30+0000\n"
|
"POT-Creation-Date: 2025-04-25 15:38+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -165,71 +165,71 @@ msgstr ""
|
||||||
msgid "Display this layer on load."
|
msgid "Display this layer on load."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:295
|
#: settings/base.py:296
|
||||||
msgid "Art and Culture"
|
msgid "Art and Culture"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:296
|
#: settings/base.py:297
|
||||||
msgid "Cycling"
|
msgid "Cycling"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:297
|
#: settings/base.py:298
|
||||||
msgid "Business"
|
msgid "Business"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:298
|
#: settings/base.py:299
|
||||||
msgid "Environment"
|
msgid "Environment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:299
|
#: settings/base.py:300
|
||||||
msgid "Education"
|
msgid "Education"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:300
|
#: settings/base.py:301
|
||||||
msgid "Food and Agriculture"
|
msgid "Food and Agriculture"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:301
|
#: settings/base.py:302
|
||||||
msgid "Geopolitics"
|
msgid "Geopolitics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:302
|
#: settings/base.py:303
|
||||||
msgid "Health"
|
msgid "Health"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:303
|
#: settings/base.py:304
|
||||||
msgid "Hiking"
|
msgid "Hiking"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:304
|
#: settings/base.py:305
|
||||||
msgid "History"
|
msgid "History"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:305
|
#: settings/base.py:306
|
||||||
msgid "Public sector"
|
msgid "Public sector"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:306
|
#: settings/base.py:307
|
||||||
msgid "Science"
|
msgid "Science"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:307
|
#: settings/base.py:308
|
||||||
msgid "Shopping"
|
msgid "Shopping"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:308
|
#: settings/base.py:309
|
||||||
msgid "Sport and Leisure"
|
msgid "Sport and Leisure"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:309
|
#: settings/base.py:310
|
||||||
msgid "Travel"
|
msgid "Travel"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:310
|
#: settings/base.py:311
|
||||||
msgid "Transports"
|
msgid "Transports"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: settings/base.py:311
|
#: settings/base.py:312
|
||||||
msgid "Tourism"
|
msgid "Tourism"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -17,7 +17,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: uMap\n"
|
"Project-Id-Version: uMap\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-03-03 17:36+0000\n"
|
"POT-Creation-Date: 2025-04-11 15:30+0000\n"
|
||||||
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
||||||
"Last-Translator: Ignacio L'Episcopo, 2024-2025\n"
|
"Last-Translator: Ignacio L'Episcopo, 2024-2025\n"
|
||||||
"Language-Team: Spanish (http://app.transifex.com/openstreetmap/umap/language/es/)\n"
|
"Language-Team: Spanish (http://app.transifex.com/openstreetmap/umap/language/es/)\n"
|
||||||
|
@ -44,137 +44,205 @@ msgstr "Sitio en modo solo lectura por mantenimiento"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Using “%(name)s” to authenticate is deprecated and will be removed soon. "
|
"Using “%(name)s” to authenticate is deprecated and will be removed soon. "
|
||||||
"Please configure another provider below before losing access to your account"
|
"Please configure another provider below before losing access to your account"
|
||||||
" and maps."
|
" and maps. Then, please logout and login again with the new provider."
|
||||||
msgstr ""
|
msgstr "El uso de “%(name)s” para autenticar está obsoleto y se eliminará pronto. Por favor, configura otro proveedor a continuación antes de perder acceso a tu cuenta y mapas. Luego, cierra sesión e inicia sesión nuevamente con el nuevo proveedor."
|
||||||
|
|
||||||
#: models.py:60 models.py:79
|
#: models.py:61 models.py:80
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nombre"
|
msgstr "nombre"
|
||||||
|
|
||||||
#: models.py:62 models.py:485
|
#: models.py:63 models.py:493
|
||||||
msgid "description"
|
msgid "description"
|
||||||
msgstr "descripción"
|
msgstr "descripción"
|
||||||
|
|
||||||
#: models.py:110
|
#: models.py:111
|
||||||
msgid "details"
|
msgid "details"
|
||||||
msgstr "detalles"
|
msgstr "detalles"
|
||||||
|
|
||||||
#: models.py:111
|
#: models.py:112
|
||||||
msgid "Link to a page where the licence is detailed."
|
msgid "Link to a page where the licence is detailed."
|
||||||
msgstr "Enlace a una página donde se detalla la licencia."
|
msgstr "Enlace a una página donde se detalla la licencia."
|
||||||
|
|
||||||
#: models.py:121
|
#: models.py:122
|
||||||
msgid "URL template using OSM tile format"
|
msgid "URL template using OSM tile format"
|
||||||
msgstr "Plantilla de URL usando el formato de teselas OSM"
|
msgstr "Plantilla de URL usando el formato de teselas OSM"
|
||||||
|
|
||||||
#: models.py:127
|
#: models.py:128
|
||||||
msgid "Order of the tilelayers in the edit box"
|
msgid "Order of the tilelayers in the edit box"
|
||||||
msgstr "Orden de las capas de teselas en el cuadro de edición"
|
msgstr "Orden de las capas de teselas en el cuadro de edición"
|
||||||
|
|
||||||
#: models.py:175 models.py:479
|
#: models.py:176 models.py:487
|
||||||
msgid "Only editable with secret edit link"
|
msgid "Only editable with secret edit link"
|
||||||
msgstr "Solo editable con enlace secreto de edición"
|
msgstr "Solo editable con enlace secreto de edición"
|
||||||
|
|
||||||
#: models.py:176 models.py:480
|
#: models.py:177 models.py:488
|
||||||
msgid "Everyone can edit"
|
msgid "Everyone can edit"
|
||||||
msgstr "Todos pueden editar"
|
msgstr "Todos pueden editar"
|
||||||
|
|
||||||
#: models.py:179 models.py:473
|
#: models.py:180 models.py:481
|
||||||
msgid "Everyone"
|
msgid "Everyone"
|
||||||
msgstr "Todos"
|
msgstr "Todos"
|
||||||
|
|
||||||
#: models.py:180 models.py:189 models.py:474
|
#: models.py:181 models.py:190 models.py:482
|
||||||
msgid "Editors and team only"
|
msgid "Editors and team only"
|
||||||
msgstr "Solo editores y equipo"
|
msgstr "Solo editores y equipo"
|
||||||
|
|
||||||
#: models.py:181 models.py:475
|
#: models.py:182 models.py:483
|
||||||
msgid "Owner only"
|
msgid "Owner only"
|
||||||
msgstr "Solo el propietario"
|
msgstr "Solo el propietario"
|
||||||
|
|
||||||
#: models.py:184
|
#: models.py:185
|
||||||
msgid "Draft (private)"
|
msgid "Draft (private)"
|
||||||
msgstr "Borrador (privado)"
|
msgstr "Borrador (privado)"
|
||||||
|
|
||||||
#: models.py:185
|
#: models.py:186
|
||||||
msgid "Everyone (public)"
|
msgid "Everyone (public)"
|
||||||
msgstr "Todos (público)"
|
msgstr "Todos (público)"
|
||||||
|
|
||||||
#: models.py:188
|
#: models.py:189
|
||||||
msgid "Anyone with link"
|
msgid "Anyone with link"
|
||||||
msgstr "Cualquiera con el enlace"
|
msgstr "Cualquiera con el enlace"
|
||||||
|
|
||||||
#: models.py:190
|
#: models.py:191
|
||||||
msgid "Blocked"
|
msgid "Blocked"
|
||||||
msgstr "Bloqueado"
|
msgstr "Bloqueado"
|
||||||
|
|
||||||
#: models.py:191 models.py:469
|
#: models.py:192 models.py:477
|
||||||
msgid "Deleted"
|
msgid "Deleted"
|
||||||
msgstr "Eliminado"
|
msgstr "Eliminado"
|
||||||
|
|
||||||
#: models.py:194
|
#: models.py:195
|
||||||
msgid "center"
|
msgid "center"
|
||||||
msgstr "centro"
|
msgstr "centro"
|
||||||
|
|
||||||
#: models.py:195
|
#: models.py:196
|
||||||
msgid "zoom"
|
msgid "zoom"
|
||||||
msgstr "zoom"
|
msgstr "zoom"
|
||||||
|
|
||||||
#: models.py:197
|
#: models.py:198
|
||||||
msgid "locate"
|
msgid "locate"
|
||||||
msgstr "localizar"
|
msgstr "localizar"
|
||||||
|
|
||||||
#: models.py:197
|
#: models.py:198
|
||||||
msgid "Locate user on load?"
|
msgid "Locate user on load?"
|
||||||
msgstr "¿Localizar al usuario al cargar?"
|
msgstr "¿Localizar al usuario al cargar?"
|
||||||
|
|
||||||
#: models.py:201
|
#: models.py:202
|
||||||
msgid "Choose the map licence."
|
msgid "Choose the map licence."
|
||||||
msgstr "Elige la licencia del mapa."
|
msgstr "Elige la licencia del mapa."
|
||||||
|
|
||||||
#: models.py:202
|
#: models.py:203
|
||||||
msgid "licence"
|
msgid "licence"
|
||||||
msgstr "licencia"
|
msgstr "licencia"
|
||||||
|
|
||||||
#: models.py:213
|
#: models.py:214
|
||||||
msgid "owner"
|
msgid "owner"
|
||||||
msgstr "propietario"
|
msgstr "propietario"
|
||||||
|
|
||||||
#: models.py:217
|
#: models.py:218
|
||||||
msgid "editors"
|
msgid "editors"
|
||||||
msgstr "editores"
|
msgstr "editores"
|
||||||
|
|
||||||
#: models.py:223
|
#: models.py:224
|
||||||
msgid "team"
|
msgid "team"
|
||||||
msgstr "equipo"
|
msgstr "equipo"
|
||||||
|
|
||||||
#: models.py:229 models.py:501
|
#: models.py:230 models.py:509
|
||||||
msgid "edit status"
|
msgid "edit status"
|
||||||
msgstr "estado de edición"
|
msgstr "estado de edición"
|
||||||
|
|
||||||
#: models.py:234 models.py:506
|
#: models.py:235 models.py:514
|
||||||
msgid "share status"
|
msgid "share status"
|
||||||
msgstr "estado de compartir"
|
msgstr "estado de compartir"
|
||||||
|
|
||||||
#: models.py:237 models.py:496
|
#: models.py:238 models.py:504
|
||||||
msgid "settings"
|
msgid "settings"
|
||||||
msgstr "ajustes"
|
msgstr "ajustes"
|
||||||
|
|
||||||
#: models.py:407
|
#: models.py:410
|
||||||
msgid "Clone of"
|
msgid "Clone of"
|
||||||
msgstr "Clon de"
|
msgstr "Clon de"
|
||||||
|
|
||||||
#: models.py:468 models.py:472 models.py:478
|
#: models.py:476 models.py:480 models.py:486
|
||||||
msgid "Inherit"
|
msgid "Inherit"
|
||||||
msgstr "Heredar"
|
msgstr "Heredar"
|
||||||
|
|
||||||
#: models.py:491
|
#: models.py:499
|
||||||
msgid "display on load"
|
msgid "display on load"
|
||||||
msgstr "mostrar al cargar"
|
msgstr "mostrar al cargar"
|
||||||
|
|
||||||
#: models.py:492
|
#: models.py:500
|
||||||
msgid "Display this layer on load."
|
msgid "Display this layer on load."
|
||||||
msgstr "Mostrar esta capa al cargar."
|
msgstr "Mostrar esta capa al cargar."
|
||||||
|
|
||||||
|
#: settings/base.py:295
|
||||||
|
msgid "Art and Culture"
|
||||||
|
msgstr "Arte y cultura"
|
||||||
|
|
||||||
|
#: settings/base.py:296
|
||||||
|
msgid "Cycling"
|
||||||
|
msgstr "Ciclismo"
|
||||||
|
|
||||||
|
#: settings/base.py:297
|
||||||
|
msgid "Business"
|
||||||
|
msgstr "Negocios"
|
||||||
|
|
||||||
|
#: settings/base.py:298
|
||||||
|
msgid "Environment"
|
||||||
|
msgstr "Medio ambiente"
|
||||||
|
|
||||||
|
#: settings/base.py:299
|
||||||
|
msgid "Education"
|
||||||
|
msgstr "Educación"
|
||||||
|
|
||||||
|
#: settings/base.py:300
|
||||||
|
msgid "Food and Agriculture"
|
||||||
|
msgstr "Alimentos y agricultura"
|
||||||
|
|
||||||
|
#: settings/base.py:301
|
||||||
|
msgid "Geopolitics"
|
||||||
|
msgstr "Geopolítica"
|
||||||
|
|
||||||
|
#: settings/base.py:302
|
||||||
|
msgid "Health"
|
||||||
|
msgstr "Salud"
|
||||||
|
|
||||||
|
#: settings/base.py:303
|
||||||
|
msgid "Hiking"
|
||||||
|
msgstr "Senderismo"
|
||||||
|
|
||||||
|
#: settings/base.py:304
|
||||||
|
msgid "History"
|
||||||
|
msgstr "Historia"
|
||||||
|
|
||||||
|
#: settings/base.py:305
|
||||||
|
msgid "Public sector"
|
||||||
|
msgstr "Sector público"
|
||||||
|
|
||||||
|
#: settings/base.py:306
|
||||||
|
msgid "Science"
|
||||||
|
msgstr "Ciencia"
|
||||||
|
|
||||||
|
#: settings/base.py:307
|
||||||
|
msgid "Shopping"
|
||||||
|
msgstr "Compras"
|
||||||
|
|
||||||
|
#: settings/base.py:308
|
||||||
|
msgid "Sport and Leisure"
|
||||||
|
msgstr "Deporte y ocio"
|
||||||
|
|
||||||
|
#: settings/base.py:309
|
||||||
|
msgid "Travel"
|
||||||
|
msgstr "Viajes"
|
||||||
|
|
||||||
|
#: settings/base.py:310
|
||||||
|
msgid "Transports"
|
||||||
|
msgstr "Transporte"
|
||||||
|
|
||||||
|
#: settings/base.py:311
|
||||||
|
msgid "Tourism"
|
||||||
|
msgstr "Turismo"
|
||||||
|
|
||||||
#: templates/403.html:8
|
#: templates/403.html:8
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a href=\"https://discover.umap-project.org/support/faq/#map-statuses\" "
|
"<a href=\"https://discover.umap-project.org/support/faq/#map-statuses\" "
|
||||||
|
@ -427,7 +495,7 @@ msgstr "Mis equipos"
|
||||||
msgid "Map of the uMaps"
|
msgid "Map of the uMaps"
|
||||||
msgstr "Mapa de los uMaps"
|
msgstr "Mapa de los uMaps"
|
||||||
|
|
||||||
#: templates/umap/home.html:24
|
#: templates/umap/home.html:25
|
||||||
msgid "Get inspired, browse maps"
|
msgid "Get inspired, browse maps"
|
||||||
msgstr "Inspírate, navega por los mapas"
|
msgstr "Inspírate, navega por los mapas"
|
||||||
|
|
||||||
|
@ -435,11 +503,15 @@ msgstr "Inspírate, navega por los mapas"
|
||||||
msgid "You are logged in. Continuing..."
|
msgid "You are logged in. Continuing..."
|
||||||
msgstr "Has iniciado sesión. Continuando..."
|
msgstr "Has iniciado sesión. Continuando..."
|
||||||
|
|
||||||
#: templates/umap/map_list.html:11 views.py:437
|
#: templates/umap/map_list.html:18 views.py:444
|
||||||
msgid "by"
|
msgid "by"
|
||||||
msgstr "por"
|
msgstr "por"
|
||||||
|
|
||||||
#: templates/umap/map_list.html:20
|
#: templates/umap/map_list.html:22
|
||||||
|
msgid "See the map"
|
||||||
|
msgstr "Ver el mapa"
|
||||||
|
|
||||||
|
#: templates/umap/map_list.html:28
|
||||||
msgid "More"
|
msgid "More"
|
||||||
msgstr "Más"
|
msgstr "Más"
|
||||||
|
|
||||||
|
@ -599,11 +671,15 @@ msgstr[0] "%(count)s mapa encontrado:"
|
||||||
msgstr[1] "%(count)s mapas encontrados:"
|
msgstr[1] "%(count)s mapas encontrados:"
|
||||||
msgstr[2] "%(count)s mapas encontrados:"
|
msgstr[2] "%(count)s mapas encontrados:"
|
||||||
|
|
||||||
#: templates/umap/search.html:28
|
#: templates/umap/search.html:30
|
||||||
msgid "No map found."
|
msgid "No map found."
|
||||||
msgstr "No se ha encontrado ningún mapa."
|
msgstr "No se ha encontrado ningún mapa."
|
||||||
|
|
||||||
#: templates/umap/search.html:33
|
#: templates/umap/search.html:36
|
||||||
|
msgid "Latest created maps in category"
|
||||||
|
msgstr "Últimos mapas creados en la categoría"
|
||||||
|
|
||||||
|
#: templates/umap/search.html:43
|
||||||
msgid "Latest created maps"
|
msgid "Latest created maps"
|
||||||
msgstr "Últimos mapas creados"
|
msgstr "Últimos mapas creados"
|
||||||
|
|
||||||
|
@ -611,7 +687,11 @@ msgstr "Últimos mapas creados"
|
||||||
msgid "Search maps"
|
msgid "Search maps"
|
||||||
msgstr "Buscar mapas"
|
msgstr "Buscar mapas"
|
||||||
|
|
||||||
#: templates/umap/search_bar.html:16
|
#: templates/umap/search_bar.html:14
|
||||||
|
msgid "Any category"
|
||||||
|
msgstr "Cualquier categoría"
|
||||||
|
|
||||||
|
#: templates/umap/search_bar.html:19
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Buscar"
|
msgstr "Buscar"
|
||||||
|
|
||||||
|
@ -675,70 +755,70 @@ msgstr "Usuarios"
|
||||||
msgid "New team"
|
msgid "New team"
|
||||||
msgstr "Nuevo equipo"
|
msgstr "Nuevo equipo"
|
||||||
|
|
||||||
#: views.py:234
|
#: views.py:235
|
||||||
msgid "Cannot delete a team with more than one member"
|
msgid "Cannot delete a team with more than one member"
|
||||||
msgstr "No se puede eliminar un equipo con más de un miembro"
|
msgstr "No se puede eliminar un equipo con más de un miembro"
|
||||||
|
|
||||||
#: views.py:238
|
#: views.py:239
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Team “%(name)s” has been deleted"
|
msgid "Team “%(name)s” has been deleted"
|
||||||
msgstr "El equipo “%(name)s” ha sido eliminado"
|
msgstr "El equipo “%(name)s” ha sido eliminado"
|
||||||
|
|
||||||
#: views.py:442
|
#: views.py:449
|
||||||
msgid "View the map"
|
msgid "View the map"
|
||||||
msgstr "Ver el mapa"
|
msgstr "Ver el mapa"
|
||||||
|
|
||||||
#: views.py:838
|
#: views.py:845
|
||||||
msgid "See full screen"
|
msgid "See full screen"
|
||||||
msgstr "Ver en pantalla completa"
|
msgstr "Ver en pantalla completa"
|
||||||
|
|
||||||
#: views.py:981
|
#: views.py:988
|
||||||
msgid "Map editors updated with success!"
|
msgid "Map editors updated with success!"
|
||||||
msgstr "¡Los editores del mapas han sido actualizados con éxito!"
|
msgstr "¡Los editores del mapas han sido actualizados con éxito!"
|
||||||
|
|
||||||
#: views.py:1017
|
#: views.py:1024
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The uMap edit link for your map: %(map_name)s"
|
msgid "The uMap edit link for your map: %(map_name)s"
|
||||||
msgstr "El enlace de edición de uMap para tu mapa: %(map_name)s"
|
msgstr "El enlace de edición de uMap para tu mapa: %(map_name)s"
|
||||||
|
|
||||||
#: views.py:1020
|
#: views.py:1027
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Here is your secret edit link: %(link)s"
|
msgid "Here is your secret edit link: %(link)s"
|
||||||
msgstr "Aquí está tu enlace secreto de edición: %(link)s"
|
msgstr "Aquí está tu enlace secreto de edición: %(link)s"
|
||||||
|
|
||||||
#: views.py:1027
|
#: views.py:1034
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Can't send email to %(email)s"
|
msgid "Can't send email to %(email)s"
|
||||||
msgstr "No se puede enviar correo electrónico a %(email)s"
|
msgstr "No se puede enviar correo electrónico a %(email)s"
|
||||||
|
|
||||||
#: views.py:1030
|
#: views.py:1037
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Email sent to %(email)s"
|
msgid "Email sent to %(email)s"
|
||||||
msgstr "Correo electrónico enviado a %(email)s"
|
msgstr "Correo electrónico enviado a %(email)s"
|
||||||
|
|
||||||
#: views.py:1041
|
#: views.py:1048
|
||||||
msgid "Only its owner can delete the map."
|
msgid "Only its owner can delete the map."
|
||||||
msgstr "Sólo el propietario puede borrar el mapa."
|
msgstr "Sólo el propietario puede borrar el mapa."
|
||||||
|
|
||||||
#: views.py:1044
|
#: views.py:1054
|
||||||
msgid "Map successfully deleted."
|
msgid "Map successfully deleted."
|
||||||
msgstr "Mapa eliminado correctamente."
|
msgstr "Mapa eliminado correctamente."
|
||||||
|
|
||||||
#: views.py:1070
|
#: views.py:1080
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your map has been cloned! If you want to edit this map from another "
|
"Your map has been cloned! If you want to edit this map from another "
|
||||||
"computer, please use this link: %(anonymous_url)s"
|
"computer, please use this link: %(anonymous_url)s"
|
||||||
msgstr "¡Tu mapa ha sido clonado! Si quieres editar este mapa desde otro ordenador, usa este enlace: %(anonymous_url)s"
|
msgstr "¡Tu mapa ha sido clonado! Si quieres editar este mapa desde otro ordenador, usa este enlace: %(anonymous_url)s"
|
||||||
|
|
||||||
#: views.py:1075
|
#: views.py:1085
|
||||||
msgid "Congratulations, your map has been cloned!"
|
msgid "Congratulations, your map has been cloned!"
|
||||||
msgstr "¡Enhorabuena! ¡Tu mapa ha sido clonado!"
|
msgstr "¡Enhorabuena! ¡Tu mapa ha sido clonado!"
|
||||||
|
|
||||||
#: views.py:1329
|
#: views.py:1339
|
||||||
msgid "Layer successfully deleted."
|
msgid "Layer successfully deleted."
|
||||||
msgstr "Se eliminó la capa con éxito."
|
msgstr "Se eliminó la capa con éxito."
|
||||||
|
|
||||||
#: views.py:1351
|
#: views.py:1361
|
||||||
msgid "Permissions updated with success!"
|
msgid "Permissions updated with success!"
|
||||||
msgstr "¡Permisos actualizados con éxito!"
|
msgstr "¡Permisos actualizados con éxito!"
|
||||||
|
|
Binary file not shown.
|
@ -670,7 +670,7 @@ msgstr "Geen kaart gevonden."
|
||||||
|
|
||||||
#: templates/umap/search.html:36
|
#: templates/umap/search.html:36
|
||||||
msgid "Latest created maps in category"
|
msgid "Latest created maps in category"
|
||||||
msgstr ""
|
msgstr "Laatst gemaakte kaarten in categorie"
|
||||||
|
|
||||||
#: templates/umap/search.html:43
|
#: templates/umap/search.html:43
|
||||||
msgid "Latest created maps"
|
msgid "Latest created maps"
|
||||||
|
|
|
@ -551,6 +551,7 @@ class DataLayer(NamedModel):
|
||||||
if self.old_id:
|
if self.old_id:
|
||||||
metadata["old_id"] = self.old_id
|
metadata["old_id"] = self.old_id
|
||||||
metadata["id"] = self.pk
|
metadata["id"] = self.pk
|
||||||
|
metadata["rank"] = self.rank
|
||||||
metadata["permissions"] = {"edit_status": self.edit_status}
|
metadata["permissions"] = {"edit_status": self.edit_status}
|
||||||
metadata["editMode"] = "advanced" if self.can_edit(request) else "disabled"
|
metadata["editMode"] = "advanced" if self.can_edit(request) else "disabled"
|
||||||
metadata["_referenceVersion"] = self.reference_version
|
metadata["_referenceVersion"] = self.reference_version
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.umap-main-edit-toolbox [type=button] {
|
.umap-main-edit-toolbox [type=button] {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 1em;
|
font-size: 0.8rem;
|
||||||
background-color: var(--color-darkGray);
|
background-color: var(--color-darkGray);
|
||||||
width: auto;
|
width: auto;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
|
@ -59,3 +59,16 @@
|
||||||
.tooltip-accent li:last-of-type {
|
.tooltip-accent li:last-of-type {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.umap-tooltip-container.tooltip-right:before {
|
||||||
|
right: 100%;
|
||||||
|
top: calc(50% - var(--arrow-size));
|
||||||
|
border: solid transparent;
|
||||||
|
content: " ";
|
||||||
|
height: 0;
|
||||||
|
width: 0;
|
||||||
|
position: absolute;
|
||||||
|
pointer-events: none;
|
||||||
|
border-right-color: var(--tooltip-color);
|
||||||
|
border-width: var(--arrow-size);
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
import { translate } from './i18n.js'
|
import { translate } from './i18n.js'
|
||||||
import { Request, ServerRequest } from './request.js'
|
import { Request, ServerRequest } from './request.js'
|
||||||
import { escapeHTML, generateId } from './utils.js'
|
import { escapeHTML, generateId } from './utils.js'
|
||||||
|
import * as Utils from './utils.js'
|
||||||
|
|
||||||
export class BaseAutocomplete {
|
export class BaseAutocomplete {
|
||||||
constructor(parent, options) {
|
constructor(parent, options) {
|
||||||
|
@ -291,10 +292,9 @@ class BaseServerAjax extends BaseAjax {
|
||||||
export const SingleMixin = (Base) =>
|
export const SingleMixin = (Base) =>
|
||||||
class extends Base {
|
class extends Base {
|
||||||
initSelectedContainer() {
|
initSelectedContainer() {
|
||||||
return DomUtil.after(
|
const el = Utils.loadTemplate('<div class="umap-singleresult"></div>')
|
||||||
this.input,
|
this.input.parentNode.insertBefore(el, this.input.nextSibling)
|
||||||
DomUtil.element({ tagName: 'div', className: 'umap-singleresult' })
|
return el
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
displaySelected(result) {
|
displaySelected(result) {
|
||||||
|
@ -322,10 +322,9 @@ export const SingleMixin = (Base) =>
|
||||||
export const MultipleMixin = (Base) =>
|
export const MultipleMixin = (Base) =>
|
||||||
class extends Base {
|
class extends Base {
|
||||||
initSelectedContainer() {
|
initSelectedContainer() {
|
||||||
return DomUtil.after(
|
const el = Utils.loadTemplate('<ul class="umap-multiresult"></ul>')
|
||||||
this.input,
|
this.input.parentNode.insertBefore(el, this.input.nextSibling)
|
||||||
DomUtil.element({ tagName: 'ul', className: 'umap-multiresult' })
|
return el
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
displaySelected(result) {
|
displaySelected(result) {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { translate } from './i18n.js'
|
||||||
import * as Icon from './rendering/icon.js'
|
import * as Icon from './rendering/icon.js'
|
||||||
import ContextMenu from './ui/contextmenu.js'
|
import ContextMenu from './ui/contextmenu.js'
|
||||||
import * as Utils from './utils.js'
|
import * as Utils from './utils.js'
|
||||||
|
import { SCHEMA } from './schema.js'
|
||||||
|
|
||||||
export default class Browser {
|
export default class Browser {
|
||||||
constructor(umap, leafletMap) {
|
constructor(umap, leafletMap) {
|
||||||
|
@ -21,35 +22,24 @@ export default class Browser {
|
||||||
addFeature(feature, parent) {
|
addFeature(feature, parent) {
|
||||||
if (feature.isFiltered()) return
|
if (feature.isFiltered()) return
|
||||||
if (this.options.inBbox && !feature.isOnScreen(this.bounds)) return
|
if (this.options.inBbox && !feature.isOnScreen(this.bounds)) return
|
||||||
const row = DomUtil.create('li', `${feature.getClassName()} feature`)
|
const template = `
|
||||||
const zoom_to = DomUtil.createButtonIcon(
|
<li class="feature ${feature.getClassName()}">
|
||||||
row,
|
<button class="icon icon-16 icon-zoom" title="${translate('Bring feature to center')}" data-ref=zoom></button>
|
||||||
'icon-zoom',
|
<button class="icon icon-16 show-on-edit icon-edit" title="${translate('Edit this feature')}" data-ref=edit></button>
|
||||||
translate('Bring feature to center')
|
<button class="icon icon-16 show-on-edit icon-delete" title="${translate('Delete this feature')}" data-ref=remove></button>
|
||||||
)
|
<i class="icon icon-16 icon-${feature.getClassName()} feature-color" data-ref=colorBox></i>
|
||||||
const edit = DomUtil.createButtonIcon(
|
<span class="feature-title" data-ref=label></span>
|
||||||
row,
|
</li>
|
||||||
'show-on-edit icon-edit',
|
`
|
||||||
translate('Edit this feature')
|
const [row, { zoom, edit, remove, colorBox, label }] =
|
||||||
)
|
Utils.loadTemplateWithRefs(template)
|
||||||
const del = DomUtil.createButtonIcon(
|
label.textContent = label.title = feature.getDisplayName() || '—'
|
||||||
row,
|
|
||||||
'show-on-edit icon-delete',
|
|
||||||
translate('Delete this feature')
|
|
||||||
)
|
|
||||||
const colorBox = DomUtil.create(
|
|
||||||
'i',
|
|
||||||
`icon icon-16 icon-${feature.getClassName()} feature-color`,
|
|
||||||
row
|
|
||||||
)
|
|
||||||
const title = DomUtil.create('span', 'feature-title', row)
|
|
||||||
const symbol = feature._getIconUrl
|
const symbol = feature._getIconUrl
|
||||||
? Icon.formatUrl(feature._getIconUrl(), feature)
|
? Icon.formatUrl(feature._getIconUrl(), feature)
|
||||||
: null
|
: null
|
||||||
title.textContent = title.title = feature.getDisplayName() || '—'
|
|
||||||
const bgcolor = feature.getPreviewColor()
|
const bgcolor = feature.getPreviewColor()
|
||||||
colorBox.style.backgroundColor = bgcolor
|
colorBox.style.backgroundColor = bgcolor
|
||||||
if (symbol && symbol !== U.SCHEMA.iconUrl.default) {
|
if (symbol && symbol !== SCHEMA.iconUrl.default) {
|
||||||
const icon = Icon.makeElement(symbol, colorBox)
|
const icon = Icon.makeElement(symbol, colorBox)
|
||||||
Icon.setContrast(icon, colorBox, symbol, bgcolor)
|
Icon.setContrast(icon, colorBox, symbol, bgcolor)
|
||||||
} else if (DomUtil.contrastedColor(colorBox, bgcolor)) {
|
} else if (DomUtil.contrastedColor(colorBox, bgcolor)) {
|
||||||
|
@ -58,10 +48,10 @@ export default class Browser {
|
||||||
const viewFeature = (e) => {
|
const viewFeature = (e) => {
|
||||||
feature.zoomTo({ ...e, callback: () => feature.view() })
|
feature.zoomTo({ ...e, callback: () => feature.view() })
|
||||||
}
|
}
|
||||||
DomEvent.on(zoom_to, 'click', viewFeature)
|
zoom.addEventListener('click', viewFeature)
|
||||||
DomEvent.on(title, 'click', viewFeature)
|
label.addEventListener('click', viewFeature)
|
||||||
DomEvent.on(edit, 'click', feature.edit, feature)
|
edit.addEventListener('click', () => feature.edit())
|
||||||
DomEvent.on(del, 'click', feature.del, feature)
|
remove.addEventListener('click', () => feature.del())
|
||||||
// HOTFIX. Remove when this is released:
|
// HOTFIX. Remove when this is released:
|
||||||
// https://github.com/Leaflet/Leaflet/pull/9052
|
// https://github.com/Leaflet/Leaflet/pull/9052
|
||||||
DomEvent.disableClickPropagation(row)
|
DomEvent.disableClickPropagation(row)
|
||||||
|
@ -73,51 +63,51 @@ export default class Browser {
|
||||||
}
|
}
|
||||||
|
|
||||||
addDataLayer(datalayer, parent) {
|
addDataLayer(datalayer, parent) {
|
||||||
let className = `datalayer ${datalayer.getHidableClass()}`
|
const open = this.mode !== 'layers' ? ' open' : ''
|
||||||
if (this.mode !== 'layers') className += ' show-list'
|
const [container, { headline, toolbox, label }] = Utils.loadTemplateWithRefs(`
|
||||||
const container = DomUtil.create('div', className, parent)
|
<details class="datalayer ${datalayer.getHidableClass()}" id="${this.datalayerId(datalayer)}"${open}>
|
||||||
const headline = DomUtil.create('h5', '', container)
|
<summary data-ref=headline>
|
||||||
container.id = this.datalayerId(datalayer)
|
<span data-ref=toolbox></span>
|
||||||
const ul = DomUtil.create('ul', '', container)
|
<span class="datalayer-name" data-id="${datalayer.id}" data-ref=label></span>
|
||||||
|
<span class="datalayer-counter"></span>
|
||||||
|
</summary>
|
||||||
|
<ul></ul>
|
||||||
|
</details>
|
||||||
|
`)
|
||||||
|
datalayer.renderToolbox(toolbox)
|
||||||
|
parent.appendChild(container)
|
||||||
this.updateDatalayer(datalayer)
|
this.updateDatalayer(datalayer)
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDatalayer(datalayer) {
|
updateDatalayer(datalayer) {
|
||||||
// Compute once, but use it for each feature later.
|
// Compute once, but use it for each feature later.
|
||||||
this.bounds = this._leafletMap.getBounds()
|
this.bounds = this._leafletMap.getBounds()
|
||||||
const parent = DomUtil.get(this.datalayerId(datalayer))
|
const id = this.datalayerId(datalayer)
|
||||||
|
const parent = document.getElementById(id)
|
||||||
// Panel is not open
|
// Panel is not open
|
||||||
if (!parent) return
|
if (!parent) return
|
||||||
parent.classList.toggle('off', !datalayer.isVisible())
|
parent.classList.toggle('off', !datalayer.isVisible())
|
||||||
|
const label = parent.querySelector('.datalayer-name')
|
||||||
const container = parent.querySelector('ul')
|
const container = parent.querySelector('ul')
|
||||||
const headline = parent.querySelector('h5')
|
|
||||||
const toggleList = () => parent.classList.toggle('show-list')
|
|
||||||
headline.innerHTML = ''
|
|
||||||
const toggle = DomUtil.create('i', 'icon icon-16 datalayer-toggle-list', headline)
|
|
||||||
DomEvent.on(toggle, 'click', toggleList)
|
|
||||||
datalayer.renderToolbox(headline)
|
|
||||||
const name = DomUtil.create('span', 'datalayer-name', headline)
|
|
||||||
name.textContent = name.title = datalayer.options.name
|
|
||||||
DomEvent.on(name, 'click', toggleList)
|
|
||||||
container.innerHTML = ''
|
container.innerHTML = ''
|
||||||
datalayer.eachFeature((feature) => this.addFeature(feature, container))
|
datalayer.eachFeature((feature) => this.addFeature(feature, container))
|
||||||
|
datalayer.propagate(['properties.name'])
|
||||||
const total = datalayer.count()
|
const total = datalayer.count()
|
||||||
if (!total) return
|
if (!total) return
|
||||||
const current = container.querySelectorAll('li').length
|
const current = container.querySelectorAll('li').length
|
||||||
const count = total === current ? total : `${current}/${total}`
|
const count = total === current ? total : `${current}/${total}`
|
||||||
const counter = DomUtil.create('span', 'datalayer-counter', headline)
|
const counter = parent.querySelector('.datalayer-counter')
|
||||||
counter.textContent = `(${count})`
|
counter.textContent = `(${count})`
|
||||||
counter.title = translate(`Features in this layer: ${count}`)
|
counter.title = translate(`Features in this layer: ${count}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleBadge() {
|
toggleBadge() {
|
||||||
U.Utils.toggleBadge(this.filtersTitle, this.hasFilters())
|
Utils.toggleBadge(this.filtersTitle, this.hasFilters())
|
||||||
U.Utils.toggleBadge('.umap-control-browse', this.hasFilters())
|
Utils.toggleBadge('.umap-control-browse', this.hasFilters())
|
||||||
}
|
}
|
||||||
|
|
||||||
onFormChange() {
|
onFormChange() {
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
datalayer.resetLayer(true)
|
datalayer.resetLayer(true)
|
||||||
this.updateDatalayer(datalayer)
|
this.updateDatalayer(datalayer)
|
||||||
if (this._umap.fullPanel?.isOpen()) datalayer.tableEdit()
|
if (this._umap.fullPanel?.isOpen()) datalayer.tableEdit()
|
||||||
|
@ -140,7 +130,7 @@ export default class Browser {
|
||||||
onMoveEnd() {
|
onMoveEnd() {
|
||||||
if (!this.isOpen()) return
|
if (!this.isOpen()) return
|
||||||
const isListDynamic = this.options.inBbox
|
const isListDynamic = this.options.inBbox
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
if (!isListDynamic && !datalayer.hasDynamicData()) return
|
if (!isListDynamic && !datalayer.hasDynamicData()) return
|
||||||
this.updateDatalayer(datalayer)
|
this.updateDatalayer(datalayer)
|
||||||
})
|
})
|
||||||
|
@ -149,7 +139,7 @@ export default class Browser {
|
||||||
update() {
|
update() {
|
||||||
if (!this.isOpen()) return
|
if (!this.isOpen()) return
|
||||||
this.dataContainer.innerHTML = ''
|
this.dataContainer.innerHTML = ''
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
this.addDataLayer(datalayer, this.dataContainer)
|
this.addDataLayer(datalayer, this.dataContainer)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -157,21 +147,51 @@ export default class Browser {
|
||||||
open(mode) {
|
open(mode) {
|
||||||
// Force only if mode is known, otherwise keep current mode.
|
// Force only if mode is known, otherwise keep current mode.
|
||||||
if (mode) this.mode = mode
|
if (mode) this.mode = mode
|
||||||
const container = DomUtil.create('div')
|
const template = `
|
||||||
|
<div>
|
||||||
|
<h3><i class="icon icon-16 icon-layers"></i>${translate('Data browser')}</h3>
|
||||||
|
<details class="filters" data-ref="details">
|
||||||
|
<summary data-ref=filtersTitle><i class="icon icon-16 icon-filters"></i>${translate('Filters')}</summary>
|
||||||
|
<fieldset>
|
||||||
|
<div data-ref=formContainer>
|
||||||
|
</div>
|
||||||
|
<button class="flat" type="button" data-ref=reset><i class="icon icon-16 icon-restore" title=""></i>${translate('Reset all')}</button>
|
||||||
|
</fieldset>
|
||||||
|
</details>
|
||||||
|
<div class="main-toolbox">
|
||||||
|
<i class="icon icon-16 icon-eye" title="${translate('show/hide all layers')}" data-ref="toggle"></i>
|
||||||
|
<i class="icon icon-16 icon-zoom" title="${translate('zoom to data extent')}" data-ref="fitBounds"></i>
|
||||||
|
<i class="icon icon-16 icon-download" title="${translate('download visible data')}" data-ref="download"></i>
|
||||||
|
</div>
|
||||||
|
<div data-ref=dataContainer></div>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [
|
||||||
|
container,
|
||||||
|
{
|
||||||
|
details,
|
||||||
|
filtersTitle,
|
||||||
|
toggle,
|
||||||
|
fitBounds,
|
||||||
|
download,
|
||||||
|
dataContainer,
|
||||||
|
formContainer,
|
||||||
|
reset,
|
||||||
|
},
|
||||||
|
] = Utils.loadTemplateWithRefs(template)
|
||||||
// HOTFIX. Remove when this is released:
|
// HOTFIX. Remove when this is released:
|
||||||
// https://github.com/Leaflet/Leaflet/pull/9052
|
// https://github.com/Leaflet/Leaflet/pull/9052
|
||||||
DomEvent.disableClickPropagation(container)
|
DomEvent.disableClickPropagation(container)
|
||||||
|
details.open = this.mode === 'filters'
|
||||||
|
toggle.addEventListener('click', () => this.toggleLayers())
|
||||||
|
fitBounds.addEventListener('click', () => this._umap.fitDataBounds())
|
||||||
|
download.addEventListener('click', () => this.downloadVisible(download))
|
||||||
|
download.hidden = this._umap.getProperty('embedControl') === false
|
||||||
|
|
||||||
DomUtil.createTitle(container, translate('Data browser'), 'icon-layers')
|
this.filtersTitle = filtersTitle
|
||||||
this.formContainer = DomUtil.createFieldset(container, L._('Filters'), {
|
this.dataContainer = dataContainer
|
||||||
on: this.mode === 'filters',
|
this.formContainer = formContainer
|
||||||
className: 'filters',
|
|
||||||
icon: 'icon-filters',
|
|
||||||
})
|
|
||||||
this.filtersTitle = container.querySelector('summary')
|
|
||||||
this.toggleBadge()
|
this.toggleBadge()
|
||||||
this.addMainToolbox(container)
|
|
||||||
this.dataContainer = DomUtil.create('div', '', container)
|
|
||||||
|
|
||||||
let fields = [
|
let fields = [
|
||||||
[
|
[
|
||||||
|
@ -184,27 +204,19 @@ export default class Browser {
|
||||||
builder.on('set', () => this.onFormChange())
|
builder.on('set', () => this.onFormChange())
|
||||||
let filtersBuilder
|
let filtersBuilder
|
||||||
this.formContainer.appendChild(builder.build())
|
this.formContainer.appendChild(builder.build())
|
||||||
DomEvent.on(builder.form, 'reset', () => {
|
builder.form.addEventListener('reset', () => {
|
||||||
window.setTimeout(builder.syncAll.bind(builder))
|
window.setTimeout(builder.syncAll.bind(builder))
|
||||||
})
|
})
|
||||||
if (this._umap.properties.facetKey) {
|
if (this._umap.properties.facetKey) {
|
||||||
fields = this._umap.facets.build()
|
fields = this._umap.facets.build()
|
||||||
filtersBuilder = new Form(this._umap.facets, fields)
|
filtersBuilder = new Form(this._umap.facets, fields)
|
||||||
filtersBuilder.on('set', () => this.onFormChange())
|
filtersBuilder.on('set', () => this.onFormChange())
|
||||||
DomEvent.on(filtersBuilder.form, 'reset', () => {
|
filtersBuilder.form.addEventListener('reset', () => {
|
||||||
window.setTimeout(filtersBuilder.syncAll.bind(filtersBuilder))
|
window.setTimeout(filtersBuilder.syncAll.bind(filtersBuilder))
|
||||||
})
|
})
|
||||||
this.formContainer.appendChild(filtersBuilder.build())
|
this.formContainer.appendChild(filtersBuilder.build())
|
||||||
}
|
}
|
||||||
const reset = DomUtil.createButton('flat', this.formContainer, '', () =>
|
reset.addEventListener('click', () => this.resetFilters())
|
||||||
this.resetFilters()
|
|
||||||
)
|
|
||||||
DomUtil.createIcon(reset, 'icon-restore')
|
|
||||||
DomUtil.element({
|
|
||||||
tagName: 'span',
|
|
||||||
parent: reset,
|
|
||||||
textContent: translate('Reset all'),
|
|
||||||
})
|
|
||||||
|
|
||||||
this._umap.panel.open({
|
this._umap.panel.open({
|
||||||
content: container,
|
content: container,
|
||||||
|
@ -220,21 +232,6 @@ export default class Browser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addMainToolbox(container) {
|
|
||||||
const [toolbox, { toggle, fitBounds, download }] = Utils.loadTemplateWithRefs(`
|
|
||||||
<div class="main-toolbox">
|
|
||||||
<i class="icon icon-16 icon-eye" title="${translate('show/hide all layers')}" data-ref="toggle"></i>
|
|
||||||
<i class="icon icon-16 icon-zoom" title="${translate('zoom to data extent')}" data-ref="fitBounds"></i>
|
|
||||||
<i class="icon icon-16 icon-download" title="${translate('download visible data')}" data-ref="download"></i>
|
|
||||||
</div>
|
|
||||||
`)
|
|
||||||
container.appendChild(toolbox)
|
|
||||||
toggle.addEventListener('click', () => this.toggleLayers())
|
|
||||||
fitBounds.addEventListener('click', () => this._umap.fitDataBounds())
|
|
||||||
download.addEventListener('click', () => this.downloadVisible(download))
|
|
||||||
download.hidden = this._umap.getProperty('embedControl') === false
|
|
||||||
}
|
|
||||||
|
|
||||||
downloadVisible(element) {
|
downloadVisible(element) {
|
||||||
const menu = new ContextMenu({ fixed: true })
|
const menu = new ContextMenu({ fixed: true })
|
||||||
const items = []
|
const items = []
|
||||||
|
@ -251,10 +248,10 @@ export default class Browser {
|
||||||
// If at least one layer is shown, hide it
|
// If at least one layer is shown, hide it
|
||||||
// otherwise show all
|
// otherwise show all
|
||||||
let allHidden = true
|
let allHidden = true
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
if (datalayer.isVisible()) allHidden = false
|
if (datalayer.isVisible()) allHidden = false
|
||||||
})
|
})
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
datalayer._forcedVisibility = true
|
datalayer._forcedVisibility = true
|
||||||
if (allHidden) {
|
if (allHidden) {
|
||||||
datalayer.show()
|
datalayer.show()
|
||||||
|
@ -265,15 +262,13 @@ export default class Browser {
|
||||||
}
|
}
|
||||||
|
|
||||||
static backButton(umap) {
|
static backButton(umap) {
|
||||||
const button = DomUtil.createButtonIcon(
|
const button = Utils.loadTemplate(
|
||||||
DomUtil.create('li', '', undefined),
|
`<button class="icon icon-16 icon-back" title="${translate('Back to browser')}"></button>`
|
||||||
'icon-back',
|
|
||||||
translate('Back to browser')
|
|
||||||
)
|
)
|
||||||
// Fixme: remove me when this is merged and released
|
// Fixme: remove me when this is merged and released
|
||||||
// https://github.com/Leaflet/Leaflet/pull/9052
|
// https://github.com/Leaflet/Leaflet/pull/9052
|
||||||
DomEvent.disableClickPropagation(button)
|
DomEvent.disableClickPropagation(button)
|
||||||
DomEvent.on(button, 'click', () => umap.openBrowser())
|
button.addEventListener('click', () => umap.openBrowser())
|
||||||
return button
|
return button
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,9 +68,11 @@ export default class Caption extends Utils.WithTemplate {
|
||||||
this.elements.description.hidden = true
|
this.elements.description.hidden = true
|
||||||
}
|
}
|
||||||
this.elements.datalayersContainer.innerHTML = ''
|
this.elements.datalayersContainer.innerHTML = ''
|
||||||
this._umap.eachDataLayerReverse((datalayer) =>
|
this._umap.datalayers
|
||||||
this.addDataLayer(datalayer, this.elements.datalayersContainer)
|
.reverse()
|
||||||
)
|
.map((datalayer) =>
|
||||||
|
this.addDataLayer(datalayer, this.elements.datalayersContainer)
|
||||||
|
)
|
||||||
this.addCredits()
|
this.addCredits()
|
||||||
if (this._umap.properties.created_at) {
|
if (this._umap.properties.created_at) {
|
||||||
const created_at = translate('created at {date}', {
|
const created_at = translate('created at {date}', {
|
||||||
|
@ -85,7 +87,7 @@ export default class Caption extends Utils.WithTemplate {
|
||||||
}
|
}
|
||||||
this._umap.panel.open({ content: this.element }).then(() => {
|
this._umap.panel.open({ content: this.element }).then(() => {
|
||||||
// Create the legend when the panel is actually on the DOM
|
// Create the legend when the panel is actually on the DOM
|
||||||
this._umap.eachDataLayerReverse((datalayer) => datalayer.renderLegend())
|
this._umap.datalayers.reverse().map((datalayer) => datalayer.renderLegend())
|
||||||
this._umap.propagate()
|
this._umap.propagate()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ class Feature {
|
||||||
constructor(umap, datalayer, geojson = {}, id = null) {
|
constructor(umap, datalayer, geojson = {}, id = null) {
|
||||||
this._umap = umap
|
this._umap = umap
|
||||||
this.sync = umap.syncEngine.proxy(this)
|
this.sync = umap.syncEngine.proxy(this)
|
||||||
this._isDirty = false
|
|
||||||
this._ui = null
|
this._ui = null
|
||||||
|
|
||||||
// DataLayer the feature belongs to
|
// DataLayer the feature belongs to
|
||||||
|
@ -54,17 +53,6 @@ class Feature {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set isDirty(status) {
|
|
||||||
this._isDirty = status
|
|
||||||
if (this.datalayer) {
|
|
||||||
this.datalayer.isDirty = status
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
get isDirty() {
|
|
||||||
return this._isDirty
|
|
||||||
}
|
|
||||||
|
|
||||||
get ui() {
|
get ui() {
|
||||||
if (!this._ui) this.makeUI()
|
if (!this._ui) this.makeUI()
|
||||||
return this._ui
|
return this._ui
|
||||||
|
@ -367,7 +355,6 @@ class Feature {
|
||||||
}
|
}
|
||||||
|
|
||||||
del(sync) {
|
del(sync) {
|
||||||
this.isDirty = true
|
|
||||||
this._umap._leafletMap.closePopup()
|
this._umap._leafletMap.closePopup()
|
||||||
if (this.datalayer) {
|
if (this.datalayer) {
|
||||||
this.datalayer.removeFeature(this, sync)
|
this.datalayer.removeFeature(this, sync)
|
||||||
|
@ -412,13 +399,11 @@ class Feature {
|
||||||
|
|
||||||
changeDataLayer(datalayer) {
|
changeDataLayer(datalayer) {
|
||||||
if (this.datalayer) {
|
if (this.datalayer) {
|
||||||
this.datalayer.isDirty = true
|
|
||||||
this.datalayer.removeFeature(this)
|
this.datalayer.removeFeature(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
datalayer.addFeature(this)
|
datalayer.addFeature(this)
|
||||||
this.sync.upsert(this.toGeoJSON())
|
this.sync.upsert(this.toGeoJSON())
|
||||||
datalayer.isDirty = true
|
|
||||||
this.redraw()
|
this.redraw()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,7 +470,6 @@ class Feature {
|
||||||
|
|
||||||
deleteProperty(property) {
|
deleteProperty(property) {
|
||||||
delete this.properties[property]
|
delete this.properties[property]
|
||||||
this.isDirty = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
renameProperty(from, to) {
|
renameProperty(from, to) {
|
||||||
|
@ -578,7 +562,6 @@ class Feature {
|
||||||
delete geojson.id
|
delete geojson.id
|
||||||
delete geojson.properties.id
|
delete geojson.properties.id
|
||||||
const feature = this.datalayer.makeFeature(geojson)
|
const feature = this.datalayer.makeFeature(geojson)
|
||||||
feature.isDirty = true
|
|
||||||
feature.edit()
|
feature.edit()
|
||||||
return feature
|
return feature
|
||||||
}
|
}
|
||||||
|
@ -614,7 +597,7 @@ class Feature {
|
||||||
this.datalayer.hideFeature(this)
|
this.datalayer.hideFeature(this)
|
||||||
this.makeUI()
|
this.makeUI()
|
||||||
this.datalayer.showFeature(this)
|
this.datalayer.showFeature(this)
|
||||||
} else {
|
} else if (this.datalayer?.isBrowsable()) {
|
||||||
this.ui._redraw()
|
this.ui._redraw()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1053,7 +1036,6 @@ export class LineString extends Path {
|
||||||
this.pullGeometry()
|
this.pullGeometry()
|
||||||
if (!this.ui.editEnabled()) this.edit()
|
if (!this.ui.editEnabled()) this.edit()
|
||||||
this.ui.editor.reset()
|
this.ui.editor.reset()
|
||||||
this.isDirty = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
isMulti() {
|
isMulti() {
|
||||||
|
|
|
@ -64,6 +64,9 @@ export class DataLayer {
|
||||||
|
|
||||||
this.setOptions(data)
|
this.setOptions(data)
|
||||||
this.pane.dataset.id = this.id
|
this.pane.dataset.id = this.id
|
||||||
|
if (this.options.rank === undefined) {
|
||||||
|
this.options.rank = this._umap.datalayers.count()
|
||||||
|
}
|
||||||
|
|
||||||
if (!Utils.isObject(this.options.remoteData)) {
|
if (!Utils.isObject(this.options.remoteData)) {
|
||||||
this.options.remoteData = {}
|
this.options.remoteData = {}
|
||||||
|
@ -122,6 +125,20 @@ export class DataLayer {
|
||||||
return `datalayer-${stamp(this)}`
|
return `datalayer-${stamp(this)}`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get rank() {
|
||||||
|
// Make sure we always have a valid rank. Undefined rank may happen
|
||||||
|
// after importing an old umap backup, and not touching the layers
|
||||||
|
// after that.
|
||||||
|
if (this.options.rank === undefined) {
|
||||||
|
this.options.rank = this.getDOMOrder()
|
||||||
|
}
|
||||||
|
return this.options.rank
|
||||||
|
}
|
||||||
|
|
||||||
|
set rank(value) {
|
||||||
|
this.options.rank = value
|
||||||
|
}
|
||||||
|
|
||||||
getSyncMetadata() {
|
getSyncMetadata() {
|
||||||
return {
|
return {
|
||||||
subject: 'datalayer',
|
subject: 'datalayer',
|
||||||
|
@ -130,6 +147,10 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
render(fields, builder) {
|
render(fields, builder) {
|
||||||
|
// Propagate will remove the fields it has already
|
||||||
|
// processed
|
||||||
|
fields = this.propagate(fields)
|
||||||
|
|
||||||
const impacts = Utils.getImpactsFromSchema(fields)
|
const impacts = Utils.getImpactsFromSchema(fields)
|
||||||
|
|
||||||
for (const impact of impacts) {
|
for (const impact of impacts) {
|
||||||
|
@ -149,10 +170,36 @@ export class DataLayer {
|
||||||
case 'remote-data':
|
case 'remote-data':
|
||||||
this.fetchRemoteData()
|
this.fetchRemoteData()
|
||||||
break
|
break
|
||||||
|
case 'datalayer-rank':
|
||||||
|
this._umap.reorderDataLayers()
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method does a targeted update of the UI,
|
||||||
|
// it whould be merged with `render`` method and the
|
||||||
|
// SCHEMA at some point
|
||||||
|
propagate(fields = []) {
|
||||||
|
const impacts = {
|
||||||
|
'properties.name': () => {
|
||||||
|
Utils.eachElement('.datalayer-name', (el) => {
|
||||||
|
if (el.dataset.id === this.id) {
|
||||||
|
el.textContent = this.getName()
|
||||||
|
el.title = this.getName()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for (const [field, impact] of Object.entries(impacts)) {
|
||||||
|
if (!fields.length || fields.includes(field)) {
|
||||||
|
impact()
|
||||||
|
fields = fields.filter((item) => item !== field)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fields
|
||||||
|
}
|
||||||
|
|
||||||
showAtLoad() {
|
showAtLoad() {
|
||||||
return this.autoLoaded() && this.showAtZoom()
|
return this.autoLoaded() && this.showAtZoom()
|
||||||
}
|
}
|
||||||
|
@ -222,16 +269,9 @@ export class DataLayer {
|
||||||
if (!error) {
|
if (!error) {
|
||||||
this._umap.modifiedAt = response.headers.get('last-modified')
|
this._umap.modifiedAt = response.headers.get('last-modified')
|
||||||
this.setReferenceVersion({ response, sync: false })
|
this.setReferenceVersion({ response, sync: false })
|
||||||
// FIXME: for now the _umap_options property is set dynamically from backend
|
delete geojson._umap_options
|
||||||
// And thus it's not in the geojson file in the server
|
|
||||||
// So do not let all options to be reset
|
|
||||||
// Fix is a proper migration so all datalayers settings are
|
|
||||||
// in DB, and we remove it from geojson flat files.
|
|
||||||
if (geojson._umap_options) {
|
|
||||||
geojson._umap_options.editMode = this.options.editMode
|
|
||||||
}
|
|
||||||
// In case of maps pre 1.0 still around
|
// In case of maps pre 1.0 still around
|
||||||
if (geojson._storage) geojson._storage.editMode = this.options.editMode
|
delete geojson._storage
|
||||||
await this.fromUmapGeoJSON(geojson)
|
await this.fromUmapGeoJSON(geojson)
|
||||||
this.backupOptions()
|
this.backupOptions()
|
||||||
this._loading = false
|
this._loading = false
|
||||||
|
@ -260,7 +300,6 @@ export class DataLayer {
|
||||||
|
|
||||||
async fromUmapGeoJSON(geojson) {
|
async fromUmapGeoJSON(geojson) {
|
||||||
if (geojson._storage) geojson._umap_options = geojson._storage // Retrocompat
|
if (geojson._storage) geojson._umap_options = geojson._storage // Retrocompat
|
||||||
geojson._umap_options.id = this.id
|
|
||||||
if (geojson._umap_options) this.setOptions(geojson._umap_options)
|
if (geojson._umap_options) this.setOptions(geojson._umap_options)
|
||||||
if (this.isRemoteLayer()) {
|
if (this.isRemoteLayer()) {
|
||||||
await this.fetchRemoteData()
|
await this.fetchRemoteData()
|
||||||
|
@ -269,15 +308,6 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clear() {
|
|
||||||
this.sync.startBatch()
|
|
||||||
for (const feature of Object.values(this._features)) {
|
|
||||||
feature.del()
|
|
||||||
}
|
|
||||||
this.sync.commitBatch()
|
|
||||||
this.dataChanged()
|
|
||||||
}
|
|
||||||
|
|
||||||
backupData() {
|
backupData() {
|
||||||
if (this._geojson) {
|
if (this._geojson) {
|
||||||
this._geojson_bk = Utils.CopyJSON(this._geojson)
|
this._geojson_bk = Utils.CopyJSON(this._geojson)
|
||||||
|
@ -328,7 +358,7 @@ export class DataLayer {
|
||||||
url = this._umap.proxyUrl(url, this.options.remoteData.ttl)
|
url = this._umap.proxyUrl(url, this.options.remoteData.ttl)
|
||||||
}
|
}
|
||||||
return await this.getUrl(url, remoteUrl).then((raw) => {
|
return await this.getUrl(url, remoteUrl).then((raw) => {
|
||||||
this.clear()
|
this.clear(false)
|
||||||
return this._umap.formatter
|
return this._umap.formatter
|
||||||
.parse(raw, this.options.remoteData.format)
|
.parse(raw, this.options.remoteData.format)
|
||||||
.then((geojson) => this.fromGeoJSON(geojson, false))
|
.then((geojson) => this.fromGeoJSON(geojson, false))
|
||||||
|
@ -368,12 +398,7 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
connectToMap() {
|
connectToMap() {
|
||||||
if (!this._umap.datalayers[this.id]) {
|
this._umap.datalayers.add(this)
|
||||||
this._umap.datalayers[this.id] = this
|
|
||||||
}
|
|
||||||
if (!this._umap.datalayersIndex.includes(this)) {
|
|
||||||
this._umap.datalayersIndex.push(this)
|
|
||||||
}
|
|
||||||
this._umap.onDataLayersChanged()
|
this._umap.onDataLayersChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,8 +517,19 @@ export class DataLayer {
|
||||||
const features = []
|
const features = []
|
||||||
this.sortFeatures(collection)
|
this.sortFeatures(collection)
|
||||||
for (const featureJson of collection) {
|
for (const featureJson of collection) {
|
||||||
const feature = this.makeFeature(featureJson, sync)
|
if (featureJson.geometry?.type === 'GeometryCollection') {
|
||||||
if (feature) features.push(feature)
|
for (const geometry of featureJson.geometry.geometries) {
|
||||||
|
const feature = this.makeFeature({
|
||||||
|
type: 'Feature',
|
||||||
|
geometry,
|
||||||
|
properties: featureJson.properties,
|
||||||
|
})
|
||||||
|
if (feature) features.push(feature)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const feature = this.makeFeature(featureJson, sync)
|
||||||
|
if (feature) features.push(feature)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return features
|
return features
|
||||||
}
|
}
|
||||||
|
@ -606,16 +642,33 @@ export class DataLayer {
|
||||||
|
|
||||||
del(sync = true) {
|
del(sync = true) {
|
||||||
const oldValue = Utils.CopyJSON(this.umapGeoJSON())
|
const oldValue = Utils.CopyJSON(this.umapGeoJSON())
|
||||||
this.erase()
|
// TODO merge datalayer del and features del in same
|
||||||
|
// batch
|
||||||
|
this.clear()
|
||||||
if (sync) {
|
if (sync) {
|
||||||
this.isDeleted = true
|
this.isDeleted = true
|
||||||
this.sync.delete(oldValue)
|
this.sync.delete(oldValue)
|
||||||
}
|
}
|
||||||
|
this.hide()
|
||||||
|
this.parentPane.removeChild(this.pane)
|
||||||
|
this._umap.onDataLayersChanged()
|
||||||
|
this.layer.onDelete(this._leafletMap)
|
||||||
|
this.propagateDelete()
|
||||||
|
this._leaflet_events_bk = this._leaflet_events
|
||||||
}
|
}
|
||||||
|
|
||||||
empty() {
|
empty() {
|
||||||
if (this.isRemoteLayer()) return
|
if (this.isRemoteLayer()) return
|
||||||
|
this.sync.startBatch()
|
||||||
this.clear()
|
this.clear()
|
||||||
|
this.sync.commitBatch()
|
||||||
|
}
|
||||||
|
|
||||||
|
clear(sync = true) {
|
||||||
|
for (const feature of Object.values(this._features)) {
|
||||||
|
feature.del(sync)
|
||||||
|
}
|
||||||
|
this.dataChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
clone() {
|
clone() {
|
||||||
|
@ -628,24 +681,13 @@ export class DataLayer {
|
||||||
return datalayer
|
return datalayer
|
||||||
}
|
}
|
||||||
|
|
||||||
erase() {
|
|
||||||
this.hide()
|
|
||||||
this._umap.datalayersIndex.splice(this.getRank(), 1)
|
|
||||||
this.parentPane.removeChild(this.pane)
|
|
||||||
this._umap.onDataLayersChanged()
|
|
||||||
this.layer.onDelete(this._leafletMap)
|
|
||||||
this.propagateDelete()
|
|
||||||
this._leaflet_events_bk = this._leaflet_events
|
|
||||||
this.clear()
|
|
||||||
}
|
|
||||||
|
|
||||||
redraw() {
|
redraw() {
|
||||||
if (!this.isVisible()) return
|
if (!this.isVisible()) return
|
||||||
this.eachFeature((feature) => feature.redraw())
|
this.eachFeature((feature) => feature.redraw())
|
||||||
}
|
}
|
||||||
|
|
||||||
edit() {
|
edit() {
|
||||||
if (!this._umap.editEnabled || !this.isLoaded()) {
|
if (!this._umap.editEnabled) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const container = DomUtil.create('div', 'umap-layer-properties-container')
|
const container = DomUtil.create('div', 'umap-layer-properties-container')
|
||||||
|
@ -1053,23 +1095,11 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreviousBrowsable() {
|
getPreviousBrowsable() {
|
||||||
let id = this.getRank()
|
return this._umap.datalayers.prev(this)
|
||||||
let next
|
|
||||||
const index = this._umap.datalayersIndex
|
|
||||||
while (((id = index[++id] ? id : 0), (next = index[id]))) {
|
|
||||||
if (next === this || next.canBrowse()) break
|
|
||||||
}
|
|
||||||
return next
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getNextBrowsable() {
|
getNextBrowsable() {
|
||||||
let id = this.getRank()
|
return this._umap.datalayers.next(this)
|
||||||
let prev
|
|
||||||
const index = this._umap.datalayersIndex
|
|
||||||
while (((id = index[--id] ? id : index.length - 1), (prev = index[id]))) {
|
|
||||||
if (prev === this || prev.canBrowse()) break
|
|
||||||
}
|
|
||||||
return prev
|
|
||||||
}
|
}
|
||||||
|
|
||||||
umapGeoJSON() {
|
umapGeoJSON() {
|
||||||
|
@ -1080,8 +1110,8 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getRank() {
|
getDOMOrder() {
|
||||||
return this._umap.datalayersIndex.indexOf(this)
|
return Array.from(this.parentPane.children).indexOf(this.pane)
|
||||||
}
|
}
|
||||||
|
|
||||||
isReadOnly() {
|
isReadOnly() {
|
||||||
|
@ -1103,15 +1133,21 @@ export class DataLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prepareOptions() {
|
||||||
|
const options = Utils.CopyJSON(this.options)
|
||||||
|
delete options.permissions
|
||||||
|
return JSON.stringify(options)
|
||||||
|
}
|
||||||
|
|
||||||
async save() {
|
async save() {
|
||||||
if (this.isDeleted) return await this.saveDelete()
|
if (this.isDeleted) return await this.saveDelete()
|
||||||
if (!this.isLoaded()) return
|
if (!this.isRemoteLayer() && !this.isLoaded()) return
|
||||||
const geojson = this.umapGeoJSON()
|
const geojson = this.umapGeoJSON()
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('name', this.options.name)
|
formData.append('name', this.options.name)
|
||||||
formData.append('display_on_load', !!this.options.displayOnLoad)
|
formData.append('display_on_load', !!this.options.displayOnLoad)
|
||||||
formData.append('rank', this.getRank())
|
formData.append('rank', this.rank)
|
||||||
formData.append('settings', JSON.stringify(this.options))
|
formData.append('settings', this.prepareOptions())
|
||||||
// Filename support is shaky, don't do it for now.
|
// Filename support is shaky, don't do it for now.
|
||||||
const blob = new Blob([JSON.stringify(geojson)], { type: 'application/json' })
|
const blob = new Blob([JSON.stringify(geojson)], { type: 'application/json' })
|
||||||
formData.append('geojson', blob)
|
formData.append('geojson', blob)
|
||||||
|
@ -1146,12 +1182,15 @@ export class DataLayer {
|
||||||
await this._umap.saveAll()
|
await this._umap.saveAll()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
console.debug(error)
|
||||||
|
Alert.error(translate('Cannot save layer, please try again in a few minutes.'))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Response contains geojson only if save has conflicted and conflicts have
|
// Response contains geojson only if save has conflicted and conflicts have
|
||||||
// been resolved. So we need to reload to get extra data (added by someone else)
|
// been resolved. So we need to reload to get extra data (added by someone else)
|
||||||
if (data.geojson) {
|
if (data.geojson) {
|
||||||
this.clear()
|
this.clear(false)
|
||||||
this.fromGeoJSON(data.geojson)
|
this.fromGeoJSON(data.geojson)
|
||||||
delete data.geojson
|
delete data.geojson
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ export default class Facets {
|
||||||
this.selected[name] = selected
|
this.selected[name] = selected
|
||||||
}
|
}
|
||||||
|
|
||||||
this._umap.eachBrowsableDataLayer((datalayer) => {
|
this._umap.datalayers.browsable().map((datalayer) => {
|
||||||
datalayer.eachFeature((feature) => {
|
datalayer.eachFeature((feature) => {
|
||||||
for (const name of names) {
|
for (const name of names) {
|
||||||
let value = feature.properties[name]
|
let value = feature.properties[name]
|
||||||
|
|
|
@ -560,7 +560,7 @@ Fields.SlideshowDelay = class extends Fields.IntSelect {
|
||||||
Fields.DataLayerSwitcher = class extends Fields.Select {
|
Fields.DataLayerSwitcher = class extends Fields.Select {
|
||||||
getOptions() {
|
getOptions() {
|
||||||
const options = []
|
const options = []
|
||||||
this.builder._umap.eachDataLayerReverse((datalayer) => {
|
this.builder._umap.datalayers.reverse().map((datalayer) => {
|
||||||
if (
|
if (
|
||||||
datalayer.isLoaded() &&
|
datalayer.isLoaded() &&
|
||||||
!datalayer.isDataReadOnly() &&
|
!datalayer.isDataReadOnly() &&
|
||||||
|
|
|
@ -243,7 +243,7 @@ export default class Importer extends Utils.WithTemplate {
|
||||||
this.raw = null
|
this.raw = null
|
||||||
const layerSelect = this.qs('[name="layer-id"]')
|
const layerSelect = this.qs('[name="layer-id"]')
|
||||||
layerSelect.innerHTML = ''
|
layerSelect.innerHTML = ''
|
||||||
this._umap.eachDataLayerReverse((datalayer) => {
|
this._umap.datalayers.reverse().map((datalayer) => {
|
||||||
if (datalayer.isLoaded() && !datalayer.isRemoteLayer()) {
|
if (datalayer.isLoaded() && !datalayer.isRemoteLayer()) {
|
||||||
DomUtil.element({
|
DomUtil.element({
|
||||||
tagName: 'option',
|
tagName: 'option',
|
||||||
|
|
46
umap/static/umap/js/modules/managers.js
Normal file
46
umap/static/umap/js/modules/managers.js
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
export class DataLayerManager extends Object {
|
||||||
|
add(datalayer) {
|
||||||
|
this[datalayer.id] = datalayer
|
||||||
|
}
|
||||||
|
active() {
|
||||||
|
return Object.values(this)
|
||||||
|
.filter((datalayer) => !datalayer.isDeleted)
|
||||||
|
.sort((a, b) => a.rank > b.rank)
|
||||||
|
}
|
||||||
|
reverse() {
|
||||||
|
return this.active().reverse()
|
||||||
|
}
|
||||||
|
count() {
|
||||||
|
return this.active().length
|
||||||
|
}
|
||||||
|
find(func) {
|
||||||
|
for (const datalayer of this.reverse()) {
|
||||||
|
if (func.call(datalayer, datalayer)) {
|
||||||
|
return datalayer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filter(func) {
|
||||||
|
return this.active().filter(func)
|
||||||
|
}
|
||||||
|
visible() {
|
||||||
|
return this.filter((datalayer) => datalayer.isVisible())
|
||||||
|
}
|
||||||
|
browsable() {
|
||||||
|
return this.reverse().filter((datalayer) => datalayer.allowBrowse())
|
||||||
|
}
|
||||||
|
prev(datalayer) {
|
||||||
|
const browsable = this.browsable()
|
||||||
|
const current = browsable.indexOf(datalayer)
|
||||||
|
const prev = browsable[current - 1] || browsable[browsable.length - 1]
|
||||||
|
if (!prev.canBrowse()) return this.prev(prev)
|
||||||
|
return prev
|
||||||
|
}
|
||||||
|
next(datalayer) {
|
||||||
|
const browsable = this.browsable()
|
||||||
|
const current = browsable.indexOf(datalayer)
|
||||||
|
const next = browsable[current + 1] || browsable[0]
|
||||||
|
if (!next.canBrowse()) return this.next(next)
|
||||||
|
return next
|
||||||
|
}
|
||||||
|
}
|
|
@ -159,7 +159,7 @@ export class MapPermissions {
|
||||||
`<fieldset class="separator"><legend>${translate('Datalayers')}</legend></fieldset>`
|
`<fieldset class="separator"><legend>${translate('Datalayers')}</legend></fieldset>`
|
||||||
)
|
)
|
||||||
container.appendChild(fieldset)
|
container.appendChild(fieldset)
|
||||||
this._umap.eachDataLayer((datalayer) => {
|
this._umap.datalayers.active().map((datalayer) => {
|
||||||
datalayer.permissions.edit(fieldset)
|
datalayer.permissions.edit(fieldset)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
251
umap/static/umap/js/modules/rendering/controls.js
vendored
Normal file
251
umap/static/umap/js/modules/rendering/controls.js
vendored
Normal file
|
@ -0,0 +1,251 @@
|
||||||
|
import { Control } from '../../../vendors/leaflet/leaflet-src.esm.js'
|
||||||
|
import * as Utils from '../utils.js'
|
||||||
|
import { translate } from '../i18n.js'
|
||||||
|
|
||||||
|
export const HomeControl = Control.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: (map) => {
|
||||||
|
const path = map._umap.getStaticPathFor('home.svg')
|
||||||
|
const container = Utils.loadTemplate(
|
||||||
|
`<a href="/" class="home-button" title="${translate('Back to home')}"><img src="${path}" alt="${translate('Home logo')}" width="38px" height="38px" /></a>`
|
||||||
|
)
|
||||||
|
return container
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const EditControl = Control.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topright',
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: (map) => {
|
||||||
|
const template = `
|
||||||
|
<div class="edit-enable">
|
||||||
|
<button type="button" data-ref="button">${translate('Edit')}</button>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [container, { button }] = Utils.loadTemplateWithRefs(template)
|
||||||
|
button.addEventListener('click', () => map._umap.enableEdit())
|
||||||
|
button.addEventListener('mouseover', () => {
|
||||||
|
map._umap.tooltip.open({
|
||||||
|
content: map._umap.help.displayLabel('TOGGLE_EDIT'),
|
||||||
|
anchor: button,
|
||||||
|
position: 'bottom',
|
||||||
|
delay: 750,
|
||||||
|
duration: 5000,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return container
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const MoreControl = Control.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: function (map) {
|
||||||
|
const pos = this.getPosition()
|
||||||
|
const corner = map._controlCorners[pos]
|
||||||
|
const className = 'umap-more-controls'
|
||||||
|
const template = `
|
||||||
|
<div class="umap-control-text">
|
||||||
|
<button class="umap-control-more" type="button" data-ref="button"></button>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [container, { button }] = Utils.loadTemplateWithRefs(template)
|
||||||
|
button.addEventListener('click', () => corner.classList.toggle(className))
|
||||||
|
button.addEventListener('mouseover', () => {
|
||||||
|
const extended = corner.classList.contains(className)
|
||||||
|
map._umap.tooltip.open({
|
||||||
|
content: extended ? translate('Hide controls') : translate('More controls'),
|
||||||
|
anchor: button,
|
||||||
|
position: 'right',
|
||||||
|
delay: 750,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return container
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const PermanentCreditsControl = Control.extend({
|
||||||
|
options: {
|
||||||
|
position: 'bottomleft',
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: (map) => {
|
||||||
|
const container = Utils.loadTemplate(
|
||||||
|
`<div class="umap-permanent-credits-container text">${Utils.toHTML(map.options.permanentCredit)}</div>`
|
||||||
|
)
|
||||||
|
const background = map.options.permanentCreditBackground ? '#FFFFFFB0' : ''
|
||||||
|
container.style.backgroundColor = background
|
||||||
|
return container
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const BaseButton = Control.extend({
|
||||||
|
initialize: function (umap, options) {
|
||||||
|
this._umap = umap
|
||||||
|
Control.prototype.initialize.call(this, options)
|
||||||
|
},
|
||||||
|
|
||||||
|
onAdd: function (map) {
|
||||||
|
const template = `
|
||||||
|
<div class="${this.options.className} umap-control">
|
||||||
|
<button type="button" title="${this.options.title}" data-ref="button"></button>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [container, { button }] = Utils.loadTemplateWithRefs(template)
|
||||||
|
button.addEventListener('click', (event) => {
|
||||||
|
event.stopPropagation()
|
||||||
|
this.onClick()
|
||||||
|
})
|
||||||
|
button.addEventListener('dblclick', (event) => {
|
||||||
|
event.stopPropagation()
|
||||||
|
})
|
||||||
|
this.afterAdd(container)
|
||||||
|
return container
|
||||||
|
},
|
||||||
|
|
||||||
|
afterAdd: (container) => {},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const DataLayersControl = BaseButton.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
className: 'umap-control-browse',
|
||||||
|
title: translate('Open browser'),
|
||||||
|
},
|
||||||
|
|
||||||
|
afterAdd: function (container) {
|
||||||
|
Utils.toggleBadge(container, this._umap.browser?.hasFilters())
|
||||||
|
},
|
||||||
|
|
||||||
|
onClick: function () {
|
||||||
|
this._umap.openBrowser()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const CaptionControl = BaseButton.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
className: 'umap-control-caption',
|
||||||
|
title: translate('About'),
|
||||||
|
},
|
||||||
|
|
||||||
|
onClick: function () {
|
||||||
|
this._umap.openCaption()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const EmbedControl = BaseButton.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
title: translate('Share and download'),
|
||||||
|
className: 'leaflet-control-embed',
|
||||||
|
},
|
||||||
|
|
||||||
|
onClick: function () {
|
||||||
|
this._umap.share.open()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
export const AttributionControl = Control.Attribution.extend({
|
||||||
|
options: {
|
||||||
|
prefix: '',
|
||||||
|
},
|
||||||
|
|
||||||
|
_update: function () {
|
||||||
|
// Layer is no more on the map
|
||||||
|
if (!this._map) return
|
||||||
|
Control.Attribution.prototype._update.call(this)
|
||||||
|
const shortCredit = this._map._umap.getProperty('shortCredit')
|
||||||
|
const captionMenus = this._map._umap.getProperty('captionMenus')
|
||||||
|
// Use our own container, so we can hide/show on small screens
|
||||||
|
const originalCredits = this._container.innerHTML
|
||||||
|
this._container.innerHTML = ''
|
||||||
|
const template = `
|
||||||
|
<div class="attribution-container">
|
||||||
|
${originalCredits}
|
||||||
|
<span data-ref="short"> — ${Utils.toHTML(shortCredit)}</span>
|
||||||
|
<a href="#" data-ref="caption"> — ${translate('Open caption')}</a>
|
||||||
|
<a href="/" data-ref="home"> — ${translate('Home')}</a>
|
||||||
|
<a href="https://umap-project.org/" data-ref="site"> — ${translate('Powered by uMap')}</a>
|
||||||
|
<a href="#" class="attribution-toggle"></a>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [container, { short, caption, home, site }] =
|
||||||
|
Utils.loadTemplateWithRefs(template)
|
||||||
|
caption.addEventListener('click', () => this._map._umap.openCaption())
|
||||||
|
this._container.appendChild(container)
|
||||||
|
short.hidden = !shortCredit
|
||||||
|
caption.hidden = !captionMenus
|
||||||
|
site.hidden = !captionMenus
|
||||||
|
home.hidden = this._map._umap.isEmbed || !captionMenus
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
/* Used in edit mode to define the default tilelayer */
|
||||||
|
export const TileLayerChooser = BaseButton.extend({
|
||||||
|
options: {
|
||||||
|
position: 'topleft',
|
||||||
|
},
|
||||||
|
|
||||||
|
onClick: function () {
|
||||||
|
this.openSwitcher({ edit: true })
|
||||||
|
},
|
||||||
|
|
||||||
|
openSwitcher: function (options = {}) {
|
||||||
|
const template = `
|
||||||
|
<div class="umap-edit-tilelayers">
|
||||||
|
<h3><i class="icon icon-16 icon-tilelayer" title=""></i><span class="">${translate('Change tilelayers')}</span></h3>
|
||||||
|
<ul data-ref="tileContainer"></ul>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
const [container, { tileContainer }] = Utils.loadTemplateWithRefs(template)
|
||||||
|
this.buildList(tileContainer, options)
|
||||||
|
const panel = options.edit ? this._umap.editPanel : this._umap.panel
|
||||||
|
panel.open({ content: container, highlight: 'tilelayers' })
|
||||||
|
},
|
||||||
|
|
||||||
|
buildList: function (container, options) {
|
||||||
|
this._umap._leafletMap.eachTileLayer((tilelayer) => {
|
||||||
|
const browserIsHttps = window.location.protocol === 'https:'
|
||||||
|
const tileLayerIsHttp = tilelayer.options.url_template.indexOf('http:') === 0
|
||||||
|
if (browserIsHttps && tileLayerIsHttp) return
|
||||||
|
container.appendChild(this.addTileLayerElement(tilelayer, options))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
addTileLayerElement: function (tilelayer, options) {
|
||||||
|
const selectedClass = this._umap._leafletMap.hasLayer(tilelayer) ? 'selected' : ''
|
||||||
|
const src = Utils.template(
|
||||||
|
tilelayer.options.url_template,
|
||||||
|
this._umap._leafletMap.options.demoTileInfos
|
||||||
|
)
|
||||||
|
const template = `
|
||||||
|
<li>
|
||||||
|
<img src="${src}" loading="lazy" />
|
||||||
|
<div>${tilelayer.options.name}</div>
|
||||||
|
</li>
|
||||||
|
`
|
||||||
|
const li = Utils.loadTemplate(template)
|
||||||
|
li.addEventListener('click', () => {
|
||||||
|
const oldTileLayer = this._umap.properties.tilelayer
|
||||||
|
this._umap._leafletMap.selectTileLayer(tilelayer)
|
||||||
|
this._umap._leafletMap._controls.tilelayers.setLayers()
|
||||||
|
if (options?.edit) {
|
||||||
|
this._umap.properties.tilelayer = tilelayer.toJSON()
|
||||||
|
this._umap.sync.update(
|
||||||
|
'properties.tilelayer',
|
||||||
|
this._umap.properties.tilelayer,
|
||||||
|
oldTileLayer
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return li
|
||||||
|
},
|
||||||
|
})
|
|
@ -41,6 +41,11 @@ export const Heat = L.HeatLayer.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
removeLayer: (layer) => {
|
||||||
|
// No op, there is no "removeLatLng" in Leaflet.heat
|
||||||
|
// but this method is expected by DataLayer
|
||||||
|
},
|
||||||
|
|
||||||
onAdd: function (map) {
|
onAdd: function (map) {
|
||||||
LayerMixin.onAdd.call(this, map)
|
LayerMixin.onAdd.call(this, map)
|
||||||
return L.HeatLayer.prototype.onAdd.call(this, map)
|
return L.HeatLayer.prototype.onAdd.call(this, map)
|
||||||
|
|
|
@ -11,6 +11,17 @@ import {
|
||||||
import { uMapAlert as Alert } from '../../components/alerts/alert.js'
|
import { uMapAlert as Alert } from '../../components/alerts/alert.js'
|
||||||
import DropControl from '../drop.js'
|
import DropControl from '../drop.js'
|
||||||
import { translate } from '../i18n.js'
|
import { translate } from '../i18n.js'
|
||||||
|
import {
|
||||||
|
AttributionControl,
|
||||||
|
CaptionControl,
|
||||||
|
DataLayersControl,
|
||||||
|
EmbedControl,
|
||||||
|
EditControl,
|
||||||
|
HomeControl,
|
||||||
|
MoreControl,
|
||||||
|
PermanentCreditsControl,
|
||||||
|
TileLayerChooser,
|
||||||
|
} from './controls.js'
|
||||||
import * as Utils from '../utils.js'
|
import * as Utils from '../utils.js'
|
||||||
import * as Icon from './icon.js'
|
import * as Icon from './icon.js'
|
||||||
|
|
||||||
|
@ -40,15 +51,15 @@ const ControlsMixin = {
|
||||||
this._controls = {}
|
this._controls = {}
|
||||||
|
|
||||||
if (this._umap.hasEditMode() && !this.options.noControl) {
|
if (this._umap.hasEditMode() && !this.options.noControl) {
|
||||||
new U.EditControl(this).addTo(this)
|
new EditControl(this).addTo(this)
|
||||||
}
|
}
|
||||||
this._controls.home = new U.HomeControl(this._umap)
|
this._controls.home = new HomeControl(this._umap)
|
||||||
this._controls.zoom = new Control.Zoom({
|
this._controls.zoom = new Control.Zoom({
|
||||||
zoomInTitle: translate('Zoom in'),
|
zoomInTitle: translate('Zoom in'),
|
||||||
zoomOutTitle: translate('Zoom out'),
|
zoomOutTitle: translate('Zoom out'),
|
||||||
})
|
})
|
||||||
this._controls.datalayers = new U.DataLayersControl(this._umap)
|
this._controls.datalayers = new DataLayersControl(this._umap)
|
||||||
this._controls.caption = new U.CaptionControl(this._umap)
|
this._controls.caption = new CaptionControl(this._umap)
|
||||||
this._controls.locate = new U.Locate(this, {
|
this._controls.locate = new U.Locate(this, {
|
||||||
strings: {
|
strings: {
|
||||||
title: translate('Center map on your location'),
|
title: translate('Center map on your location'),
|
||||||
|
@ -69,8 +80,8 @@ const ControlsMixin = {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
this._controls.search = new U.SearchControl()
|
this._controls.search = new U.SearchControl()
|
||||||
this._controls.embed = new Control.Embed(this._umap)
|
this._controls.embed = new EmbedControl(this._umap)
|
||||||
this._controls.tilelayersChooser = new U.TileLayerChooser(this)
|
this._controls.tilelayersChooser = new TileLayerChooser(this._umap)
|
||||||
this._controls.editinosm = new Control.EditInOSM({
|
this._controls.editinosm = new Control.EditInOSM({
|
||||||
position: 'topleft',
|
position: 'topleft',
|
||||||
widgetOptions: {
|
widgetOptions: {
|
||||||
|
@ -80,9 +91,9 @@ const ControlsMixin = {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
this._controls.measure = new L.MeasureControl().initHandler(this)
|
this._controls.measure = new L.MeasureControl().initHandler(this)
|
||||||
this._controls.more = new U.MoreControls()
|
this._controls.more = new MoreControl()
|
||||||
this._controls.scale = L.control.scale()
|
this._controls.scale = L.control.scale()
|
||||||
this._controls.permanentCredit = new U.PermanentCreditsControl(this)
|
this._controls.permanentCredit = new PermanentCreditsControl(this)
|
||||||
this._umap.drop = new DropControl(this._umap, this, this._container)
|
this._umap.drop = new DropControl(this._umap, this, this._container)
|
||||||
this._controls.tilelayers = new U.TileLayerControl(this)
|
this._controls.tilelayers = new U.TileLayerControl(this)
|
||||||
},
|
},
|
||||||
|
@ -93,7 +104,7 @@ const ControlsMixin = {
|
||||||
}
|
}
|
||||||
if (this.options.noControl) return
|
if (this.options.noControl) return
|
||||||
|
|
||||||
this._controls.attribution = new U.AttributionControl().addTo(this)
|
this._controls.attribution = new AttributionControl().addTo(this)
|
||||||
if (this.options.miniMap) {
|
if (this.options.miniMap) {
|
||||||
this.whenReady(function () {
|
this.whenReady(function () {
|
||||||
if (this.selectedTilelayer) {
|
if (this.selectedTilelayer) {
|
||||||
|
@ -316,7 +327,7 @@ export const LeafletMap = BaseMap.extend({
|
||||||
} else if (this.options.defaultView === 'latest') {
|
} else if (this.options.defaultView === 'latest') {
|
||||||
this._umap.onceDataLoaded(() => {
|
this._umap.onceDataLoaded(() => {
|
||||||
if (!this._umap.hasData()) return
|
if (!this._umap.hasData()) return
|
||||||
const datalayer = this._umap.firstVisibleDatalayer()
|
const datalayer = this._umap.datalayers.visible()[0]
|
||||||
let feature
|
let feature
|
||||||
if (datalayer) {
|
if (datalayer) {
|
||||||
const feature = datalayer.getFeatureByIndex(-1)
|
const feature = datalayer.getFeatureByIndex(-1)
|
||||||
|
|
|
@ -109,7 +109,6 @@ const PointMixin = {
|
||||||
addInteractions() {
|
addInteractions() {
|
||||||
FeatureMixin.addInteractions.call(this)
|
FeatureMixin.addInteractions.call(this)
|
||||||
this.on('dragend', (event) => {
|
this.on('dragend', (event) => {
|
||||||
this.isDirty = true
|
|
||||||
this.feature.edit(event)
|
this.feature.edit(event)
|
||||||
})
|
})
|
||||||
if (!this.feature.isReadOnly()) this.on('mouseover', this._enableDragging)
|
if (!this.feature.isReadOnly()) this.on('mouseover', this._enableDragging)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { DomEvent, DomUtil, stamp } from '../../vendors/leaflet/leaflet-src.esm.js'
|
import { stamp } from '../../vendors/leaflet/leaflet-src.esm.js'
|
||||||
import { AutocompleteDatalist } from './autocomplete.js'
|
import { AutocompleteDatalist } from './autocomplete.js'
|
||||||
import { MutatingForm } from './form/builder.js'
|
import { MutatingForm } from './form/builder.js'
|
||||||
import { translate } from './i18n.js'
|
import { translate } from './i18n.js'
|
||||||
|
@ -119,10 +119,9 @@ class Rule {
|
||||||
'options.smoothFactor',
|
'options.smoothFactor',
|
||||||
'options.dashArray',
|
'options.dashArray',
|
||||||
]
|
]
|
||||||
const container = DomUtil.create('div')
|
|
||||||
const builder = new MutatingForm(this, options)
|
const builder = new MutatingForm(this, options)
|
||||||
const defaultShapeProperties = DomUtil.add('div', '', container)
|
const container = document.createElement('div')
|
||||||
defaultShapeProperties.appendChild(builder.build())
|
container.appendChild(builder.build())
|
||||||
const autocomplete = new AutocompleteDatalist(builder.helpers.condition.input)
|
const autocomplete = new AutocompleteDatalist(builder.helpers.condition.input)
|
||||||
const properties = this._umap.allProperties()
|
const properties = this._umap.allProperties()
|
||||||
autocomplete.suggestions = properties
|
autocomplete.suggestions = properties
|
||||||
|
@ -137,43 +136,45 @@ class Rule {
|
||||||
.map((str) => `${value}${str || ''}`)
|
.map((str) => `${value}${str || ''}`)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this._umap.editPanel.open({ content: container, highlight: 'settings' })
|
const backButton = Utils.loadTemplate(`
|
||||||
|
<button class="flat" type="button" data-ref="add">
|
||||||
|
<i class="icon icon-16 icon-back" title="${translate('Back to list')}"></i>
|
||||||
|
</button>`)
|
||||||
|
backButton.addEventListener('click', () =>
|
||||||
|
this._umap.edit().then(() => {
|
||||||
|
this._umap.editPanel.container.querySelector('details#rules').open = true
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
this._umap.editPanel.open({
|
||||||
|
content: container,
|
||||||
|
highlight: 'settings',
|
||||||
|
actions: [backButton],
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
renderToolbox(row) {
|
renderToolbox(ul) {
|
||||||
row.classList.toggle('off', !this.active)
|
const template = `
|
||||||
const toggle = DomUtil.createButtonIcon(
|
<li data-id="${stamp(this)}" class="orderable">
|
||||||
row,
|
<button class="icon icon-16 icon-eye" title="${translate('Toggle rule')}" data-ref=toggle></button>
|
||||||
'icon-eye',
|
<button class="icon icon-16 icon-edit show-on-edit" title="${translate('Edit')}" data-ref=edit></button>
|
||||||
translate('Show/hide layer')
|
<button class="icon icon-16 icon-delete show-on-edit" title="${translate('Delete rule')}" data-ref=remove></button>
|
||||||
)
|
<span>${this.condition || translate('empty rule')}</span>
|
||||||
const edit = DomUtil.createButtonIcon(
|
<i class="icon icon-16 icon-drag" title="${translate('Drag to reorder')}"></i>
|
||||||
row,
|
</li>
|
||||||
'icon-edit show-on-edit',
|
`
|
||||||
translate('Edit')
|
const [li, { toggle, edit, remove }] = Utils.loadTemplateWithRefs(template)
|
||||||
)
|
ul.appendChild(li)
|
||||||
const remove = DomUtil.createButtonIcon(
|
li.classList.toggle('off', !this.active)
|
||||||
row,
|
edit.addEventListener('click', () => this.edit())
|
||||||
'icon-delete show-on-edit',
|
remove.addEventListener('click', () => {
|
||||||
translate('Delete layer')
|
if (!confirm(translate('Are you sure you want to delete this rule?'))) return
|
||||||
)
|
this._delete()
|
||||||
DomEvent.on(edit, 'click', this.edit, this)
|
this._umap.editPanel.close()
|
||||||
DomEvent.on(
|
})
|
||||||
remove,
|
toggle.addEventListener('click', () => {
|
||||||
'click',
|
|
||||||
function () {
|
|
||||||
if (!confirm(translate('Are you sure you want to delete this rule?'))) return
|
|
||||||
this._delete()
|
|
||||||
this._umap.editPanel.close()
|
|
||||||
},
|
|
||||||
this
|
|
||||||
)
|
|
||||||
DomUtil.add('span', '', row, this.condition || translate('empty rule'))
|
|
||||||
DomUtil.createIcon(row, 'icon-drag', translate('Drag to reorder'))
|
|
||||||
row.dataset.id = stamp(this)
|
|
||||||
DomEvent.on(toggle, 'click', () => {
|
|
||||||
this.active = !this.active
|
this.active = !this.active
|
||||||
row.classList.toggle('off', !this.active)
|
li.classList.toggle('off', !this.active)
|
||||||
this._umap.render(['rules'])
|
this._umap.render(['rules'])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -207,8 +208,9 @@ export default class Rules {
|
||||||
}
|
}
|
||||||
|
|
||||||
onReorder(src, dst, initialIndex, finalIndex) {
|
onReorder(src, dst, initialIndex, finalIndex) {
|
||||||
const moved = this.rules.find((rule) => stamp(rule) === src.dataset.id)
|
const oldRules = Utils.CopyJSON(this._umap.properties.rules || {})
|
||||||
const reference = this.rules.find((rule) => stamp(rule) === dst.dataset.id)
|
const moved = this.rules.find((rule) => stamp(rule) === +src.dataset.id)
|
||||||
|
const reference = this.rules.find((rule) => stamp(rule) === +dst.dataset.id)
|
||||||
const movedIdx = this.rules.indexOf(moved)
|
const movedIdx = this.rules.indexOf(moved)
|
||||||
let referenceIdx = this.rules.indexOf(reference)
|
let referenceIdx = this.rules.indexOf(reference)
|
||||||
const minIndex = Math.min(movedIdx, referenceIdx)
|
const minIndex = Math.min(movedIdx, referenceIdx)
|
||||||
|
@ -222,20 +224,28 @@ export default class Rules {
|
||||||
this.rules.splice(newIdx, 0, moved)
|
this.rules.splice(newIdx, 0, moved)
|
||||||
this._umap.render(['rules'])
|
this._umap.render(['rules'])
|
||||||
this.commit()
|
this.commit()
|
||||||
|
this._umap.sync.update('properties.rules', this._umap.properties.rules, oldRules)
|
||||||
}
|
}
|
||||||
|
|
||||||
edit(container) {
|
edit(container) {
|
||||||
const body = DomUtil.createFieldset(container, translate('Conditional style rules'))
|
const template = `
|
||||||
|
<details id="rules">
|
||||||
|
<summary>${translate('Conditional style rules')}</summary>
|
||||||
|
<fieldset>
|
||||||
|
<ul data-ref=ul></ul>
|
||||||
|
<button class="umap-add" type="button" data-ref=add>${translate('Add rule')}</button>
|
||||||
|
</fieldset>
|
||||||
|
</details>
|
||||||
|
`
|
||||||
|
const [body, { ul, add }] = Utils.loadTemplateWithRefs(template)
|
||||||
if (this.rules.length) {
|
if (this.rules.length) {
|
||||||
const ul = DomUtil.create('ul', '', body)
|
|
||||||
for (const rule of this.rules) {
|
for (const rule of this.rules) {
|
||||||
rule.renderToolbox(DomUtil.create('li', 'orderable', ul))
|
rule.renderToolbox(ul)
|
||||||
}
|
}
|
||||||
|
|
||||||
const orderable = new Orderable(ul, this.onReorder.bind(this))
|
const orderable = new Orderable(ul, this.onReorder.bind(this))
|
||||||
}
|
}
|
||||||
|
add.addEventListener('click', () => this.addRule())
|
||||||
DomUtil.createButton('umap-add', body, translate('Add rule'), this.addRule, this)
|
container.appendChild(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
addRule() {
|
addRule() {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { translate } from './i18n.js'
|
||||||
* - `type`: The type of the data
|
* - `type`: The type of the data
|
||||||
* - `impacts`: A list of impacts than happen when this property is updated, among
|
* - `impacts`: A list of impacts than happen when this property is updated, among
|
||||||
* 'ui', 'data', 'limit-bounds', 'datalayer-index', 'remote-data',
|
* 'ui', 'data', 'limit-bounds', 'datalayer-index', 'remote-data',
|
||||||
* 'background' 'sync'.
|
* 'background', 'sync', 'datalayer-rank'.
|
||||||
*
|
*
|
||||||
* - Extra keys are being passed to the FormBuilder automatically.
|
* - Extra keys are being passed to the FormBuilder automatically.
|
||||||
*/
|
*/
|
||||||
|
@ -436,6 +436,10 @@ export const SCHEMA = {
|
||||||
],
|
],
|
||||||
default: 'Default',
|
default: 'Default',
|
||||||
},
|
},
|
||||||
|
rank: {
|
||||||
|
type: Number,
|
||||||
|
impacts: ['datalayer-rank'],
|
||||||
|
},
|
||||||
remoteData: {
|
remoteData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
impacts: ['remote-data'],
|
impacts: ['remote-data'],
|
||||||
|
|
|
@ -204,8 +204,8 @@ class IframeExporter {
|
||||||
delete this.queryString.feature
|
delete this.queryString.feature
|
||||||
}
|
}
|
||||||
if (this.options.keepCurrentDatalayers) {
|
if (this.options.keepCurrentDatalayers) {
|
||||||
this._umap.eachDataLayer((datalayer) => {
|
this._umap.datalayers.visible().map((datalayer) => {
|
||||||
if (datalayer.isVisible() && datalayer.createdOnServer) {
|
if (datalayer.createdOnServer) {
|
||||||
datalayers.push(datalayer.id)
|
datalayers.push(datalayer.id)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -66,7 +66,7 @@ export default class Slideshow extends WithTemplate {
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultDatalayer() {
|
defaultDatalayer() {
|
||||||
return this._umap.findDataLayer((d) => d.canBrowse())
|
return this._umap.datalayers.find((d) => d.canBrowse())
|
||||||
}
|
}
|
||||||
|
|
||||||
startSpinner() {
|
startSpinner() {
|
||||||
|
|
|
@ -207,31 +207,45 @@ export class SyncEngine {
|
||||||
this._send(operation)
|
this._send(operation)
|
||||||
}
|
}
|
||||||
|
|
||||||
async save() {
|
_getDirtyObjects() {
|
||||||
const needSave = new Map()
|
const dirty = new Map()
|
||||||
if (!this._umap.id) {
|
if (!this._umap.id) {
|
||||||
// There is no operation for first map save
|
// There is no operation for first map save
|
||||||
needSave.set(this._umap, [])
|
dirty.set(this._umap, [])
|
||||||
|
}
|
||||||
|
const addDirtyObject = (operation) => {
|
||||||
|
const updater = this._getUpdater(operation.subject)
|
||||||
|
const obj = updater.getStoredObject(operation.metadata)
|
||||||
|
if (!dirty.has(obj)) {
|
||||||
|
dirty.set(obj, [])
|
||||||
|
}
|
||||||
|
dirty.get(obj).push(operation)
|
||||||
}
|
}
|
||||||
for (const operation of this._operations.sorted()) {
|
for (const operation of this._operations.sorted()) {
|
||||||
if (operation.dirty) {
|
if (operation.dirty) {
|
||||||
const updater = this._getUpdater(operation.subject)
|
addDirtyObject(operation)
|
||||||
const obj = updater.getStoredObject(operation.metadata)
|
if (operation.verb === 'batch') {
|
||||||
if (!needSave.has(obj)) {
|
for (const op of operation.operations) {
|
||||||
needSave.set(obj, [])
|
addDirtyObject(op)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
needSave.get(obj).push(operation)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return dirty
|
||||||
|
}
|
||||||
|
|
||||||
|
async save() {
|
||||||
|
const needSave = this._getDirtyObjects()
|
||||||
for (const [obj, operations] of needSave.entries()) {
|
for (const [obj, operations] of needSave.entries()) {
|
||||||
const ok = await obj.save()
|
const ok = await obj.save()
|
||||||
if (!ok) break
|
if (!ok) return false
|
||||||
for (const operation of operations) {
|
for (const operation of operations) {
|
||||||
operation.dirty = false
|
operation.dirty = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.saved()
|
this.saved()
|
||||||
this._undoManager.toggleState()
|
this._undoManager.toggleState()
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
saved() {
|
saved() {
|
||||||
|
|
|
@ -207,7 +207,7 @@ export class BottomBar extends WithTemplate {
|
||||||
const select = this.elements.layers
|
const select = this.elements.layers
|
||||||
const selected = select.options[select.selectedIndex].value
|
const selected = select.options[select.selectedIndex].value
|
||||||
if (!selected) return
|
if (!selected) return
|
||||||
this._umap.eachDataLayer((datalayer) => {
|
this._umap.datalayers.active().map((datalayer) => {
|
||||||
datalayer.toggle(datalayer.id === selected)
|
datalayer.toggle(datalayer.id === selected)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -228,7 +228,7 @@ export class BottomBar extends WithTemplate {
|
||||||
|
|
||||||
buildDataLayerSwitcher() {
|
buildDataLayerSwitcher() {
|
||||||
this.elements.layers.innerHTML = ''
|
this.elements.layers.innerHTML = ''
|
||||||
const datalayers = this._umap.datalayersIndex.filter((d) => d.options.inCaption)
|
const datalayers = this._umap.datalayers.filter((d) => d.options.inCaption)
|
||||||
if (datalayers.length < 2) {
|
if (datalayers.length < 2) {
|
||||||
this.elements.layers.hidden = true
|
this.elements.layers.hidden = true
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -4,6 +4,8 @@ export class Positioned {
|
||||||
this.anchorTop(anchor)
|
this.anchorTop(anchor)
|
||||||
} else if (anchor && position === 'bottom') {
|
} else if (anchor && position === 'bottom') {
|
||||||
this.anchorBottom(anchor)
|
this.anchorBottom(anchor)
|
||||||
|
} else if (anchor && position === 'right') {
|
||||||
|
this.anchorRight(anchor)
|
||||||
} else {
|
} else {
|
||||||
this.anchorAbsolute()
|
this.anchorAbsolute()
|
||||||
}
|
}
|
||||||
|
@ -12,6 +14,7 @@ export class Positioned {
|
||||||
toggleClassPosition(position) {
|
toggleClassPosition(position) {
|
||||||
this.container.classList.toggle('tooltip-bottom', position === 'bottom')
|
this.container.classList.toggle('tooltip-bottom', position === 'bottom')
|
||||||
this.container.classList.toggle('tooltip-top', position === 'top')
|
this.container.classList.toggle('tooltip-top', position === 'top')
|
||||||
|
this.container.classList.toggle('tooltip-right', position === 'right')
|
||||||
}
|
}
|
||||||
|
|
||||||
anchorTop(el) {
|
anchorTop(el) {
|
||||||
|
@ -33,6 +36,16 @@ export class Positioned {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
anchorRight(el) {
|
||||||
|
this.toggleClassPosition('right')
|
||||||
|
const coords = this.getPosition(el)
|
||||||
|
console.log(coords)
|
||||||
|
this.setPosition({
|
||||||
|
left: coords.right + 11,
|
||||||
|
top: coords.top,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
anchorAbsolute() {
|
anchorAbsolute() {
|
||||||
const left =
|
const left =
|
||||||
this.parent.offsetLeft +
|
this.parent.offsetLeft +
|
||||||
|
|
|
@ -33,6 +33,7 @@ import { EditPanel, FullPanel, Panel } from './ui/panel.js'
|
||||||
import Tooltip from './ui/tooltip.js'
|
import Tooltip from './ui/tooltip.js'
|
||||||
import URLs from './urls.js'
|
import URLs from './urls.js'
|
||||||
import * as Utils from './utils.js'
|
import * as Utils from './utils.js'
|
||||||
|
import { DataLayerManager } from './managers.js'
|
||||||
|
|
||||||
export default class Umap {
|
export default class Umap {
|
||||||
constructor(element, geojson) {
|
constructor(element, geojson) {
|
||||||
|
@ -107,7 +108,7 @@ export default class Umap {
|
||||||
if (geojson.properties.schema) this.overrideSchema(geojson.properties.schema)
|
if (geojson.properties.schema) this.overrideSchema(geojson.properties.schema)
|
||||||
|
|
||||||
// Do not display in an iframe.
|
// Do not display in an iframe.
|
||||||
if (window.self !== window.top) {
|
if (this.isEmbed) {
|
||||||
this.properties.homeControl = false
|
this.properties.homeControl = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,8 +167,7 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Global storage for retrieving datalayers and features.
|
// Global storage for retrieving datalayers and features.
|
||||||
this.datalayers = {} // All datalayers, including deleted.
|
this.datalayers = new DataLayerManager()
|
||||||
this.datalayersIndex = [] // Datalayers actually on the map and ordered.
|
|
||||||
this.featuresIndex = {}
|
this.featuresIndex = {}
|
||||||
|
|
||||||
this.formatter = new Formatter(this)
|
this.formatter = new Formatter(this)
|
||||||
|
@ -217,7 +217,6 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
|
|
||||||
window.onbeforeunload = () => (this.editEnabled && this.isDirty) || null
|
window.onbeforeunload = () => (this.editEnabled && this.isDirty) || null
|
||||||
this.backup()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get isDirty() {
|
get isDirty() {
|
||||||
|
@ -258,6 +257,10 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get isEmbed() {
|
||||||
|
return window.self !== window.top
|
||||||
|
}
|
||||||
|
|
||||||
setPropertiesFromQueryString() {
|
setPropertiesFromQueryString() {
|
||||||
const asBoolean = (key) => {
|
const asBoolean = (key) => {
|
||||||
const value = this.searchParams.get(key)
|
const value = this.searchParams.get(key)
|
||||||
|
@ -612,7 +615,7 @@ export default class Umap {
|
||||||
this.datalayersLoaded = true
|
this.datalayersLoaded = true
|
||||||
this.fire('datalayersloaded')
|
this.fire('datalayersloaded')
|
||||||
const toLoad = []
|
const toLoad = []
|
||||||
for (const datalayer of this.datalayersIndex) {
|
for (const datalayer of this.datalayers.active()) {
|
||||||
if (datalayer.showAtLoad()) toLoad.push(() => datalayer.show())
|
if (datalayer.showAtLoad()) toLoad.push(() => datalayer.show())
|
||||||
}
|
}
|
||||||
while (toLoad.length) {
|
while (toLoad.length) {
|
||||||
|
@ -626,7 +629,7 @@ export default class Umap {
|
||||||
|
|
||||||
createDataLayer(options = {}, sync = true) {
|
createDataLayer(options = {}, sync = true) {
|
||||||
options.name =
|
options.name =
|
||||||
options.name || `${translate('Layer')} ${this.datalayersIndex.length + 1}`
|
options.name || `${translate('Layer')} ${this.datalayers.count() + 1}`
|
||||||
const datalayer = new DataLayer(this, this._leafletMap, options)
|
const datalayer = new DataLayer(this, this._leafletMap, options)
|
||||||
|
|
||||||
if (sync !== false) {
|
if (sync !== false) {
|
||||||
|
@ -637,7 +640,6 @@ export default class Umap {
|
||||||
|
|
||||||
createDirtyDataLayer(options) {
|
createDirtyDataLayer(options) {
|
||||||
const datalayer = this.createDataLayer(options, true)
|
const datalayer = this.createDataLayer(options, true)
|
||||||
datalayer.isDirty = true
|
|
||||||
return datalayer
|
return datalayer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -647,19 +649,19 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
|
|
||||||
reindexDataLayers() {
|
reindexDataLayers() {
|
||||||
this.eachDataLayer((datalayer) => datalayer.reindex())
|
this.datalayers.active().map((datalayer) => datalayer.reindex())
|
||||||
this.onDataLayersChanged()
|
this.onDataLayersChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
indexDatalayers() {
|
reorderDataLayers() {
|
||||||
const panes = this._leafletMap.getPane('overlayPane')
|
const parent = this._leafletMap.getPane('overlayPane')
|
||||||
|
const datalayers = Object.values(this.datalayers)
|
||||||
this.datalayersIndex = []
|
.filter((datalayer) => !datalayer._isDeleted)
|
||||||
for (const pane of panes.children) {
|
.sort((datalayer1, datalayer2) => datalayer1.rank > datalayer2.rank)
|
||||||
if (!pane.dataset || !pane.dataset.id) continue
|
for (const datalayer of datalayers) {
|
||||||
this.datalayersIndex.push(this.datalayers[pane.dataset.id])
|
const child = parent.querySelector(`[data-id="${datalayer.id}"]`)
|
||||||
|
parent.appendChild(child)
|
||||||
}
|
}
|
||||||
this.onDataLayersChanged()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onceDatalayersLoaded(callback, context) {
|
onceDatalayersLoaded(callback, context) {
|
||||||
|
@ -690,8 +692,8 @@ export default class Umap {
|
||||||
async saveAll() {
|
async saveAll() {
|
||||||
if (!this.isDirty) return
|
if (!this.isDirty) return
|
||||||
if (this._defaultExtent) this._setCenterAndZoom()
|
if (this._defaultExtent) this._setCenterAndZoom()
|
||||||
this.backup()
|
const status = await this.sync.save()
|
||||||
await this.sync.save()
|
if (!status) return
|
||||||
// Do a blind render for now, as we are not sure what could
|
// Do a blind render for now, as we are not sure what could
|
||||||
// have changed, we'll be more subtil when we'll remove the
|
// have changed, we'll be more subtil when we'll remove the
|
||||||
// save action
|
// save action
|
||||||
|
@ -709,24 +711,6 @@ export default class Umap {
|
||||||
return this.properties.name || translate('Untitled map')
|
return this.properties.name || translate('Untitled map')
|
||||||
}
|
}
|
||||||
|
|
||||||
backup() {
|
|
||||||
this.backupProperties()
|
|
||||||
this._datalayersIndex_bk = [].concat(this.datalayersIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
backupProperties() {
|
|
||||||
this._backupProperties = Object.assign({}, this.properties)
|
|
||||||
this._backupProperties.tilelayer = Object.assign({}, this.properties.tilelayer)
|
|
||||||
this._backupProperties.limitBounds = Object.assign({}, this.properties.limitBounds)
|
|
||||||
this._backupProperties.permissions = Object.assign({}, this.permissions.properties)
|
|
||||||
}
|
|
||||||
|
|
||||||
resetProperties() {
|
|
||||||
this.properties = Object.assign({}, this._backupProperties)
|
|
||||||
this.properties.tilelayer = Object.assign({}, this._backupProperties.tilelayer)
|
|
||||||
this.permissions.properties = Object.assign({}, this._backupProperties.permissions)
|
|
||||||
}
|
|
||||||
|
|
||||||
setProperties(newProperties) {
|
setProperties(newProperties) {
|
||||||
for (const key of Object.keys(SCHEMA)) {
|
for (const key of Object.keys(SCHEMA)) {
|
||||||
if (newProperties[key] !== undefined) {
|
if (newProperties[key] !== undefined) {
|
||||||
|
@ -739,24 +723,24 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
|
|
||||||
hasData() {
|
hasData() {
|
||||||
for (const datalayer of this.datalayersIndex) {
|
for (const datalayer of this.datalayers.active()) {
|
||||||
if (datalayer.hasData()) return true
|
if (datalayer.hasData()) return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hasLayers() {
|
hasLayers() {
|
||||||
return Boolean(this.datalayersIndex.length)
|
return Boolean(this.datalayers.count())
|
||||||
}
|
}
|
||||||
|
|
||||||
allProperties() {
|
allProperties() {
|
||||||
return [].concat(...this.datalayersIndex.map((dl) => dl.allProperties()))
|
return [].concat(...this.datalayers.active().map((dl) => dl.allProperties()))
|
||||||
}
|
}
|
||||||
|
|
||||||
sortedValues(property) {
|
sortedValues(property) {
|
||||||
return []
|
return []
|
||||||
.concat(...this.datalayersIndex.map((dl) => dl.sortedValues(property)))
|
.concat(...this.datalayers.active().map((dl) => dl.sortedValues(property)))
|
||||||
.filter((val, idx, arr) => arr.indexOf(val) === idx)
|
.filter((val, idx, arr) => arr.indexOf(val) === idx)
|
||||||
.sort(U.Utils.naturalSort)
|
.sort(Utils.naturalSort)
|
||||||
}
|
}
|
||||||
|
|
||||||
editCaption() {
|
editCaption() {
|
||||||
|
@ -819,7 +803,7 @@ export default class Umap {
|
||||||
`<button type="button">${translate('Use current center and zoom')}</button>`
|
`<button type="button">${translate('Use current center and zoom')}</button>`
|
||||||
)
|
)
|
||||||
button.addEventListener('click', () => {
|
button.addEventListener('click', () => {
|
||||||
this._setCenterAndZoom()
|
this.setCenterAndZoom()
|
||||||
builder.fetchAll()
|
builder.fetchAll()
|
||||||
})
|
})
|
||||||
container.appendChild(form)
|
container.appendChild(form)
|
||||||
|
@ -1177,7 +1161,7 @@ export default class Umap {
|
||||||
}
|
}
|
||||||
this._advancedActions(container)
|
this._advancedActions(container)
|
||||||
|
|
||||||
this.editPanel.open({
|
return this.editPanel.open({
|
||||||
content: container,
|
content: container,
|
||||||
className: 'dark',
|
className: 'dark',
|
||||||
highlight: 'settings',
|
highlight: 'settings',
|
||||||
|
@ -1231,12 +1215,8 @@ export default class Umap {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!this.permissions.isDirty) {
|
this.permissions.setProperties(data.permissions)
|
||||||
// Do not override local changes to permissions,
|
this.permissions.commit()
|
||||||
// but update in case some other editors changed them in the meantime.
|
|
||||||
this.permissions.setProperties(data.permissions)
|
|
||||||
this.permissions.commit()
|
|
||||||
}
|
|
||||||
this._leafletMap.once('saved', () => {
|
this._leafletMap.once('saved', () => {
|
||||||
Alert.success(data.info || translate('Map has been saved!'))
|
Alert.success(data.info || translate('Map has been saved!'))
|
||||||
})
|
})
|
||||||
|
@ -1273,7 +1253,7 @@ export default class Umap {
|
||||||
|
|
||||||
toGeoJSON() {
|
toGeoJSON() {
|
||||||
let features = []
|
let features = []
|
||||||
this.eachDataLayer((datalayer) => {
|
this.datalayers.active().map((datalayer) => {
|
||||||
if (datalayer.isVisible()) {
|
if (datalayer.isVisible()) {
|
||||||
features = features.concat(datalayer.featuresToGeoJSON())
|
features = features.concat(datalayer.featuresToGeoJSON())
|
||||||
}
|
}
|
||||||
|
@ -1349,13 +1329,20 @@ export default class Umap {
|
||||||
if (fields.includes('properties.rules')) {
|
if (fields.includes('properties.rules')) {
|
||||||
this.rules.load()
|
this.rules.load()
|
||||||
}
|
}
|
||||||
this.eachVisibleDataLayer((datalayer) => {
|
this.datalayers.visible().map((datalayer) => {
|
||||||
datalayer.redraw()
|
datalayer.redraw()
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'datalayer-index':
|
case 'datalayer-index':
|
||||||
this.reindexDataLayers()
|
this.reindexDataLayers()
|
||||||
break
|
break
|
||||||
|
case 'datalayer-rank':
|
||||||
|
// When drag'n'dropping datalayers,
|
||||||
|
// this get called once per datalayers.
|
||||||
|
// (and same for undo/redo of the action)
|
||||||
|
// TODO: call only once
|
||||||
|
this.reorderDataLayers()
|
||||||
|
break
|
||||||
case 'background':
|
case 'background':
|
||||||
this._leafletMap.initTileLayers()
|
this._leafletMap.initTileLayers()
|
||||||
break
|
break
|
||||||
|
@ -1444,7 +1431,7 @@ export default class Umap {
|
||||||
) {
|
) {
|
||||||
return datalayer
|
return datalayer
|
||||||
}
|
}
|
||||||
datalayer = this.findDataLayer((datalayer) => {
|
datalayer = this.datalayers.find((datalayer) => {
|
||||||
if (!datalayer.isDataReadOnly() && datalayer.isBrowsable()) {
|
if (!datalayer.isDataReadOnly() && datalayer.isBrowsable()) {
|
||||||
fallback = datalayer
|
fallback = datalayer
|
||||||
if (datalayer.isVisible()) return true
|
if (datalayer.isVisible()) return true
|
||||||
|
@ -1459,61 +1446,37 @@ export default class Umap {
|
||||||
return this.createDirtyDataLayer()
|
return this.createDirtyDataLayer()
|
||||||
}
|
}
|
||||||
|
|
||||||
findDataLayer(method, context) {
|
eachFeature(callback) {
|
||||||
for (let i = this.datalayersIndex.length - 1; i >= 0; i--) {
|
this.datalayers.browsable().map((datalayer) => {
|
||||||
if (method.call(context, this.datalayersIndex[i])) {
|
if (datalayer.isVisible()) datalayer.eachFeature(callback)
|
||||||
return this.datalayersIndex[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
eachDataLayer(method, context) {
|
|
||||||
for (let i = 0; i < this.datalayersIndex.length; i++) {
|
|
||||||
method.call(context, this.datalayersIndex[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
eachDataLayerReverse(method, context, filter) {
|
|
||||||
for (let i = this.datalayersIndex.length - 1; i >= 0; i--) {
|
|
||||||
if (filter && !filter.call(context, this.datalayersIndex[i])) continue
|
|
||||||
method.call(context, this.datalayersIndex[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
eachBrowsableDataLayer(method, context) {
|
|
||||||
this.eachDataLayerReverse(method, context, (d) => d.allowBrowse())
|
|
||||||
}
|
|
||||||
|
|
||||||
eachVisibleDataLayer(method, context) {
|
|
||||||
this.eachDataLayerReverse(method, context, (d) => d.isVisible())
|
|
||||||
}
|
|
||||||
|
|
||||||
eachFeature(callback, context) {
|
|
||||||
this.eachBrowsableDataLayer((datalayer) => {
|
|
||||||
if (datalayer.isVisible()) datalayer.eachFeature(callback, context)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
removeDataLayers() {
|
removeDataLayers() {
|
||||||
this.eachDataLayerReverse((datalayer) => {
|
this.datalayers.active().map((datalayer) => {
|
||||||
datalayer.del()
|
datalayer.del()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
emptyDataLayers() {
|
emptyDataLayers() {
|
||||||
this.eachDataLayerReverse((datalayer) => {
|
this.datalayers.active().map((datalayer) => {
|
||||||
datalayer.empty()
|
datalayer.empty()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
editDatalayers() {
|
editDatalayers() {
|
||||||
if (!this.editEnabled) return
|
if (!this.editEnabled) return
|
||||||
const container = DomUtil.create('div')
|
const template = `
|
||||||
DomUtil.createTitle(container, translate('Manage layers'), 'icon-layers')
|
<div>
|
||||||
const ul = DomUtil.create('ul', '', container)
|
<h3><i class="icon icon-16 icon-layers"></i>${translate('Manage layers')}</h3>
|
||||||
this.eachDataLayerReverse((datalayer) => {
|
<ul data-ref=ul></ul>
|
||||||
const row = DomUtil.create('li', 'orderable', ul)
|
</div>
|
||||||
DomUtil.createIcon(row, 'icon-drag', translate('Drag to reorder'))
|
`
|
||||||
|
const [container, { ul }] = Utils.loadTemplateWithRefs(template)
|
||||||
|
this.datalayers.reverse().map((datalayer) => {
|
||||||
|
const row = Utils.loadTemplate(
|
||||||
|
`<li class="orderable"><i class="icon icon-16 icon-drag" title="${translate('Drag to reorder')}"></i></li>`
|
||||||
|
)
|
||||||
datalayer.renderToolbox(row)
|
datalayer.renderToolbox(row)
|
||||||
const builder = new MutatingForm(
|
const builder = new MutatingForm(
|
||||||
datalayer,
|
datalayer,
|
||||||
|
@ -1524,20 +1487,27 @@ export default class Umap {
|
||||||
row.appendChild(form)
|
row.appendChild(form)
|
||||||
row.classList.toggle('off', !datalayer.isVisible())
|
row.classList.toggle('off', !datalayer.isVisible())
|
||||||
row.dataset.id = datalayer.id
|
row.dataset.id = datalayer.id
|
||||||
|
ul.appendChild(row)
|
||||||
})
|
})
|
||||||
const onReorder = (src, dst, initialIndex, finalIndex) => {
|
const onReorder = (src, dst, initialIndex, finalIndex) => {
|
||||||
const movedLayer = this.datalayers[src.dataset.id]
|
const movedLayer = this.datalayers[src.dataset.id]
|
||||||
const targetLayer = this.datalayers[dst.dataset.id]
|
const targetLayer = this.datalayers[dst.dataset.id]
|
||||||
const minIndex = Math.min(movedLayer.getRank(), targetLayer.getRank())
|
const minIndex = Math.min(movedLayer.getDOMOrder(), targetLayer.getDOMOrder())
|
||||||
const maxIndex = Math.max(movedLayer.getRank(), targetLayer.getRank())
|
const maxIndex = Math.max(movedLayer.getDOMOrder(), targetLayer.getDOMOrder())
|
||||||
if (finalIndex === 0) movedLayer.bringToTop()
|
if (finalIndex === 0) movedLayer.bringToTop()
|
||||||
else if (finalIndex > initialIndex) movedLayer.insertBefore(targetLayer)
|
else if (finalIndex > initialIndex) movedLayer.insertBefore(targetLayer)
|
||||||
else movedLayer.insertAfter(targetLayer)
|
else movedLayer.insertAfter(targetLayer)
|
||||||
this.eachDataLayerReverse((datalayer) => {
|
this.sync.startBatch()
|
||||||
if (datalayer.getRank() >= minIndex && datalayer.getRank() <= maxIndex)
|
this.datalayers.reverse().map((datalayer) => {
|
||||||
datalayer.isDirty = true
|
const rank = datalayer.getDOMOrder()
|
||||||
|
if (rank >= minIndex && rank <= maxIndex) {
|
||||||
|
const oldRank = datalayer.rank
|
||||||
|
datalayer.rank = rank
|
||||||
|
datalayer.sync.update('options.rank', rank, oldRank)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
this.indexDatalayers()
|
this.sync.commitBatch()
|
||||||
|
this.onDataLayersChanged()
|
||||||
}
|
}
|
||||||
const orderable = new Orderable(ul, onReorder)
|
const orderable = new Orderable(ul, onReorder)
|
||||||
|
|
||||||
|
@ -1559,18 +1529,6 @@ export default class Umap {
|
||||||
return datalayer
|
return datalayer
|
||||||
}
|
}
|
||||||
|
|
||||||
firstVisibleDatalayer() {
|
|
||||||
return this.findDataLayer((datalayer) => {
|
|
||||||
if (datalayer.isVisible()) return true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
ensurePanesOrder() {
|
|
||||||
this.eachDataLayer((datalayer) => {
|
|
||||||
datalayer.bringToTop()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
openBrowser(mode) {
|
openBrowser(mode) {
|
||||||
this.onceDatalayersLoaded(() => this.browser.open(mode))
|
this.onceDatalayersLoaded(() => this.browser.open(mode))
|
||||||
}
|
}
|
||||||
|
@ -1721,7 +1679,7 @@ export default class Umap {
|
||||||
|
|
||||||
getLayersBounds() {
|
getLayersBounds() {
|
||||||
const bounds = new latLngBounds()
|
const bounds = new latLngBounds()
|
||||||
this.eachBrowsableDataLayer((d) => {
|
this.datalayers.browsable().map((d) => {
|
||||||
if (d.isVisible()) bounds.extend(d.layer.getBounds())
|
if (d.isVisible()) bounds.extend(d.layer.getBounds())
|
||||||
})
|
})
|
||||||
return bounds
|
return bounds
|
||||||
|
|
|
@ -1,183 +1,3 @@
|
||||||
U.HomeControl = L.Control.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: (map) => {
|
|
||||||
const path = map._umap.getStaticPathFor('home.svg')
|
|
||||||
const container = U.Utils.loadTemplate(
|
|
||||||
`<a href="/" class="home-button" title="${L._('Back to home')}"><img src="${path}" alt="${L._('Home logo')}" width="38px" height="38px" /></a>`
|
|
||||||
)
|
|
||||||
return container
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.EditControl = L.Control.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topright',
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: function (map) {
|
|
||||||
const container = L.DomUtil.create('div', 'edit-enable')
|
|
||||||
const enableEditing = L.DomUtil.createButton(
|
|
||||||
'',
|
|
||||||
container,
|
|
||||||
L._('Edit'),
|
|
||||||
map._umap.enableEdit,
|
|
||||||
map._umap
|
|
||||||
)
|
|
||||||
L.DomEvent.on(
|
|
||||||
enableEditing,
|
|
||||||
'mouseover',
|
|
||||||
() => {
|
|
||||||
map._umap.tooltip.open({
|
|
||||||
content: map._umap.help.displayLabel('TOGGLE_EDIT'),
|
|
||||||
anchor: enableEditing,
|
|
||||||
position: 'bottom',
|
|
||||||
delay: 750,
|
|
||||||
duration: 5000,
|
|
||||||
})
|
|
||||||
},
|
|
||||||
this
|
|
||||||
)
|
|
||||||
|
|
||||||
return container
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.MoreControls = L.Control.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: function () {
|
|
||||||
const container = L.DomUtil.create('div', 'umap-control-text')
|
|
||||||
const moreButton = L.DomUtil.createButton(
|
|
||||||
'umap-control-more',
|
|
||||||
container,
|
|
||||||
L._('More controls'),
|
|
||||||
this.toggle,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
const lessButton = L.DomUtil.createButton(
|
|
||||||
'umap-control-less',
|
|
||||||
container,
|
|
||||||
L._('Hide controls'),
|
|
||||||
this.toggle,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
return container
|
|
||||||
},
|
|
||||||
|
|
||||||
toggle: function () {
|
|
||||||
const pos = this.getPosition()
|
|
||||||
const corner = this._map._controlCorners[pos]
|
|
||||||
const className = 'umap-more-controls'
|
|
||||||
if (L.DomUtil.hasClass(corner, className)) L.DomUtil.removeClass(corner, className)
|
|
||||||
else L.DomUtil.addClass(corner, className)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.PermanentCreditsControl = L.Control.extend({
|
|
||||||
options: {
|
|
||||||
position: 'bottomleft',
|
|
||||||
},
|
|
||||||
|
|
||||||
initialize: function (map, options) {
|
|
||||||
this.map = map
|
|
||||||
L.Control.prototype.initialize.call(this, options)
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: function () {
|
|
||||||
this.paragraphContainer = L.DomUtil.create(
|
|
||||||
'div',
|
|
||||||
'umap-permanent-credits-container text'
|
|
||||||
)
|
|
||||||
this.setCredits()
|
|
||||||
this.setBackground()
|
|
||||||
return this.paragraphContainer
|
|
||||||
},
|
|
||||||
|
|
||||||
setCredits: function () {
|
|
||||||
this.paragraphContainer.innerHTML = U.Utils.toHTML(this.map.options.permanentCredit)
|
|
||||||
},
|
|
||||||
|
|
||||||
setBackground: function () {
|
|
||||||
if (this.map.options.permanentCreditBackground) {
|
|
||||||
this.paragraphContainer.style.backgroundColor = '#FFFFFFB0'
|
|
||||||
} else {
|
|
||||||
this.paragraphContainer.style.backgroundColor = ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
L.Control.Button = L.Control.extend({
|
|
||||||
initialize: function (umap, options) {
|
|
||||||
this._umap = umap
|
|
||||||
L.Control.prototype.initialize.call(this, options)
|
|
||||||
},
|
|
||||||
|
|
||||||
getClassName: function () {
|
|
||||||
return this.options.className
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: function (map) {
|
|
||||||
const container = L.DomUtil.create('div', `${this.getClassName()} umap-control`)
|
|
||||||
const button = L.DomUtil.createButton(
|
|
||||||
'',
|
|
||||||
container,
|
|
||||||
this.options.title,
|
|
||||||
this.onClick,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
L.DomEvent.on(button, 'dblclick', L.DomEvent.stopPropagation)
|
|
||||||
this.afterAdd(container)
|
|
||||||
return container
|
|
||||||
},
|
|
||||||
|
|
||||||
afterAdd: (container) => {},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.DataLayersControl = L.Control.Button.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
className: 'umap-control-browse',
|
|
||||||
title: L._('Open browser'),
|
|
||||||
},
|
|
||||||
|
|
||||||
afterAdd: function (container) {
|
|
||||||
U.Utils.toggleBadge(container, this._umap.browser?.hasFilters())
|
|
||||||
},
|
|
||||||
|
|
||||||
onClick: function () {
|
|
||||||
this._umap.openBrowser()
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.CaptionControl = L.Control.Button.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
className: 'umap-control-caption',
|
|
||||||
title: L._('About'),
|
|
||||||
},
|
|
||||||
|
|
||||||
onClick: function () {
|
|
||||||
this._umap.openCaption()
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
L.Control.Embed = L.Control.Button.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
title: L._('Share and download'),
|
|
||||||
className: 'leaflet-control-embed umap-control',
|
|
||||||
},
|
|
||||||
|
|
||||||
onClick: function () {
|
|
||||||
this._umap.share.open()
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
/* Used in view mode to define the current tilelayer */
|
/* Used in view mode to define the current tilelayer */
|
||||||
U.TileLayerControl = L.Control.IconLayers.extend({
|
U.TileLayerControl = L.Control.IconLayers.extend({
|
||||||
initialize: function (map, options) {
|
initialize: function (map, options) {
|
||||||
|
@ -238,128 +58,6 @@ U.TileLayerControl = L.Control.IconLayers.extend({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
/* Used in edit mode to define the default tilelayer */
|
|
||||||
U.TileLayerChooser = L.Control.extend({
|
|
||||||
options: {
|
|
||||||
position: 'topleft',
|
|
||||||
},
|
|
||||||
|
|
||||||
initialize: function (map, options = {}) {
|
|
||||||
this.map = map
|
|
||||||
L.Control.prototype.initialize.call(this, options)
|
|
||||||
},
|
|
||||||
|
|
||||||
onAdd: function () {
|
|
||||||
const container = L.DomUtil.create('div', 'leaflet-control-tilelayers umap-control')
|
|
||||||
const changeMapBackgroundButton = L.DomUtil.createButton(
|
|
||||||
'',
|
|
||||||
container,
|
|
||||||
L._('Change map background'),
|
|
||||||
this.openSwitcher,
|
|
||||||
this
|
|
||||||
)
|
|
||||||
L.DomEvent.on(changeMapBackgroundButton, 'dblclick', L.DomEvent.stopPropagation)
|
|
||||||
return container
|
|
||||||
},
|
|
||||||
|
|
||||||
openSwitcher: function (options = {}) {
|
|
||||||
const container = L.DomUtil.create('div', 'umap-edit-tilelayers')
|
|
||||||
L.DomUtil.createTitle(container, L._('Change tilelayers'), 'icon-tilelayer')
|
|
||||||
this._tilelayers_container = L.DomUtil.create('ul', '', container)
|
|
||||||
this.buildList(options)
|
|
||||||
const panel = options.edit ? this.map._umap.editPanel : this.map._umap.panel
|
|
||||||
panel.open({ content: container, highlight: 'tilelayers' })
|
|
||||||
},
|
|
||||||
|
|
||||||
buildList: function (options) {
|
|
||||||
this.map.eachTileLayer(function (tilelayer) {
|
|
||||||
if (
|
|
||||||
window.location.protocol === 'https:' &&
|
|
||||||
tilelayer.options.url_template.indexOf('http:') === 0
|
|
||||||
)
|
|
||||||
return
|
|
||||||
this.addTileLayerElement(tilelayer, options)
|
|
||||||
}, this)
|
|
||||||
},
|
|
||||||
|
|
||||||
addTileLayerElement: function (tilelayer, options) {
|
|
||||||
const selectedClass = this.map.hasLayer(tilelayer) ? 'selected' : ''
|
|
||||||
const el = L.DomUtil.create('li', selectedClass, this._tilelayers_container)
|
|
||||||
const img = L.DomUtil.create('img', '', el)
|
|
||||||
const name = L.DomUtil.create('div', '', el)
|
|
||||||
img.src = U.Utils.template(
|
|
||||||
tilelayer.options.url_template,
|
|
||||||
this.map.options.demoTileInfos
|
|
||||||
)
|
|
||||||
img.loading = 'lazy'
|
|
||||||
name.textContent = tilelayer.options.name
|
|
||||||
L.DomEvent.on(
|
|
||||||
el,
|
|
||||||
'click',
|
|
||||||
() => {
|
|
||||||
const oldTileLayer = this.map._umap.properties.tilelayer
|
|
||||||
this.map.selectTileLayer(tilelayer)
|
|
||||||
this.map._controls.tilelayers.setLayers()
|
|
||||||
if (options?.edit) {
|
|
||||||
this.map._umap.properties.tilelayer = tilelayer.toJSON()
|
|
||||||
this.map._umap.isDirty = true
|
|
||||||
this.map._umap.sync.update(
|
|
||||||
'properties.tilelayer',
|
|
||||||
this.map._umap.properties.tilelayer,
|
|
||||||
oldTileLayer
|
|
||||||
)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
this
|
|
||||||
)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
U.AttributionControl = L.Control.Attribution.extend({
|
|
||||||
options: {
|
|
||||||
prefix: '',
|
|
||||||
},
|
|
||||||
|
|
||||||
_update: function () {
|
|
||||||
// Layer is no more on the map
|
|
||||||
if (!this._map) return
|
|
||||||
L.Control.Attribution.prototype._update.call(this)
|
|
||||||
// Use our own container, so we can hide/show on small screens
|
|
||||||
const credits = this._container.innerHTML
|
|
||||||
this._container.innerHTML = ''
|
|
||||||
const container = L.DomUtil.create('div', 'attribution-container', this._container)
|
|
||||||
container.innerHTML = credits
|
|
||||||
const shortCredit = this._map._umap.getProperty('shortCredit')
|
|
||||||
const captionMenus = this._map._umap.getProperty('captionMenus')
|
|
||||||
if (shortCredit) {
|
|
||||||
L.DomUtil.element({
|
|
||||||
tagName: 'span',
|
|
||||||
parent: container,
|
|
||||||
safeHTML: ` — ${U.Utils.toHTML(shortCredit)}`,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (captionMenus) {
|
|
||||||
const link = L.DomUtil.add('a', '', container, ` — ${L._('Open caption')}`)
|
|
||||||
L.DomEvent.on(link, 'click', L.DomEvent.stop)
|
|
||||||
.on(link, 'click', () => this._map._umap.openCaption())
|
|
||||||
.on(link, 'dblclick', L.DomEvent.stop)
|
|
||||||
}
|
|
||||||
if (window.top === window.self && captionMenus) {
|
|
||||||
// We are not in iframe mode
|
|
||||||
L.DomUtil.createLink('', container, ` — ${L._('Home')}`, '/')
|
|
||||||
}
|
|
||||||
if (captionMenus) {
|
|
||||||
L.DomUtil.createLink(
|
|
||||||
'',
|
|
||||||
container,
|
|
||||||
` — ${L._('Powered by uMap')}`,
|
|
||||||
'https://umap-project.org/'
|
|
||||||
)
|
|
||||||
}
|
|
||||||
L.DomUtil.createLink('attribution-toggle', this._container, '')
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take control over L.Control.Locate to be able to
|
* Take control over L.Control.Locate to be able to
|
||||||
* call start() before adding the control (and thus the button) to the map.
|
* call start() before adding the control (and thus the button) to the map.
|
||||||
|
@ -461,7 +159,6 @@ U.Search = L.PhotonSearch.extend({
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
const datalayer = this.map._umap.defaultEditDataLayer()
|
const datalayer = this.map._umap.defaultEditDataLayer()
|
||||||
const marker = datalayer.makeFeature(feature)
|
const marker = datalayer.makeFeature(feature)
|
||||||
marker.isDirty = true
|
|
||||||
marker.edit()
|
marker.edit()
|
||||||
})
|
})
|
||||||
geom.addEventListener('mousedown', async (event) => {
|
geom.addEventListener('mousedown', async (event) => {
|
||||||
|
@ -602,14 +299,8 @@ U.Editable = L.Editable.extend({
|
||||||
if (event.layer instanceof U.LeafletMarker) event.layer.feature.del()
|
if (event.layer instanceof U.LeafletMarker) event.layer.feature.del()
|
||||||
})
|
})
|
||||||
this.on('editable:drawing:commit', function (event) {
|
this.on('editable:drawing:commit', function (event) {
|
||||||
event.layer.feature.isDirty = true
|
|
||||||
if (this._umap.editedFeature !== event.layer) event.layer.feature.edit(event)
|
if (this._umap.editedFeature !== event.layer) event.layer.feature.edit(event)
|
||||||
})
|
})
|
||||||
this.on('editable:editing', (event) => {
|
|
||||||
const feature = event.layer.feature
|
|
||||||
feature.isDirty = true
|
|
||||||
// feature.pullGeometry(false)
|
|
||||||
})
|
|
||||||
this.on('editable:vertex:ctrlclick', (event) => {
|
this.on('editable:vertex:ctrlclick', (event) => {
|
||||||
const index = event.vertex.getIndex()
|
const index = event.vertex.getIndex()
|
||||||
if (
|
if (
|
||||||
|
@ -663,7 +354,6 @@ U.Editable = L.Editable.extend({
|
||||||
// Overrided from Leaflet.Editable
|
// Overrided from Leaflet.Editable
|
||||||
const datalayer = this._umap.defaultEditDataLayer()
|
const datalayer = this._umap.defaultEditDataLayer()
|
||||||
datalayer.addFeature(layer.feature)
|
datalayer.addFeature(layer.feature)
|
||||||
layer.isDirty = true
|
|
||||||
return layer
|
return layer
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -65,18 +65,6 @@ L.DomUtil.createButton = (className, container, content, callback, context) => {
|
||||||
return el
|
return el
|
||||||
}
|
}
|
||||||
|
|
||||||
L.DomUtil.createLink = (className, container, content, url, target, title) => {
|
|
||||||
const el = L.DomUtil.add('a', className, container, content)
|
|
||||||
el.href = url
|
|
||||||
if (target) {
|
|
||||||
el.target = target
|
|
||||||
}
|
|
||||||
if (title) {
|
|
||||||
el.title = title
|
|
||||||
}
|
|
||||||
return el
|
|
||||||
}
|
|
||||||
|
|
||||||
L.DomUtil.createIcon = (parent, className, title, size = 16) => {
|
L.DomUtil.createIcon = (parent, className, title, size = 16) => {
|
||||||
return L.DomUtil.element({
|
return L.DomUtil.element({
|
||||||
tagName: 'i',
|
tagName: 'i',
|
||||||
|
@ -140,16 +128,6 @@ L.DomUtil.element = ({ tagName, parent, ...attrs }) => {
|
||||||
return el
|
return el
|
||||||
}
|
}
|
||||||
|
|
||||||
L.DomUtil.before = (target, el) => {
|
|
||||||
target.parentNode.insertBefore(el, target)
|
|
||||||
return el
|
|
||||||
}
|
|
||||||
|
|
||||||
L.DomUtil.after = (target, el) => {
|
|
||||||
target.parentNode.insertBefore(el, target.nextSibling)
|
|
||||||
return el
|
|
||||||
}
|
|
||||||
|
|
||||||
// From https://gist.github.com/Accudio/b9cb16e0e3df858cef0d31e38f1fe46f
|
// From https://gist.github.com/Accudio/b9cb16e0e3df858cef0d31e38f1fe46f
|
||||||
// convert colour in range 0-255 to the modifier used within luminance calculation
|
// convert colour in range 0-255 to the modifier used within luminance calculation
|
||||||
L.DomUtil.colourMod = (colour) => {
|
L.DomUtil.colourMod = (colour) => {
|
||||||
|
@ -214,24 +192,6 @@ L.DomUtil.contrastedColor = (el, bgcolor) => {
|
||||||
if (bgcolor) _CACHE_CONSTRAST[bgcolor] = out
|
if (bgcolor) _CACHE_CONSTRAST[bgcolor] = out
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
L.DomEvent.once = (el, types, fn, context) => {
|
|
||||||
// cf https://github.com/Leaflet/Leaflet/pull/3528#issuecomment-134551575
|
|
||||||
|
|
||||||
if (typeof types === 'object') {
|
|
||||||
for (const type in types) {
|
|
||||||
L.DomEvent.once(el, type, types[type], fn)
|
|
||||||
}
|
|
||||||
return L.DomEvent
|
|
||||||
}
|
|
||||||
|
|
||||||
const handler = L.bind(() => {
|
|
||||||
L.DomEvent.off(el, types, fn, context).off(el, types, handler, context)
|
|
||||||
}, L.DomEvent)
|
|
||||||
|
|
||||||
// add a listener that's executed once and removed after that
|
|
||||||
return L.DomEvent.on(el, types, fn, context).on(el, types, handler, context)
|
|
||||||
}
|
|
||||||
|
|
||||||
L.LatLng.prototype.isValid = function () {
|
L.LatLng.prototype.isValid = function () {
|
||||||
return (
|
return (
|
||||||
Number.isFinite(this.lat) &&
|
Number.isFinite(this.lat) &&
|
||||||
|
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "ካፕሽን",
|
"Caption": "ካፕሽን",
|
||||||
"Center map on your location": "መገኛዎን የሚያሳየውን ካርታ ወደ መሀል ያድርጉ",
|
"Center map on your location": "መገኛዎን የሚያሳየውን ካርታ ወደ መሀል ያድርጉ",
|
||||||
"Change map background": "የካርታውን የጀርባ ገፅታ ይቀይሩ",
|
|
||||||
"Change tilelayers": "የታይልሌየሩን",
|
"Change tilelayers": "የታይልሌየሩን",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "የረጃውን ፎርማት ቀይር",
|
"Choose the data format": "የረጃውን ፎርማት ቀይር",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("am_ET", locale)
|
L.registerLocale("am_ET", locale)
|
||||||
L.setLocale("am_ET")
|
L.setLocale("am_ET")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "ካፕሽን",
|
"Caption": "ካፕሽን",
|
||||||
"Center map on your location": "መገኛዎን የሚያሳየውን ካርታ ወደ መሀል ያድርጉ",
|
"Center map on your location": "መገኛዎን የሚያሳየውን ካርታ ወደ መሀል ያድርጉ",
|
||||||
"Change map background": "የካርታውን የጀርባ ገፅታ ይቀይሩ",
|
|
||||||
"Change tilelayers": "የታይልሌየሩን",
|
"Change tilelayers": "የታይልሌየሩን",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "የረጃውን ፎርማት ቀይር",
|
"Choose the data format": "የረጃውን ፎርማት ቀይር",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "شرح",
|
"Caption": "شرح",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "اختر تنسيق البيانات",
|
"Choose the data format": "اختر تنسيق البيانات",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ar", locale)
|
L.registerLocale("ar", locale)
|
||||||
L.setLocale("ar")
|
L.setLocale("ar")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "شرح",
|
"Caption": "شرح",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "اختر تنسيق البيانات",
|
"Choose the data format": "اختر تنسيق البيانات",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ast", locale)
|
L.registerLocale("ast", locale)
|
||||||
L.setLocale("ast")
|
L.setLocale("ast")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Надпис",
|
"Caption": "Надпис",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Промяна фона на картата",
|
|
||||||
"Change tilelayers": "Променете слоевете",
|
"Change tilelayers": "Променете слоевете",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Изберете формата на данните",
|
"Choose the data format": "Изберете формата на данните",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("bg", locale)
|
L.registerLocale("bg", locale)
|
||||||
L.setLocale("bg")
|
L.setLocale("bg")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Надпис",
|
"Caption": "Надпис",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Промяна фона на картата",
|
|
||||||
"Change tilelayers": "Променете слоевете",
|
"Change tilelayers": "Променете слоевете",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Изберете формата на данните",
|
"Choose the data format": "Изберете формата на данните",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Alc'hwez",
|
"Caption": "Alc'hwez",
|
||||||
"Center map on your location": "Kreizañ ar gartenn war al lec'h m'emaoc'h",
|
"Center map on your location": "Kreizañ ar gartenn war al lec'h m'emaoc'h",
|
||||||
"Change map background": "Cheñch foñs ar gartenn",
|
|
||||||
"Change tilelayers": "Cheñch foñs ar gartenn",
|
"Change tilelayers": "Cheñch foñs ar gartenn",
|
||||||
"Change": "Kemmañ",
|
"Change": "Kemmañ",
|
||||||
"Choose the data format": "Diuzañ furmad ar roadennoù",
|
"Choose the data format": "Diuzañ furmad ar roadennoù",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Dibab an hollad cheñchamantoù-mañ",
|
"Choose this dataset": "Dibab an hollad cheñchamantoù-mañ",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Dibab un tem",
|
"Choose a theme": "Dibab un tem",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Dibab ar roadennoù-mañ",
|
"Choose this data": "Dibab ar roadennoù-mañ",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("br", locale)
|
L.registerLocale("br", locale)
|
||||||
L.setLocale("br")
|
L.setLocale("br")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Alc'hwez",
|
"Caption": "Alc'hwez",
|
||||||
"Center map on your location": "Kreizañ ar gartenn war al lec'h m'emaoc'h",
|
"Center map on your location": "Kreizañ ar gartenn war al lec'h m'emaoc'h",
|
||||||
"Change map background": "Cheñch foñs ar gartenn",
|
|
||||||
"Change tilelayers": "Cheñch foñs ar gartenn",
|
"Change tilelayers": "Cheñch foñs ar gartenn",
|
||||||
"Change": "Kemmañ",
|
"Change": "Kemmañ",
|
||||||
"Choose the data format": "Diuzañ furmad ar roadennoù",
|
"Choose the data format": "Diuzañ furmad ar roadennoù",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Dibab an hollad cheñchamantoù-mañ",
|
"Choose this dataset": "Dibab an hollad cheñchamantoù-mañ",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Dibab un tem",
|
"Choose a theme": "Dibab un tem",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Dibab ar roadennoù-mañ",
|
"Choose this data": "Dibab ar roadennoù-mañ",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Petició proxy en memòria cau",
|
"Cache proxied request": "Petició proxy en memòria cau",
|
||||||
"Caption": "Llegenda",
|
"Caption": "Llegenda",
|
||||||
"Center map on your location": "Centra el mapa a la vostra ubicació",
|
"Center map on your location": "Centra el mapa a la vostra ubicació",
|
||||||
"Change map background": "Canvia el fons del mapa",
|
|
||||||
"Change tilelayers": "Canvia les capes de tessel·les",
|
"Change tilelayers": "Canvia les capes de tessel·les",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Trieu el format de dades",
|
"Choose the data format": "Trieu el format de dades",
|
||||||
|
@ -85,7 +84,7 @@ const locale = {
|
||||||
"Custom background": "Fons personalitzat",
|
"Custom background": "Fons personalitzat",
|
||||||
"Custom overlay": "Superposició personalitzada",
|
"Custom overlay": "Superposició personalitzada",
|
||||||
"dash array": "matriu de guions",
|
"dash array": "matriu de guions",
|
||||||
"Data is browsable": "Data is browsable",
|
"Data is browsable": "Les dades es poden navegar",
|
||||||
"Datalayers": "Capes de dades",
|
"Datalayers": "Capes de dades",
|
||||||
"Default interaction options": "Opcions d'interacció predeterminades",
|
"Default interaction options": "Opcions d'interacció predeterminades",
|
||||||
"Default properties": "Propietats predeterminades",
|
"Default properties": "Propietats predeterminades",
|
||||||
|
@ -177,12 +176,12 @@ const locale = {
|
||||||
"Icon shape": "forma de la icona",
|
"Icon shape": "forma de la icona",
|
||||||
"Icon symbol": "Imatge de la icona",
|
"Icon symbol": "Imatge de la icona",
|
||||||
"If false, the polygon or line will act as a part of the underlying map.": "If false, the polygon or line will act as a part of the underlying map.",
|
"If false, the polygon or line will act as a part of the underlying map.": "If false, the polygon or line will act as a part of the underlying map.",
|
||||||
"Iframe with custom height (in px): {{{https://iframe.url.com|height}}}": "Iframe with custom height (in px): {{{https://iframe.url.com|height}}}",
|
"Iframe with custom height (in px): {{{https://iframe.url.com|height}}}": "Iframe amb alçada personalitzada (height en px): {{{https://iframe.url.com|height}}}",
|
||||||
"Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}": "Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}",
|
"Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}": "Iframe amb alçada i amplada personalitzada (height i width en px): {{{https://iframe.url.com|height*width}}}",
|
||||||
"iframe": "iframe",
|
"iframe": "iframe",
|
||||||
"Iframe: {{{https://iframe.url.com}}}": "Iframe: {{{https://iframe.url.com}}}",
|
"Iframe: {{{https://iframe.url.com}}}": "Iframe: {{{https://iframe.url.com}}}",
|
||||||
"Image with custom width (in px): {{https://image.url.com|width}}": "Image with custom width (in px): {{https://image.url.com|width}}",
|
"Image with custom width (in px): {{https://image.url.com|width}}": "Imatge amb amplada personalitzada (width en px): {{https://image.url.com|width}}",
|
||||||
"Image: {{https://image.url.com}}": "Image: {{https://image.url.com}}",
|
"Image: {{https://image.url.com}}": "Imatge: {{https://image.url.com}}",
|
||||||
"Import data": "Importa dades",
|
"Import data": "Importa dades",
|
||||||
"Import in a new layer": "Import in a new layer",
|
"Import in a new layer": "Import in a new layer",
|
||||||
"Imports all umap data, including layers and settings.": "Imports all umap data, including layers and settings.",
|
"Imports all umap data, including layers and settings.": "Imports all umap data, including layers and settings.",
|
||||||
|
@ -203,14 +202,14 @@ const locale = {
|
||||||
"Labels are clickable": "Les etiquetes es poden fer clic",
|
"Labels are clickable": "Les etiquetes es poden fer clic",
|
||||||
"Latest feature": "Darrera característica",
|
"Latest feature": "Darrera característica",
|
||||||
"Latitude": "Latitud",
|
"Latitude": "Latitud",
|
||||||
"Layer properties": "Layer properties",
|
"Layer properties": "Propietats de la capa",
|
||||||
"Layer": "Capa",
|
"Layer": "Capa",
|
||||||
"Licence": "Llicència",
|
"Licence": "Llicència",
|
||||||
"licence": "llicència",
|
"licence": "llicència",
|
||||||
"Limit bounds": "Límits",
|
"Limit bounds": "Límits",
|
||||||
"Link to view the map": "Enllaç per veure el mapa",
|
"Link to view the map": "Enllaç per veure el mapa",
|
||||||
"Link to…": "Link to…",
|
"Link to…": "Link to…",
|
||||||
"Link with text: [[https://example.com|text of the link]]": "Link with text: [[https://example.com|text of the link]]",
|
"Link with text: [[https://example.com|text of the link]]": "Enllaç amb text: [[https://example.com|text de l'enllaç]]",
|
||||||
"Long credits": "Crèdits llargs",
|
"Long credits": "Crèdits llargs",
|
||||||
"Longitude": "Longitud",
|
"Longitude": "Longitud",
|
||||||
"Make main shape": "Make main shape",
|
"Make main shape": "Make main shape",
|
||||||
|
@ -302,17 +301,17 @@ const locale = {
|
||||||
"Secret edit link:": "Secret edit link:",
|
"Secret edit link:": "Secret edit link:",
|
||||||
"See full screen": "Mostra-ho a pantalla completa",
|
"See full screen": "Mostra-ho a pantalla completa",
|
||||||
"See on OpenStreetMap": "See on OpenStreetMap",
|
"See on OpenStreetMap": "See on OpenStreetMap",
|
||||||
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
|
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Estableix-lo com a fals per ocultar aquesta capa de la presentació de diapositives, el navegador de dades, la navegació emergent...",
|
||||||
"settings": "settings",
|
"settings": "settings",
|
||||||
"Shape properties": "Shape properties",
|
"Shape properties": "Propietats de la forma",
|
||||||
"Share and download": "Comparteix i baixa",
|
"Share and download": "Comparteix i baixa",
|
||||||
"Share this link to open a customized map view": "Comparteix aquest enllaç per obrir una vista de mapa personalitzada",
|
"Share this link to open a customized map view": "Comparteix aquest enllaç per obrir una vista de mapa personalitzada",
|
||||||
"Short credits": "Crèdits curts",
|
"Short credits": "Crèdits curts",
|
||||||
"Short link": "Enllaç curt",
|
"Short link": "Enllaç curt",
|
||||||
"Show this layer in the caption": "Show this layer in the caption",
|
"Show this layer in the caption": "Mostra aquesta capa a la llegenda",
|
||||||
"Show/hide layer": "Mostra/amaga la capa",
|
"Show/hide layer": "Mostra/amaga la capa",
|
||||||
"Side panel": "panell lateral",
|
"Side panel": "panell lateral",
|
||||||
"Simple link: [[https://example.com]]": "Simple link: [[https://example.com]]",
|
"Simple link: [[https://example.com]]": "Enllaç senzill: [[https://example.com]]",
|
||||||
"Simplify": "Simplificar",
|
"Simplify": "Simplificar",
|
||||||
"Skipping unknown geometry.type: {type}": "S'està ometent el tipus de geometria desconegut: {type}",
|
"Skipping unknown geometry.type: {type}": "S'està ometent el tipus de geometria desconegut: {type}",
|
||||||
"Slideshow": "Presentació",
|
"Slideshow": "Presentació",
|
||||||
|
@ -324,7 +323,7 @@ const locale = {
|
||||||
"Stop editing": "Atura l'edició",
|
"Stop editing": "Atura l'edició",
|
||||||
"Stop slideshow": "Atura la presentació",
|
"Stop slideshow": "Atura la presentació",
|
||||||
"Street": "Street",
|
"Street": "Street",
|
||||||
"stroke": "stroke",
|
"stroke": "línia",
|
||||||
"Supported scheme": "Esquema suportat",
|
"Supported scheme": "Esquema suportat",
|
||||||
"Supported variables that will be dynamically replaced": "Supported variables that will be dynamically replaced",
|
"Supported variables that will be dynamically replaced": "Supported variables that will be dynamically replaced",
|
||||||
"Symbol": "Symbol",
|
"Symbol": "Symbol",
|
||||||
|
@ -365,7 +364,7 @@ const locale = {
|
||||||
"Visibility: {status}": "Visibilitat: {status}",
|
"Visibility: {status}": "Visibilitat: {status}",
|
||||||
"weight": "pes",
|
"weight": "pes",
|
||||||
"Where do we go from here?": "On anem des d'aquí?",
|
"Where do we go from here?": "On anem des d'aquí?",
|
||||||
"Whether to display or not polygons paths.": "Whether to display or not polygons paths.",
|
"Whether to display or not polygons paths.": "Si es mostren o no els camins de polígons.",
|
||||||
"Whether to fill polygons with color.": "emplenar polígons amb color..",
|
"Whether to fill polygons with color.": "emplenar polígons amb color..",
|
||||||
"Who can edit \"{layer}\"": "Qui pot editar \"{layer}\"",
|
"Who can edit \"{layer}\"": "Qui pot editar \"{layer}\"",
|
||||||
"Who can edit": "Qui pot editar",
|
"Who can edit": "Qui pot editar",
|
||||||
|
@ -503,7 +502,7 @@ const locale = {
|
||||||
"Type editor's username": "Escriviu el nom d'usuari de l'editor",
|
"Type editor's username": "Escriviu el nom d'usuari de l'editor",
|
||||||
"Map": "Mapa",
|
"Map": "Mapa",
|
||||||
"Manage collaborators": "Gestiona els col·laboradors",
|
"Manage collaborators": "Gestiona els col·laboradors",
|
||||||
"show/hide all layers": "show/hide all layers",
|
"show/hide all layers": "mostrar/ocultar totes les capes",
|
||||||
"zoom to data extent": "zoom to data extent",
|
"zoom to data extent": "zoom to data extent",
|
||||||
"download visible data": "download visible data",
|
"download visible data": "download visible data",
|
||||||
"Import helpers": "Import helpers",
|
"Import helpers": "Import helpers",
|
||||||
|
@ -534,13 +533,17 @@ const locale = {
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Cancel last edit",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Redo last edit",
|
||||||
"Links": "Links",
|
"Links": "Links",
|
||||||
"Images": "Images",
|
"Images": "Imatges",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ca", locale)
|
L.registerLocale("ca", locale)
|
||||||
L.setLocale("ca")
|
L.setLocale("ca")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Petició proxy en memòria cau",
|
"Cache proxied request": "Petició proxy en memòria cau",
|
||||||
"Caption": "Llegenda",
|
"Caption": "Llegenda",
|
||||||
"Center map on your location": "Centra el mapa a la vostra ubicació",
|
"Center map on your location": "Centra el mapa a la vostra ubicació",
|
||||||
"Change map background": "Canvia el fons del mapa",
|
|
||||||
"Change tilelayers": "Canvia les capes de tessel·les",
|
"Change tilelayers": "Canvia les capes de tessel·les",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Trieu el format de dades",
|
"Choose the data format": "Trieu el format de dades",
|
||||||
|
@ -85,7 +84,7 @@
|
||||||
"Custom background": "Fons personalitzat",
|
"Custom background": "Fons personalitzat",
|
||||||
"Custom overlay": "Superposició personalitzada",
|
"Custom overlay": "Superposició personalitzada",
|
||||||
"dash array": "matriu de guions",
|
"dash array": "matriu de guions",
|
||||||
"Data is browsable": "Data is browsable",
|
"Data is browsable": "Les dades es poden navegar",
|
||||||
"Datalayers": "Capes de dades",
|
"Datalayers": "Capes de dades",
|
||||||
"Default interaction options": "Opcions d'interacció predeterminades",
|
"Default interaction options": "Opcions d'interacció predeterminades",
|
||||||
"Default properties": "Propietats predeterminades",
|
"Default properties": "Propietats predeterminades",
|
||||||
|
@ -177,12 +176,12 @@
|
||||||
"Icon shape": "forma de la icona",
|
"Icon shape": "forma de la icona",
|
||||||
"Icon symbol": "Imatge de la icona",
|
"Icon symbol": "Imatge de la icona",
|
||||||
"If false, the polygon or line will act as a part of the underlying map.": "If false, the polygon or line will act as a part of the underlying map.",
|
"If false, the polygon or line will act as a part of the underlying map.": "If false, the polygon or line will act as a part of the underlying map.",
|
||||||
"Iframe with custom height (in px): {{{https://iframe.url.com|height}}}": "Iframe with custom height (in px): {{{https://iframe.url.com|height}}}",
|
"Iframe with custom height (in px): {{{https://iframe.url.com|height}}}": "Iframe amb alçada personalitzada (height en px): {{{https://iframe.url.com|height}}}",
|
||||||
"Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}": "Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}",
|
"Iframe with custom height and width (in px): {{{https://iframe.url.com|height*width}}}": "Iframe amb alçada i amplada personalitzada (height i width en px): {{{https://iframe.url.com|height*width}}}",
|
||||||
"iframe": "iframe",
|
"iframe": "iframe",
|
||||||
"Iframe: {{{https://iframe.url.com}}}": "Iframe: {{{https://iframe.url.com}}}",
|
"Iframe: {{{https://iframe.url.com}}}": "Iframe: {{{https://iframe.url.com}}}",
|
||||||
"Image with custom width (in px): {{https://image.url.com|width}}": "Image with custom width (in px): {{https://image.url.com|width}}",
|
"Image with custom width (in px): {{https://image.url.com|width}}": "Imatge amb amplada personalitzada (width en px): {{https://image.url.com|width}}",
|
||||||
"Image: {{https://image.url.com}}": "Image: {{https://image.url.com}}",
|
"Image: {{https://image.url.com}}": "Imatge: {{https://image.url.com}}",
|
||||||
"Import data": "Importa dades",
|
"Import data": "Importa dades",
|
||||||
"Import in a new layer": "Import in a new layer",
|
"Import in a new layer": "Import in a new layer",
|
||||||
"Imports all umap data, including layers and settings.": "Imports all umap data, including layers and settings.",
|
"Imports all umap data, including layers and settings.": "Imports all umap data, including layers and settings.",
|
||||||
|
@ -203,14 +202,14 @@
|
||||||
"Labels are clickable": "Les etiquetes es poden fer clic",
|
"Labels are clickable": "Les etiquetes es poden fer clic",
|
||||||
"Latest feature": "Darrera característica",
|
"Latest feature": "Darrera característica",
|
||||||
"Latitude": "Latitud",
|
"Latitude": "Latitud",
|
||||||
"Layer properties": "Layer properties",
|
"Layer properties": "Propietats de la capa",
|
||||||
"Layer": "Capa",
|
"Layer": "Capa",
|
||||||
"Licence": "Llicència",
|
"Licence": "Llicència",
|
||||||
"licence": "llicència",
|
"licence": "llicència",
|
||||||
"Limit bounds": "Límits",
|
"Limit bounds": "Límits",
|
||||||
"Link to view the map": "Enllaç per veure el mapa",
|
"Link to view the map": "Enllaç per veure el mapa",
|
||||||
"Link to…": "Link to…",
|
"Link to…": "Link to…",
|
||||||
"Link with text: [[https://example.com|text of the link]]": "Link with text: [[https://example.com|text of the link]]",
|
"Link with text: [[https://example.com|text of the link]]": "Enllaç amb text: [[https://example.com|text de l'enllaç]]",
|
||||||
"Long credits": "Crèdits llargs",
|
"Long credits": "Crèdits llargs",
|
||||||
"Longitude": "Longitud",
|
"Longitude": "Longitud",
|
||||||
"Make main shape": "Make main shape",
|
"Make main shape": "Make main shape",
|
||||||
|
@ -302,17 +301,17 @@
|
||||||
"Secret edit link:": "Secret edit link:",
|
"Secret edit link:": "Secret edit link:",
|
||||||
"See full screen": "Mostra-ho a pantalla completa",
|
"See full screen": "Mostra-ho a pantalla completa",
|
||||||
"See on OpenStreetMap": "See on OpenStreetMap",
|
"See on OpenStreetMap": "See on OpenStreetMap",
|
||||||
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…",
|
"Set it to false to hide this layer from the slideshow, the data browser, the popup navigation…": "Estableix-lo com a fals per ocultar aquesta capa de la presentació de diapositives, el navegador de dades, la navegació emergent...",
|
||||||
"settings": "settings",
|
"settings": "settings",
|
||||||
"Shape properties": "Shape properties",
|
"Shape properties": "Propietats de la forma",
|
||||||
"Share and download": "Comparteix i baixa",
|
"Share and download": "Comparteix i baixa",
|
||||||
"Share this link to open a customized map view": "Comparteix aquest enllaç per obrir una vista de mapa personalitzada",
|
"Share this link to open a customized map view": "Comparteix aquest enllaç per obrir una vista de mapa personalitzada",
|
||||||
"Short credits": "Crèdits curts",
|
"Short credits": "Crèdits curts",
|
||||||
"Short link": "Enllaç curt",
|
"Short link": "Enllaç curt",
|
||||||
"Show this layer in the caption": "Show this layer in the caption",
|
"Show this layer in the caption": "Mostra aquesta capa a la llegenda",
|
||||||
"Show/hide layer": "Mostra/amaga la capa",
|
"Show/hide layer": "Mostra/amaga la capa",
|
||||||
"Side panel": "panell lateral",
|
"Side panel": "panell lateral",
|
||||||
"Simple link: [[https://example.com]]": "Simple link: [[https://example.com]]",
|
"Simple link: [[https://example.com]]": "Enllaç senzill: [[https://example.com]]",
|
||||||
"Simplify": "Simplificar",
|
"Simplify": "Simplificar",
|
||||||
"Skipping unknown geometry.type: {type}": "S'està ometent el tipus de geometria desconegut: {type}",
|
"Skipping unknown geometry.type: {type}": "S'està ometent el tipus de geometria desconegut: {type}",
|
||||||
"Slideshow": "Presentació",
|
"Slideshow": "Presentació",
|
||||||
|
@ -324,7 +323,7 @@
|
||||||
"Stop editing": "Atura l'edició",
|
"Stop editing": "Atura l'edició",
|
||||||
"Stop slideshow": "Atura la presentació",
|
"Stop slideshow": "Atura la presentació",
|
||||||
"Street": "Street",
|
"Street": "Street",
|
||||||
"stroke": "stroke",
|
"stroke": "línia",
|
||||||
"Supported scheme": "Esquema suportat",
|
"Supported scheme": "Esquema suportat",
|
||||||
"Supported variables that will be dynamically replaced": "Supported variables that will be dynamically replaced",
|
"Supported variables that will be dynamically replaced": "Supported variables that will be dynamically replaced",
|
||||||
"Symbol": "Symbol",
|
"Symbol": "Symbol",
|
||||||
|
@ -365,7 +364,7 @@
|
||||||
"Visibility: {status}": "Visibilitat: {status}",
|
"Visibility: {status}": "Visibilitat: {status}",
|
||||||
"weight": "pes",
|
"weight": "pes",
|
||||||
"Where do we go from here?": "On anem des d'aquí?",
|
"Where do we go from here?": "On anem des d'aquí?",
|
||||||
"Whether to display or not polygons paths.": "Whether to display or not polygons paths.",
|
"Whether to display or not polygons paths.": "Si es mostren o no els camins de polígons.",
|
||||||
"Whether to fill polygons with color.": "emplenar polígons amb color..",
|
"Whether to fill polygons with color.": "emplenar polígons amb color..",
|
||||||
"Who can edit \"{layer}\"": "Qui pot editar \"{layer}\"",
|
"Who can edit \"{layer}\"": "Qui pot editar \"{layer}\"",
|
||||||
"Who can edit": "Qui pot editar",
|
"Who can edit": "Qui pot editar",
|
||||||
|
@ -503,7 +502,7 @@
|
||||||
"Type editor's username": "Escriviu el nom d'usuari de l'editor",
|
"Type editor's username": "Escriviu el nom d'usuari de l'editor",
|
||||||
"Map": "Mapa",
|
"Map": "Mapa",
|
||||||
"Manage collaborators": "Gestiona els col·laboradors",
|
"Manage collaborators": "Gestiona els col·laboradors",
|
||||||
"show/hide all layers": "show/hide all layers",
|
"show/hide all layers": "mostrar/ocultar totes les capes",
|
||||||
"zoom to data extent": "zoom to data extent",
|
"zoom to data extent": "zoom to data extent",
|
||||||
"download visible data": "download visible data",
|
"download visible data": "download visible data",
|
||||||
"Import helpers": "Import helpers",
|
"Import helpers": "Import helpers",
|
||||||
|
@ -534,11 +533,15 @@
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Cancel last edit",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Redo last edit",
|
||||||
"Links": "Links",
|
"Links": "Links",
|
||||||
"Images": "Images",
|
"Images": "Imatges",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Požadavek na zástupnou mezipaměť",
|
"Cache proxied request": "Požadavek na zástupnou mezipaměť",
|
||||||
"Caption": "Popisek",
|
"Caption": "Popisek",
|
||||||
"Center map on your location": "Přemístit se na mapě na vaši polohu",
|
"Center map on your location": "Přemístit se na mapě na vaši polohu",
|
||||||
"Change map background": "Změnit pozadí mapy",
|
|
||||||
"Change tilelayers": "Změnit pozadí mapy",
|
"Change tilelayers": "Změnit pozadí mapy",
|
||||||
"Change": "Změnit",
|
"Change": "Změnit",
|
||||||
"Choose the data format": "Vyberte formát dat",
|
"Choose the data format": "Vyberte formát dat",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("cs_CZ", locale)
|
L.registerLocale("cs_CZ", locale)
|
||||||
L.setLocale("cs_CZ")
|
L.setLocale("cs_CZ")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Požadavek na zástupnou mezipaměť",
|
"Cache proxied request": "Požadavek na zástupnou mezipaměť",
|
||||||
"Caption": "Popisek",
|
"Caption": "Popisek",
|
||||||
"Center map on your location": "Přemístit se na mapě na vaši polohu",
|
"Center map on your location": "Přemístit se na mapě na vaši polohu",
|
||||||
"Change map background": "Změnit pozadí mapy",
|
|
||||||
"Change tilelayers": "Změnit pozadí mapy",
|
"Change tilelayers": "Změnit pozadí mapy",
|
||||||
"Change": "Změnit",
|
"Change": "Změnit",
|
||||||
"Choose the data format": "Vyberte formát dat",
|
"Choose the data format": "Vyberte formát dat",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Forespørgsel i proxycache",
|
"Cache proxied request": "Forespørgsel i proxycache",
|
||||||
"Caption": "Billedtekst",
|
"Caption": "Billedtekst",
|
||||||
"Center map on your location": "Centrer kort på din placering",
|
"Center map on your location": "Centrer kort på din placering",
|
||||||
"Change map background": "Skift kortbaggrund",
|
|
||||||
"Change tilelayers": "Skift kortlag",
|
"Change tilelayers": "Skift kortlag",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Vælg dataformat",
|
"Choose the data format": "Vælg dataformat",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("da", locale)
|
L.registerLocale("da", locale)
|
||||||
L.setLocale("da")
|
L.setLocale("da")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Forespørgsel i proxycache",
|
"Cache proxied request": "Forespørgsel i proxycache",
|
||||||
"Caption": "Billedtekst",
|
"Caption": "Billedtekst",
|
||||||
"Center map on your location": "Centrer kort på din placering",
|
"Center map on your location": "Centrer kort på din placering",
|
||||||
"Change map background": "Skift kortbaggrund",
|
|
||||||
"Change tilelayers": "Skift kortlag",
|
"Change tilelayers": "Skift kortlag",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Vælg dataformat",
|
"Choose the data format": "Vælg dataformat",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Proxycache-Anfrage",
|
"Cache proxied request": "Proxycache-Anfrage",
|
||||||
"Caption": "Überschrift",
|
"Caption": "Überschrift",
|
||||||
"Center map on your location": "Die Karte auf deinen Standort ausrichten",
|
"Center map on your location": "Die Karte auf deinen Standort ausrichten",
|
||||||
"Change map background": "Hintergrundkarte ändern",
|
|
||||||
"Change tilelayers": "Kachelebenen ändern",
|
"Change tilelayers": "Kachelebenen ändern",
|
||||||
"Change": "Ändern",
|
"Change": "Ändern",
|
||||||
"Choose the data format": "Wähle das Datenformat",
|
"Choose the data format": "Wähle das Datenformat",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("de", locale)
|
L.registerLocale("de", locale)
|
||||||
L.setLocale("de")
|
L.setLocale("de")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Proxycache-Anfrage",
|
"Cache proxied request": "Proxycache-Anfrage",
|
||||||
"Caption": "Überschrift",
|
"Caption": "Überschrift",
|
||||||
"Center map on your location": "Die Karte auf deinen Standort ausrichten",
|
"Center map on your location": "Die Karte auf deinen Standort ausrichten",
|
||||||
"Change map background": "Hintergrundkarte ändern",
|
|
||||||
"Change tilelayers": "Kachelebenen ändern",
|
"Change tilelayers": "Kachelebenen ändern",
|
||||||
"Change": "Ändern",
|
"Change": "Ändern",
|
||||||
"Choose the data format": "Wähle das Datenformat",
|
"Choose the data format": "Wähle das Datenformat",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Αίτημα μεσολάβησης προσωρινής μνήμης",
|
"Cache proxied request": "Αίτημα μεσολάβησης προσωρινής μνήμης",
|
||||||
"Caption": "Λεζάντα",
|
"Caption": "Λεζάντα",
|
||||||
"Center map on your location": "Κεντράρισμα του χάρτη στην τοποθεσία σας",
|
"Center map on your location": "Κεντράρισμα του χάρτη στην τοποθεσία σας",
|
||||||
"Change map background": "Αλλαγή υποβάθρου του χάρτη",
|
|
||||||
"Change tilelayers": "Αλλαγή χαρτογραφικού υπόβαθρου",
|
"Change tilelayers": "Αλλαγή χαρτογραφικού υπόβαθρου",
|
||||||
"Change": "Αλλαγή",
|
"Change": "Αλλαγή",
|
||||||
"Choose the data format": "Επιλογή μορφοποίησης δεδομένων",
|
"Choose the data format": "Επιλογή μορφοποίησης δεδομένων",
|
||||||
|
@ -434,111 +433,117 @@ const locale = {
|
||||||
"key~value (eg. name~Grisy)": "κλειδί~τιμή (π.χ. όνομα~Grisy)",
|
"key~value (eg. name~Grisy)": "κλειδί~τιμή (π.χ. όνομα~Grisy)",
|
||||||
"key=\"value|value2\" (eg. name=\"Paris|Berlin\")": "κλειδί=\"value|value2\" (eg. όνομα=\"Παρίσι|Βερολίνο\")",
|
"key=\"value|value2\" (eg. name=\"Paris|Berlin\")": "κλειδί=\"value|value2\" (eg. όνομα=\"Παρίσι|Βερολίνο\")",
|
||||||
"More info about Overpass syntax": "Περισσότερες πληροφορίες σχετικά με τη σύνταξη της Υπέρβασης",
|
"More info about Overpass syntax": "Περισσότερες πληροφορίες σχετικά με τη σύνταξη της Υπέρβασης",
|
||||||
"For more complex needs, see": "For more complex needs, see",
|
"For more complex needs, see": "Για πιο σύνθετες ανάγκες, βλ.",
|
||||||
"Choose data": "Choose data",
|
"Choose data": "Επιλογή δεδομένων",
|
||||||
"Choose the format": "Choose the format",
|
"Choose the format": "Επιλογή μορφοποίησης",
|
||||||
"Choose the layer": "Choose the layer",
|
"Choose the layer": "Επιλογή επιπέδου",
|
||||||
"Layer name": "Layer name",
|
"Layer name": "Όνομα επιπέδου",
|
||||||
"Choose import mode": "Choose import mode",
|
"Choose import mode": "Επιλογή τρόπου εισαγωγής",
|
||||||
"Copy into the layer": "Copy into the layer",
|
"Copy into the layer": "Αντιγραφή στο επίπεδο",
|
||||||
"Link to the layer as remote data": "Link to the layer as remote data",
|
"Link to the layer as remote data": "Σύνδεση με το επίπεδο ως απομακρυσμένα δεδομένα",
|
||||||
"Condition": "Συνθήκη",
|
"Condition": "Συνθήκη",
|
||||||
"key=value or key!=value": "key=value ή key!=value",
|
"key=value or key!=value": "key=value ή key!=value",
|
||||||
"Are you sure you want to delete this rule?": "Θέλετε σίγουρα να διαγραφεί αυτός ο κανόνας;",
|
"Are you sure you want to delete this rule?": "Θέλετε σίγουρα να διαγραφεί αυτός ο κανόνας;",
|
||||||
"empty rule": "κενός κανόνας",
|
"empty rule": "κενός κανόνας",
|
||||||
"Conditional style rules": "Κανόνες μορφοποίησης υπό όρους",
|
"Conditional style rules": "Κανόνες μορφοποίησης υπό όρους",
|
||||||
"Add rule": "Προσθήκη κανόνα",
|
"Add rule": "Προσθήκη κανόνα",
|
||||||
"Browser: data": "Browser: data",
|
"Browser: data": "Περιηγητής: δεδομένα",
|
||||||
"Browser: layers": "Browser: layers",
|
"Browser: layers": "Περιηγητής: επίπεδα",
|
||||||
"Browser: filters": "Browser: filters",
|
"Browser: filters": "Περιηγητής: φίλτρα",
|
||||||
"Enable real-time collaboration": "Enable real-time collaboration",
|
"Enable real-time collaboration": "Ενεργοποίηση συνεργασίας σε πραγματικό χρόνο",
|
||||||
"✅ Copied!": "✅ Αντιγράφηκε!",
|
"✅ Copied!": "✅ Αντιγράφηκε!",
|
||||||
"Choose a dataset": "Choose a dataset",
|
"Choose a dataset": "Επιλογή συνόλου δεδομένων",
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Επιλογή αυτού του συνόλου δεδομένων",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: θεματικά δεδομένα από το OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Επιλογή θέματος",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
"Choose this data": "Επιλογή αυτών των δεδομένων",
|
||||||
"Choose this data": "Choose this data",
|
|
||||||
"Search admin boundary": "Αναζήτηση διοικητικού ορίου",
|
"Search admin boundary": "Αναζήτηση διοικητικού ορίου",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Επιλέξτε πρώτα ένα θέμα και ένα όριο.",
|
||||||
"Expression": "Έκφραση",
|
"Expression": "Έκφραση",
|
||||||
"Geometry mode": "Λειτουργία γεωμετρίας",
|
"Geometry mode": "Λειτουργία γεωμετρίας",
|
||||||
"Only geometry centers": "Only geometry centers",
|
"Only geometry centers": "Μόνο γεωμετρικά κέντρα",
|
||||||
"Search area": "Search area",
|
"Search area": "Περιοχή αναζήτησης",
|
||||||
"Type area name, or let empty to load data in current map view": "Type area name, or let empty to load data in current map view",
|
"Type area name, or let empty to load data in current map view": "Πληκτρολογήστε το όνομα της περιοχής ή αφήστε το κενό, για να φορτώσετε δεδομένα στην τρέχουσα προβολή χάρτη.",
|
||||||
"Data successfully imported!": "Data successfully imported!",
|
"Data successfully imported!": "Τα δεδομένα εισήχθησαν επιτυχώς!",
|
||||||
"Clear data": "Clear data",
|
"Clear data": "Εκκαθάριση δεδομένων",
|
||||||
"Remove layers": "Remove layers",
|
"Remove layers": "Αφαίρεση επιπέδων",
|
||||||
"Categorized": "Categorized",
|
"Categorized": "Κατηγοριοποιημένο",
|
||||||
"Alphabetical": "Alphabetical",
|
"Alphabetical": "Αλφαβητικά",
|
||||||
"Category property": "Category property",
|
"Category property": "Ιδιότητα κατηγορίας",
|
||||||
"Color palette": "Παλέτα χρωμάτων",
|
"Color palette": "Παλέτα χρωμάτων",
|
||||||
"Categories": "Κατηγορίες",
|
"Categories": "Κατηγορίες",
|
||||||
"Comma separated list of categories.": "Λίστα κατηγοριών χωρισμένες με κόμμα.",
|
"Comma separated list of categories.": "Λίστα κατηγοριών χωρισμένες με κόμμα.",
|
||||||
"Categories mode": "Λειτουργία κατηγοριών",
|
"Categories mode": "Λειτουργία κατηγοριών",
|
||||||
"Remove filter for this column": "Remove filter for this column",
|
"Remove filter for this column": "Αφαίρεση φίλτρου από αυτή τη στήλη",
|
||||||
"Add filter for this column": "Add filter for this column",
|
"Add filter for this column": "Προσθήκη φίλτρου από αυτή τη στήλη",
|
||||||
"Rename this column": "Rename this column",
|
"Rename this column": "Μετονομασία αυτής της στήλης",
|
||||||
"Delete this column": "Delete this column",
|
"Delete this column": "Διαγραφή αυτής της στήλης",
|
||||||
"Name “{name}” should not contain a dot.": "Name “{name}” should not contain a dot.",
|
"Name “{name}” should not contain a dot.": "Το όνομα \"{name}\" δεν πρέπει να περιέχει τελεία.",
|
||||||
"This name already exists: “{name}”": "This name already exists: “{name}”",
|
"This name already exists: “{name}”": "Αυτό το όνομα υπάρχει ήδη: \"{name}\"",
|
||||||
"Delete selected rows": "Delete selected rows",
|
"Delete selected rows": "Διαγραφή επιλεγμένων γραμμών",
|
||||||
"Found {count} rows. Are you sure you want to delete all?": "Found {count} rows. Are you sure you want to delete all?",
|
"Found {count} rows. Are you sure you want to delete all?": "Βρέθηκαν {count} σειρές. Είστε σίγουροι ότι θέλετε να τις διαγράψετε όλες;",
|
||||||
"Expression is empty": "Η έκφραση είναι κενή",
|
"Expression is empty": "Η έκφραση είναι κενή",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Cancel": "Άκυρο",
|
"Cancel": "Άκυρο",
|
||||||
"Attach map to a team": "Attach map to a team",
|
"Attach map to a team": "Σύνδεση χάρτη με μια ομάδα",
|
||||||
"Display the polygon inverted": "Display the polygon inverted",
|
"Display the polygon inverted": "Εμφανίζει το πολύγωνο ανεστραμμένο",
|
||||||
"Proportional circles": "Proportional circles",
|
"Proportional circles": "Αναλογικοί κύκλοι",
|
||||||
"Property name to compute circles": "Property name to compute circles",
|
"Property name to compute circles": "Όνομα ιδιότητας για τον υπολογισμό κύκλων",
|
||||||
"Min circle radius": "Min circle radius",
|
"Min circle radius": "Ελάχιστη ακτίνα κύκλου",
|
||||||
"Max circle radius": "Max circle radius",
|
"Max circle radius": "Μέγιστη ακτίνα κύκλου",
|
||||||
"Display the open browser control": "Display the open browser control",
|
"Display the open browser control": "Εμφάνιση του χειριστηρίου ανοικτού προγράμματος περιήγησης",
|
||||||
"Copy as GeoJSON": "Copy as GeoJSON",
|
"Copy as GeoJSON": "Αντιγραφή ως GeoJSON",
|
||||||
"Please zoom in to edit the geometry": "Please zoom in to edit the geometry",
|
"Please zoom in to edit the geometry": "Παρακαλώ εστιάστε για να επεξεργαστείτε τη γεωμετρία",
|
||||||
"New map": "New map",
|
"New map": "Νέος χάρτης",
|
||||||
"My maps": "My maps",
|
"My maps": "Οι χάρτες μου",
|
||||||
"My teams": "My teams",
|
"My teams": "Οι ομάδες μου",
|
||||||
"My profile": "My profile",
|
"My profile": "Το προφίλ μου",
|
||||||
"Type new owner's username": "Type new owner's username",
|
"Type new owner's username": "Πληκτρολογήστε το όνομα χρήστη του νέου ιδιοκτήτη",
|
||||||
"Type editor's username": "Type editor's username",
|
"Type editor's username": "Πληκτρολογήστε το όνομα χρήστη του συντάκτη",
|
||||||
"Map": "Map",
|
"Map": "Χάρτης",
|
||||||
"Manage collaborators": "Manage collaborators",
|
"Manage collaborators": "Διαχείριση συνεργατών",
|
||||||
"show/hide all layers": "show/hide all layers",
|
"show/hide all layers": "εμφάνιση/απόκρυψη όλων των επιπέδων",
|
||||||
"zoom to data extent": "zoom to data extent",
|
"zoom to data extent": "εστίαση στην έκταση των δεδομένων",
|
||||||
"download visible data": "download visible data",
|
"download visible data": "λήψη ορατών δεδομένων",
|
||||||
"Import helpers": "Import helpers",
|
"Import helpers": "Βοηθοί εισαγωγής",
|
||||||
"Import helpers will fill the URL field for you.": "Import helpers will fill the URL field for you.",
|
"Import helpers will fill the URL field for you.": "Οι βοηθοί εισαγωγής θα συμπληρώσουν το πεδίο URL για εσάς.",
|
||||||
"Wikipedia": "Wikipedia",
|
"Wikipedia": "Wikipedia",
|
||||||
"Save draft": "Save draft",
|
"Save draft": "Αποθήκευση προσχεδίου",
|
||||||
"No data has been found for import": "No data has been found for import",
|
"No data has been found for import": "Δεν βρέθηκαν δεδομένα για την εισαγωγή",
|
||||||
"Successfully imported {count} feature(s)": "Successfully imported {count} feature(s)",
|
"Successfully imported {count} feature(s)": "Εισήχθησαν επιτυχώς {count} χαρακτηριστικό(ά)",
|
||||||
"Disconnected": "Disconnected",
|
"Disconnected": "Αποσυνδεδεμένο",
|
||||||
"You must be logged in": "You must be logged in",
|
"You must be logged in": "Πρέπει να συνδεθείτε",
|
||||||
"on hover": "on hover",
|
"on hover": "στην αιώρηση",
|
||||||
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Cannot load remote data for layer \"{layer}\" with url \"{url}\"",
|
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Δεν είναι δυνατή η φόρτωση απομακρυσμένων δεδομένων για το επίπεδο \"{layer}\" με url \"{url}\"",
|
||||||
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Cannot parse remote data for layer \"{layer}\" with url \"{url}\"",
|
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Δεν είναι δυνατή η ανάλυση απομακρυσμένων δεδομένων για το επίπεδο \"{layer}\" με url \"{url}\"",
|
||||||
"Import failed: invalid data": "Import failed: invalid data",
|
"Import failed: invalid data": "Η εισαγωγή απέτυχε: μη έγκυρα δεδομένα",
|
||||||
"Anonymous": "Anonymous",
|
"Anonymous": "Ανώνυμος",
|
||||||
"created at {date}": "created at {date}",
|
"created at {date}": "δημιουργήθηκε {ημερομηνία}",
|
||||||
"modified at {date}": "modified at {date}",
|
"modified at {date}": "τροποποιήθηκε {ημερομηνία}",
|
||||||
"Default zoom": "Default zoom",
|
"Default zoom": "Προκαθορισμένη εστίαση",
|
||||||
"Default latitude": "Default latitude",
|
"Default latitude": "Προκαθορισμένο γεωγραφικό πλάτος",
|
||||||
"Default longitude": "Default longitude",
|
"Default longitude": "Προκαθορισμένο γεωγραφικό μήκος",
|
||||||
"Edit map default view": "Edit map default view",
|
"Edit map default view": "Επεξεργασία προεπιλεγμένης προβολής χάρτη",
|
||||||
"Use current center and zoom": "Use current center and zoom",
|
"Use current center and zoom": "Χρήση τρέχοντος κέντρου και εστίασης",
|
||||||
"Layer permalink": "Layer permalink",
|
"Layer permalink": "Mόνιμο url του επιπέδου",
|
||||||
"Back to home": "Back to home",
|
"Back to home": "Επιστροφή στην αρχική σελίδα",
|
||||||
"Home logo": "Home logo",
|
"Home logo": "Λογότυπο αρχικής σελίδας",
|
||||||
"Add this geometry to my map": "Add this geometry to my map",
|
"Add this geometry to my map": "Προσθήκη αυτής της γεωμετρίας στο χάρτη μου",
|
||||||
"Add this place to my map": "Add this place to my map",
|
"Add this place to my map": "Προσθήκη αυτής της τοποθεσίας στον χάρτη μου",
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Ακύρωση τελευταίας επεξεργασίας",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Αναίρεση ακύρωσης τελευταίας επεξεργασίας",
|
||||||
"Links": "Links",
|
"Links": "Σύνδεσμοι",
|
||||||
"Images": "Images",
|
"Images": "Εικόνες",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Ετικέτες",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Γεωκωδικοποίηση",
|
||||||
|
"Display the back to home icon": "Εμφάνιση του εικονιδίου επιστροφής στην αρχική σελίδα",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Θέλετε να εμφανίσετε τον διακόπτη επιπέδων στη γραμμή λεζάντας;",
|
||||||
|
"Simplify all geometries to points": "Απλοποίηση όλων των γεωμετριών σε σημεία",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("el", locale)
|
L.registerLocale("el", locale)
|
||||||
L.setLocale("el")
|
L.setLocale("el")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Αίτημα μεσολάβησης προσωρινής μνήμης",
|
"Cache proxied request": "Αίτημα μεσολάβησης προσωρινής μνήμης",
|
||||||
"Caption": "Λεζάντα",
|
"Caption": "Λεζάντα",
|
||||||
"Center map on your location": "Κεντράρισμα του χάρτη στην τοποθεσία σας",
|
"Center map on your location": "Κεντράρισμα του χάρτη στην τοποθεσία σας",
|
||||||
"Change map background": "Αλλαγή υποβάθρου του χάρτη",
|
|
||||||
"Change tilelayers": "Αλλαγή χαρτογραφικού υπόβαθρου",
|
"Change tilelayers": "Αλλαγή χαρτογραφικού υπόβαθρου",
|
||||||
"Change": "Αλλαγή",
|
"Change": "Αλλαγή",
|
||||||
"Choose the data format": "Επιλογή μορφοποίησης δεδομένων",
|
"Choose the data format": "Επιλογή μορφοποίησης δεδομένων",
|
||||||
|
@ -434,109 +433,115 @@
|
||||||
"key~value (eg. name~Grisy)": "κλειδί~τιμή (π.χ. όνομα~Grisy)",
|
"key~value (eg. name~Grisy)": "κλειδί~τιμή (π.χ. όνομα~Grisy)",
|
||||||
"key=\"value|value2\" (eg. name=\"Paris|Berlin\")": "κλειδί=\"value|value2\" (eg. όνομα=\"Παρίσι|Βερολίνο\")",
|
"key=\"value|value2\" (eg. name=\"Paris|Berlin\")": "κλειδί=\"value|value2\" (eg. όνομα=\"Παρίσι|Βερολίνο\")",
|
||||||
"More info about Overpass syntax": "Περισσότερες πληροφορίες σχετικά με τη σύνταξη της Υπέρβασης",
|
"More info about Overpass syntax": "Περισσότερες πληροφορίες σχετικά με τη σύνταξη της Υπέρβασης",
|
||||||
"For more complex needs, see": "For more complex needs, see",
|
"For more complex needs, see": "Για πιο σύνθετες ανάγκες, βλ.",
|
||||||
"Choose data": "Choose data",
|
"Choose data": "Επιλογή δεδομένων",
|
||||||
"Choose the format": "Choose the format",
|
"Choose the format": "Επιλογή μορφοποίησης",
|
||||||
"Choose the layer": "Choose the layer",
|
"Choose the layer": "Επιλογή επιπέδου",
|
||||||
"Layer name": "Layer name",
|
"Layer name": "Όνομα επιπέδου",
|
||||||
"Choose import mode": "Choose import mode",
|
"Choose import mode": "Επιλογή τρόπου εισαγωγής",
|
||||||
"Copy into the layer": "Copy into the layer",
|
"Copy into the layer": "Αντιγραφή στο επίπεδο",
|
||||||
"Link to the layer as remote data": "Link to the layer as remote data",
|
"Link to the layer as remote data": "Σύνδεση με το επίπεδο ως απομακρυσμένα δεδομένα",
|
||||||
"Condition": "Συνθήκη",
|
"Condition": "Συνθήκη",
|
||||||
"key=value or key!=value": "key=value ή key!=value",
|
"key=value or key!=value": "key=value ή key!=value",
|
||||||
"Are you sure you want to delete this rule?": "Θέλετε σίγουρα να διαγραφεί αυτός ο κανόνας;",
|
"Are you sure you want to delete this rule?": "Θέλετε σίγουρα να διαγραφεί αυτός ο κανόνας;",
|
||||||
"empty rule": "κενός κανόνας",
|
"empty rule": "κενός κανόνας",
|
||||||
"Conditional style rules": "Κανόνες μορφοποίησης υπό όρους",
|
"Conditional style rules": "Κανόνες μορφοποίησης υπό όρους",
|
||||||
"Add rule": "Προσθήκη κανόνα",
|
"Add rule": "Προσθήκη κανόνα",
|
||||||
"Browser: data": "Browser: data",
|
"Browser: data": "Περιηγητής: δεδομένα",
|
||||||
"Browser: layers": "Browser: layers",
|
"Browser: layers": "Περιηγητής: επίπεδα",
|
||||||
"Browser: filters": "Browser: filters",
|
"Browser: filters": "Περιηγητής: φίλτρα",
|
||||||
"Enable real-time collaboration": "Enable real-time collaboration",
|
"Enable real-time collaboration": "Ενεργοποίηση συνεργασίας σε πραγματικό χρόνο",
|
||||||
"✅ Copied!": "✅ Αντιγράφηκε!",
|
"✅ Copied!": "✅ Αντιγράφηκε!",
|
||||||
"Choose a dataset": "Choose a dataset",
|
"Choose a dataset": "Επιλογή συνόλου δεδομένων",
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Επιλογή αυτού του συνόλου δεδομένων",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: θεματικά δεδομένα από το OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Επιλογή θέματος",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
"Choose this data": "Επιλογή αυτών των δεδομένων",
|
||||||
"Choose this data": "Choose this data",
|
|
||||||
"Search admin boundary": "Αναζήτηση διοικητικού ορίου",
|
"Search admin boundary": "Αναζήτηση διοικητικού ορίου",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Επιλέξτε πρώτα ένα θέμα και ένα όριο.",
|
||||||
"Expression": "Έκφραση",
|
"Expression": "Έκφραση",
|
||||||
"Geometry mode": "Λειτουργία γεωμετρίας",
|
"Geometry mode": "Λειτουργία γεωμετρίας",
|
||||||
"Only geometry centers": "Only geometry centers",
|
"Only geometry centers": "Μόνο γεωμετρικά κέντρα",
|
||||||
"Search area": "Search area",
|
"Search area": "Περιοχή αναζήτησης",
|
||||||
"Type area name, or let empty to load data in current map view": "Type area name, or let empty to load data in current map view",
|
"Type area name, or let empty to load data in current map view": "Πληκτρολογήστε το όνομα της περιοχής ή αφήστε το κενό, για να φορτώσετε δεδομένα στην τρέχουσα προβολή χάρτη.",
|
||||||
"Data successfully imported!": "Data successfully imported!",
|
"Data successfully imported!": "Τα δεδομένα εισήχθησαν επιτυχώς!",
|
||||||
"Clear data": "Clear data",
|
"Clear data": "Εκκαθάριση δεδομένων",
|
||||||
"Remove layers": "Remove layers",
|
"Remove layers": "Αφαίρεση επιπέδων",
|
||||||
"Categorized": "Categorized",
|
"Categorized": "Κατηγοριοποιημένο",
|
||||||
"Alphabetical": "Alphabetical",
|
"Alphabetical": "Αλφαβητικά",
|
||||||
"Category property": "Category property",
|
"Category property": "Ιδιότητα κατηγορίας",
|
||||||
"Color palette": "Παλέτα χρωμάτων",
|
"Color palette": "Παλέτα χρωμάτων",
|
||||||
"Categories": "Κατηγορίες",
|
"Categories": "Κατηγορίες",
|
||||||
"Comma separated list of categories.": "Λίστα κατηγοριών χωρισμένες με κόμμα.",
|
"Comma separated list of categories.": "Λίστα κατηγοριών χωρισμένες με κόμμα.",
|
||||||
"Categories mode": "Λειτουργία κατηγοριών",
|
"Categories mode": "Λειτουργία κατηγοριών",
|
||||||
"Remove filter for this column": "Remove filter for this column",
|
"Remove filter for this column": "Αφαίρεση φίλτρου από αυτή τη στήλη",
|
||||||
"Add filter for this column": "Add filter for this column",
|
"Add filter for this column": "Προσθήκη φίλτρου από αυτή τη στήλη",
|
||||||
"Rename this column": "Rename this column",
|
"Rename this column": "Μετονομασία αυτής της στήλης",
|
||||||
"Delete this column": "Delete this column",
|
"Delete this column": "Διαγραφή αυτής της στήλης",
|
||||||
"Name “{name}” should not contain a dot.": "Name “{name}” should not contain a dot.",
|
"Name “{name}” should not contain a dot.": "Το όνομα \"{name}\" δεν πρέπει να περιέχει τελεία.",
|
||||||
"This name already exists: “{name}”": "This name already exists: “{name}”",
|
"This name already exists: “{name}”": "Αυτό το όνομα υπάρχει ήδη: \"{name}\"",
|
||||||
"Delete selected rows": "Delete selected rows",
|
"Delete selected rows": "Διαγραφή επιλεγμένων γραμμών",
|
||||||
"Found {count} rows. Are you sure you want to delete all?": "Found {count} rows. Are you sure you want to delete all?",
|
"Found {count} rows. Are you sure you want to delete all?": "Βρέθηκαν {count} σειρές. Είστε σίγουροι ότι θέλετε να τις διαγράψετε όλες;",
|
||||||
"Expression is empty": "Η έκφραση είναι κενή",
|
"Expression is empty": "Η έκφραση είναι κενή",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Cancel": "Άκυρο",
|
"Cancel": "Άκυρο",
|
||||||
"Attach map to a team": "Attach map to a team",
|
"Attach map to a team": "Σύνδεση χάρτη με μια ομάδα",
|
||||||
"Display the polygon inverted": "Display the polygon inverted",
|
"Display the polygon inverted": "Εμφανίζει το πολύγωνο ανεστραμμένο",
|
||||||
"Proportional circles": "Proportional circles",
|
"Proportional circles": "Αναλογικοί κύκλοι",
|
||||||
"Property name to compute circles": "Property name to compute circles",
|
"Property name to compute circles": "Όνομα ιδιότητας για τον υπολογισμό κύκλων",
|
||||||
"Min circle radius": "Min circle radius",
|
"Min circle radius": "Ελάχιστη ακτίνα κύκλου",
|
||||||
"Max circle radius": "Max circle radius",
|
"Max circle radius": "Μέγιστη ακτίνα κύκλου",
|
||||||
"Display the open browser control": "Display the open browser control",
|
"Display the open browser control": "Εμφάνιση του χειριστηρίου ανοικτού προγράμματος περιήγησης",
|
||||||
"Copy as GeoJSON": "Copy as GeoJSON",
|
"Copy as GeoJSON": "Αντιγραφή ως GeoJSON",
|
||||||
"Please zoom in to edit the geometry": "Please zoom in to edit the geometry",
|
"Please zoom in to edit the geometry": "Παρακαλώ εστιάστε για να επεξεργαστείτε τη γεωμετρία",
|
||||||
"New map": "New map",
|
"New map": "Νέος χάρτης",
|
||||||
"My maps": "My maps",
|
"My maps": "Οι χάρτες μου",
|
||||||
"My teams": "My teams",
|
"My teams": "Οι ομάδες μου",
|
||||||
"My profile": "My profile",
|
"My profile": "Το προφίλ μου",
|
||||||
"Type new owner's username": "Type new owner's username",
|
"Type new owner's username": "Πληκτρολογήστε το όνομα χρήστη του νέου ιδιοκτήτη",
|
||||||
"Type editor's username": "Type editor's username",
|
"Type editor's username": "Πληκτρολογήστε το όνομα χρήστη του συντάκτη",
|
||||||
"Map": "Map",
|
"Map": "Χάρτης",
|
||||||
"Manage collaborators": "Manage collaborators",
|
"Manage collaborators": "Διαχείριση συνεργατών",
|
||||||
"show/hide all layers": "show/hide all layers",
|
"show/hide all layers": "εμφάνιση/απόκρυψη όλων των επιπέδων",
|
||||||
"zoom to data extent": "zoom to data extent",
|
"zoom to data extent": "εστίαση στην έκταση των δεδομένων",
|
||||||
"download visible data": "download visible data",
|
"download visible data": "λήψη ορατών δεδομένων",
|
||||||
"Import helpers": "Import helpers",
|
"Import helpers": "Βοηθοί εισαγωγής",
|
||||||
"Import helpers will fill the URL field for you.": "Import helpers will fill the URL field for you.",
|
"Import helpers will fill the URL field for you.": "Οι βοηθοί εισαγωγής θα συμπληρώσουν το πεδίο URL για εσάς.",
|
||||||
"Wikipedia": "Wikipedia",
|
"Wikipedia": "Wikipedia",
|
||||||
"Save draft": "Save draft",
|
"Save draft": "Αποθήκευση προσχεδίου",
|
||||||
"No data has been found for import": "No data has been found for import",
|
"No data has been found for import": "Δεν βρέθηκαν δεδομένα για την εισαγωγή",
|
||||||
"Successfully imported {count} feature(s)": "Successfully imported {count} feature(s)",
|
"Successfully imported {count} feature(s)": "Εισήχθησαν επιτυχώς {count} χαρακτηριστικό(ά)",
|
||||||
"Disconnected": "Disconnected",
|
"Disconnected": "Αποσυνδεδεμένο",
|
||||||
"You must be logged in": "You must be logged in",
|
"You must be logged in": "Πρέπει να συνδεθείτε",
|
||||||
"on hover": "on hover",
|
"on hover": "στην αιώρηση",
|
||||||
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Cannot load remote data for layer \"{layer}\" with url \"{url}\"",
|
"Cannot load remote data for layer \"{layer}\" with url \"{url}\"": "Δεν είναι δυνατή η φόρτωση απομακρυσμένων δεδομένων για το επίπεδο \"{layer}\" με url \"{url}\"",
|
||||||
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Cannot parse remote data for layer \"{layer}\" with url \"{url}\"",
|
"Cannot parse remote data for layer \"{layer}\" with url \"{url}\"": "Δεν είναι δυνατή η ανάλυση απομακρυσμένων δεδομένων για το επίπεδο \"{layer}\" με url \"{url}\"",
|
||||||
"Import failed: invalid data": "Import failed: invalid data",
|
"Import failed: invalid data": "Η εισαγωγή απέτυχε: μη έγκυρα δεδομένα",
|
||||||
"Anonymous": "Anonymous",
|
"Anonymous": "Ανώνυμος",
|
||||||
"created at {date}": "created at {date}",
|
"created at {date}": "δημιουργήθηκε {ημερομηνία}",
|
||||||
"modified at {date}": "modified at {date}",
|
"modified at {date}": "τροποποιήθηκε {ημερομηνία}",
|
||||||
"Default zoom": "Default zoom",
|
"Default zoom": "Προκαθορισμένη εστίαση",
|
||||||
"Default latitude": "Default latitude",
|
"Default latitude": "Προκαθορισμένο γεωγραφικό πλάτος",
|
||||||
"Default longitude": "Default longitude",
|
"Default longitude": "Προκαθορισμένο γεωγραφικό μήκος",
|
||||||
"Edit map default view": "Edit map default view",
|
"Edit map default view": "Επεξεργασία προεπιλεγμένης προβολής χάρτη",
|
||||||
"Use current center and zoom": "Use current center and zoom",
|
"Use current center and zoom": "Χρήση τρέχοντος κέντρου και εστίασης",
|
||||||
"Layer permalink": "Layer permalink",
|
"Layer permalink": "Mόνιμο url του επιπέδου",
|
||||||
"Back to home": "Back to home",
|
"Back to home": "Επιστροφή στην αρχική σελίδα",
|
||||||
"Home logo": "Home logo",
|
"Home logo": "Λογότυπο αρχικής σελίδας",
|
||||||
"Add this geometry to my map": "Add this geometry to my map",
|
"Add this geometry to my map": "Προσθήκη αυτής της γεωμετρίας στο χάρτη μου",
|
||||||
"Add this place to my map": "Add this place to my map",
|
"Add this place to my map": "Προσθήκη αυτής της τοποθεσίας στον χάρτη μου",
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Ακύρωση τελευταίας επεξεργασίας",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Αναίρεση ακύρωσης τελευταίας επεξεργασίας",
|
||||||
"Links": "Links",
|
"Links": "Σύνδεσμοι",
|
||||||
"Images": "Images",
|
"Images": "Εικόνες",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Ετικέτες",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Γεωκωδικοποίηση",
|
||||||
|
"Display the back to home icon": "Εμφάνιση του εικονιδίου επιστροφής στην αρχική σελίδα",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Θέλετε να εμφανίσετε τον διακόπτη επιπέδων στη γραμμή λεζάντας;",
|
||||||
|
"Simplify all geometries to points": "Απλοποίηση όλων των γεωμετριών σε σημεία",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("en", locale)
|
L.registerLocale("en", locale)
|
||||||
L.setLocale("en")
|
L.setLocale("en")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change basemap",
|
|
||||||
"Change tilelayers": "Set map background",
|
"Change tilelayers": "Set map background",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose...",
|
"Choose the data format": "Choose...",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Almacenar en caché la solicitud de proxy",
|
"Cache proxied request": "Almacenar en caché la solicitud de proxy",
|
||||||
"Caption": "Leyenda",
|
"Caption": "Leyenda",
|
||||||
"Center map on your location": "Centrar el mapa en tu ubicación",
|
"Center map on your location": "Centrar el mapa en tu ubicación",
|
||||||
"Change map background": "Cambiar el fondo del mapa",
|
|
||||||
"Change tilelayers": "Cambiar capas de teselas",
|
"Change tilelayers": "Cambiar capas de teselas",
|
||||||
"Change": "Cambiar",
|
"Change": "Cambiar",
|
||||||
"Choose the data format": "Elegir el formato de datos",
|
"Choose the data format": "Elegir el formato de datos",
|
||||||
|
@ -526,21 +525,25 @@ const locale = {
|
||||||
"Default longitude": "Longitud predeterminada",
|
"Default longitude": "Longitud predeterminada",
|
||||||
"Edit map default view": "Editar vista predeterminada del mapa",
|
"Edit map default view": "Editar vista predeterminada del mapa",
|
||||||
"Use current center and zoom": "Usar el centro y zoom actuales",
|
"Use current center and zoom": "Usar el centro y zoom actuales",
|
||||||
"Layer permalink": "Layer permalink",
|
"Layer permalink": "Enlace permanente de la capa",
|
||||||
"Back to home": "Back to home",
|
"Back to home": "Volver al inicio",
|
||||||
"Home logo": "Home logo",
|
"Home logo": "Logo de inicio",
|
||||||
"Add this geometry to my map": "Add this geometry to my map",
|
"Add this geometry to my map": "Agregar esta geometría a mi mapa",
|
||||||
"Add this place to my map": "Add this place to my map",
|
"Add this place to my map": "Agregar este lugar a mi mapa",
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Cancelar la última edición",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Rehacer la última edición",
|
||||||
"Links": "Links",
|
"Links": "Enlaces",
|
||||||
"Images": "Images",
|
"Images": "Imágenes",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Etiquetas",
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocodificar",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Mostrar el ícono de volver al inicio",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "¿Quieres mostrar el selector de capas en la barra de título?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplificar todas las geometrías a puntos",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("es", locale)
|
L.registerLocale("es", locale)
|
||||||
L.setLocale("es")
|
L.setLocale("es")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Almacenar en caché la solicitud de proxy",
|
"Cache proxied request": "Almacenar en caché la solicitud de proxy",
|
||||||
"Caption": "Leyenda",
|
"Caption": "Leyenda",
|
||||||
"Center map on your location": "Centrar el mapa en tu ubicación",
|
"Center map on your location": "Centrar el mapa en tu ubicación",
|
||||||
"Change map background": "Cambiar el fondo del mapa",
|
|
||||||
"Change tilelayers": "Cambiar capas de teselas",
|
"Change tilelayers": "Cambiar capas de teselas",
|
||||||
"Change": "Cambiar",
|
"Change": "Cambiar",
|
||||||
"Choose the data format": "Elegir el formato de datos",
|
"Choose the data format": "Elegir el formato de datos",
|
||||||
|
@ -526,19 +525,23 @@
|
||||||
"Default longitude": "Longitud predeterminada",
|
"Default longitude": "Longitud predeterminada",
|
||||||
"Edit map default view": "Editar vista predeterminada del mapa",
|
"Edit map default view": "Editar vista predeterminada del mapa",
|
||||||
"Use current center and zoom": "Usar el centro y zoom actuales",
|
"Use current center and zoom": "Usar el centro y zoom actuales",
|
||||||
"Layer permalink": "Layer permalink",
|
"Layer permalink": "Enlace permanente de la capa",
|
||||||
"Back to home": "Back to home",
|
"Back to home": "Volver al inicio",
|
||||||
"Home logo": "Home logo",
|
"Home logo": "Logo de inicio",
|
||||||
"Add this geometry to my map": "Add this geometry to my map",
|
"Add this geometry to my map": "Agregar esta geometría a mi mapa",
|
||||||
"Add this place to my map": "Add this place to my map",
|
"Add this place to my map": "Agregar este lugar a mi mapa",
|
||||||
"Cancel last edit": "Cancel last edit",
|
"Cancel last edit": "Cancelar la última edición",
|
||||||
"Redo last edit": "Redo last edit",
|
"Redo last edit": "Rehacer la última edición",
|
||||||
"Links": "Links",
|
"Links": "Enlaces",
|
||||||
"Images": "Images",
|
"Images": "Imágenes",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Etiquetas",
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocodificar",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Mostrar el ícono de volver al inicio",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "¿Quieres mostrar el selector de capas en la barra de título?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplificar todas las geometrías a puntos",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Legend",
|
"Caption": "Legend",
|
||||||
"Center map on your location": "Sea oma asukoht keskpunktiks",
|
"Center map on your location": "Sea oma asukoht keskpunktiks",
|
||||||
"Change map background": "Vaheta kaardi taust",
|
|
||||||
"Change tilelayers": "Vaheta kaardi taust",
|
"Change tilelayers": "Vaheta kaardi taust",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Vali andmevorming",
|
"Choose the data format": "Vali andmevorming",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("et", locale)
|
L.registerLocale("et", locale)
|
||||||
L.setLocale("et")
|
L.setLocale("et")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Legend",
|
"Caption": "Legend",
|
||||||
"Center map on your location": "Sea oma asukoht keskpunktiks",
|
"Center map on your location": "Sea oma asukoht keskpunktiks",
|
||||||
"Change map background": "Vaheta kaardi taust",
|
|
||||||
"Change tilelayers": "Vaheta kaardi taust",
|
"Change tilelayers": "Vaheta kaardi taust",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Vali andmevorming",
|
"Choose the data format": "Vali andmevorming",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxy eskaera",
|
"Cache proxied request": "Cache proxy eskaera",
|
||||||
"Caption": "Testua",
|
"Caption": "Testua",
|
||||||
"Center map on your location": "Zentratu mapa zure kokapenean",
|
"Center map on your location": "Zentratu mapa zure kokapenean",
|
||||||
"Change map background": "Aldatu maparen atzeko planoa",
|
|
||||||
"Change tilelayers": "Aldatu lauzen geruza",
|
"Change tilelayers": "Aldatu lauzen geruza",
|
||||||
"Change": "Aldatu",
|
"Change": "Aldatu",
|
||||||
"Choose the data format": "Aukeratu data-formatua",
|
"Choose the data format": "Aukeratu data-formatua",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("eu", locale)
|
L.registerLocale("eu", locale)
|
||||||
L.setLocale("eu")
|
L.setLocale("eu")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxy eskaera",
|
"Cache proxied request": "Cache proxy eskaera",
|
||||||
"Caption": "Testua",
|
"Caption": "Testua",
|
||||||
"Center map on your location": "Zentratu mapa zure kokapenean",
|
"Center map on your location": "Zentratu mapa zure kokapenean",
|
||||||
"Change map background": "Aldatu maparen atzeko planoa",
|
|
||||||
"Change tilelayers": "Aldatu lauzen geruza",
|
"Change tilelayers": "Aldatu lauzen geruza",
|
||||||
"Change": "Aldatu",
|
"Change": "Aldatu",
|
||||||
"Choose the data format": "Aukeratu data-formatua",
|
"Choose the data format": "Aukeratu data-formatua",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "حفظ موقت درخواست پراکسیشده",
|
"Cache proxied request": "حفظ موقت درخواست پراکسیشده",
|
||||||
"Caption": "درباره",
|
"Caption": "درباره",
|
||||||
"Center map on your location": "تنظیم مرکز نقشه روی موقعیت شما",
|
"Center map on your location": "تنظیم مرکز نقشه روی موقعیت شما",
|
||||||
"Change map background": "تغییر پسزمینهٔ نقشه",
|
|
||||||
"Change tilelayers": "لایهٔ کاشی را تغییر دهید",
|
"Change tilelayers": "لایهٔ کاشی را تغییر دهید",
|
||||||
"Change": "تغییر",
|
"Change": "تغییر",
|
||||||
"Choose the data format": "قالب داده را انتخاب کنید",
|
"Choose the data format": "قالب داده را انتخاب کنید",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("fa_IR", locale)
|
L.registerLocale("fa_IR", locale)
|
||||||
L.setLocale("fa_IR")
|
L.setLocale("fa_IR")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "حفظ موقت درخواست پراکسیشده",
|
"Cache proxied request": "حفظ موقت درخواست پراکسیشده",
|
||||||
"Caption": "درباره",
|
"Caption": "درباره",
|
||||||
"Center map on your location": "تنظیم مرکز نقشه روی موقعیت شما",
|
"Center map on your location": "تنظیم مرکز نقشه روی موقعیت شما",
|
||||||
"Change map background": "تغییر پسزمینهٔ نقشه",
|
|
||||||
"Change tilelayers": "لایهٔ کاشی را تغییر دهید",
|
"Change tilelayers": "لایهٔ کاشی را تغییر دهید",
|
||||||
"Change": "تغییر",
|
"Change": "تغییر",
|
||||||
"Choose the data format": "قالب داده را انتخاب کنید",
|
"Choose the data format": "قالب داده را انتخاب کنید",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Kuvateksti",
|
"Caption": "Kuvateksti",
|
||||||
"Center map on your location": "Keskitä kartta sijaintiisi",
|
"Center map on your location": "Keskitä kartta sijaintiisi",
|
||||||
"Change map background": "Vaihda taustakarttaa",
|
|
||||||
"Change tilelayers": "Muuta karttavaihtoehtoja",
|
"Change tilelayers": "Muuta karttavaihtoehtoja",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Valitse päivämäärän muoto",
|
"Choose the data format": "Valitse päivämäärän muoto",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("fi", locale)
|
L.registerLocale("fi", locale)
|
||||||
L.setLocale("fi")
|
L.setLocale("fi")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Kuvateksti",
|
"Caption": "Kuvateksti",
|
||||||
"Center map on your location": "Keskitä kartta sijaintiisi",
|
"Center map on your location": "Keskitä kartta sijaintiisi",
|
||||||
"Change map background": "Vaihda taustakarttaa",
|
|
||||||
"Change tilelayers": "Muuta karttavaihtoehtoja",
|
"Change tilelayers": "Muuta karttavaihtoehtoja",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Valitse päivämäärän muoto",
|
"Choose the data format": "Valitse päivämäärän muoto",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cacher la requête avec proxy",
|
"Cache proxied request": "Cacher la requête avec proxy",
|
||||||
"Caption": "Légende",
|
"Caption": "Légende",
|
||||||
"Center map on your location": "Centrer la carte sur votre position",
|
"Center map on your location": "Centrer la carte sur votre position",
|
||||||
"Change map background": "Changer le fond de carte",
|
|
||||||
"Change tilelayers": "Changer le fond de carte",
|
"Change tilelayers": "Changer le fond de carte",
|
||||||
"Change": "Modifier",
|
"Change": "Modifier",
|
||||||
"Choose the data format": "Choisir le format des données",
|
"Choose the data format": "Choisir le format des données",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Géocoder",
|
"Geocode": "Géocoder",
|
||||||
"Display the back to home icon": "Afficher le bouton de retour à l'accueil",
|
"Display the back to home icon": "Afficher le bouton de retour à l'accueil",
|
||||||
"Do you want to display layer switcher in caption bar?": "Afficher un sélecteur de calques dans la barre de légende ?",
|
"Do you want to display layer switcher in caption bar?": "Afficher un sélecteur de calques dans la barre de légende ?",
|
||||||
"Simplify all geometries to points": "Simplifier les géométries en points"
|
"Simplify all geometries to points": "Simplifier les géométries en points",
|
||||||
|
"Back to list": "Retour à la liste",
|
||||||
|
"Toggle rule": "Permuter la règle",
|
||||||
|
"Delete rule": "Supprimer la règle",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Impossible d'enregistrer le calque, veuillez réessayer dans quelques minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("fr", locale)
|
L.registerLocale("fr", locale)
|
||||||
L.setLocale("fr")
|
L.setLocale("fr")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cacher la requête avec proxy",
|
"Cache proxied request": "Cacher la requête avec proxy",
|
||||||
"Caption": "Légende",
|
"Caption": "Légende",
|
||||||
"Center map on your location": "Centrer la carte sur votre position",
|
"Center map on your location": "Centrer la carte sur votre position",
|
||||||
"Change map background": "Changer le fond de carte",
|
|
||||||
"Change tilelayers": "Changer le fond de carte",
|
"Change tilelayers": "Changer le fond de carte",
|
||||||
"Change": "Modifier",
|
"Change": "Modifier",
|
||||||
"Choose the data format": "Choisir le format des données",
|
"Choose the data format": "Choisir le format des données",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Géocoder",
|
"Geocode": "Géocoder",
|
||||||
"Display the back to home icon": "Afficher le bouton de retour à l'accueil",
|
"Display the back to home icon": "Afficher le bouton de retour à l'accueil",
|
||||||
"Do you want to display layer switcher in caption bar?": "Afficher un sélecteur de calques dans la barre de légende ?",
|
"Do you want to display layer switcher in caption bar?": "Afficher un sélecteur de calques dans la barre de légende ?",
|
||||||
"Simplify all geometries to points": "Simplifier les géométries en points"
|
"Simplify all geometries to points": "Simplifier les géométries en points",
|
||||||
|
"Back to list": "Retour à la liste",
|
||||||
|
"Toggle rule": "Permuter la règle",
|
||||||
|
"Delete rule": "Supprimer la règle",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Impossible d'enregistrer le calque, veuillez réessayer dans quelques minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Solicitude de proxy da memoria tobo",
|
"Cache proxied request": "Solicitude de proxy da memoria tobo",
|
||||||
"Caption": "Lenda",
|
"Caption": "Lenda",
|
||||||
"Center map on your location": "Centrar o mapa na túa posición",
|
"Center map on your location": "Centrar o mapa na túa posición",
|
||||||
"Change map background": "Cambiar o mapa do fondo",
|
|
||||||
"Change tilelayers": "Cambiar as capas de teselas",
|
"Change tilelayers": "Cambiar as capas de teselas",
|
||||||
"Change": "Cambiar",
|
"Change": "Cambiar",
|
||||||
"Choose the data format": "Escoller o formato de datos",
|
"Choose the data format": "Escoller o formato de datos",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("gl", locale)
|
L.registerLocale("gl", locale)
|
||||||
L.setLocale("gl")
|
L.setLocale("gl")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Solicitude de proxy da memoria tobo",
|
"Cache proxied request": "Solicitude de proxy da memoria tobo",
|
||||||
"Caption": "Lenda",
|
"Caption": "Lenda",
|
||||||
"Center map on your location": "Centrar o mapa na túa posición",
|
"Center map on your location": "Centrar o mapa na túa posición",
|
||||||
"Change map background": "Cambiar o mapa do fondo",
|
|
||||||
"Change tilelayers": "Cambiar as capas de teselas",
|
"Change tilelayers": "Cambiar as capas de teselas",
|
||||||
"Change": "Cambiar",
|
"Change": "Cambiar",
|
||||||
"Choose the data format": "Escoller o formato de datos",
|
"Choose the data format": "Escoller o formato de datos",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "שמירת בקשות שעברו דרך המתווך במטמון",
|
"Cache proxied request": "שמירת בקשות שעברו דרך המתווך במטמון",
|
||||||
"Caption": "כותרת",
|
"Caption": "כותרת",
|
||||||
"Center map on your location": "מרכוז המפה על המיקום שלך",
|
"Center map on your location": "מרכוז המפה על המיקום שלך",
|
||||||
"Change map background": "החלפת רקע המפה",
|
|
||||||
"Change tilelayers": "החלפת שכבות אריחים",
|
"Change tilelayers": "החלפת שכבות אריחים",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "נא לבחור את מבנה הנתונים",
|
"Choose the data format": "נא לבחור את מבנה הנתונים",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("he", locale)
|
L.registerLocale("he", locale)
|
||||||
L.setLocale("he")
|
L.setLocale("he")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "שמירת בקשות שעברו דרך המתווך במטמון",
|
"Cache proxied request": "שמירת בקשות שעברו דרך המתווך במטמון",
|
||||||
"Caption": "כותרת",
|
"Caption": "כותרת",
|
||||||
"Center map on your location": "מרכוז המפה על המיקום שלך",
|
"Center map on your location": "מרכוז המפה על המיקום שלך",
|
||||||
"Change map background": "החלפת רקע המפה",
|
|
||||||
"Change tilelayers": "החלפת שכבות אריחים",
|
"Change tilelayers": "החלפת שכבות אריחים",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "נא לבחור את מבנה הנתונים",
|
"Choose the data format": "נא לבחור את מבנה הנתונים",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Napomena",
|
"Caption": "Napomena",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Promjeni pozadinu karte",
|
|
||||||
"Change tilelayers": "Promeni naslov layera",
|
"Change tilelayers": "Promeni naslov layera",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Odaberi format datuma",
|
"Choose the data format": "Odaberi format datuma",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("hr", locale)
|
L.registerLocale("hr", locale)
|
||||||
L.setLocale("hr")
|
L.setLocale("hr")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Napomena",
|
"Caption": "Napomena",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Promjeni pozadinu karte",
|
|
||||||
"Change tilelayers": "Promeni naslov layera",
|
"Change tilelayers": "Promeni naslov layera",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Odaberi format datuma",
|
"Choose the data format": "Odaberi format datuma",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Proxy keresztül továbbított gyorsítótárkérés",
|
"Cache proxied request": "Proxy keresztül továbbított gyorsítótárkérés",
|
||||||
"Caption": "Leírás",
|
"Caption": "Leírás",
|
||||||
"Center map on your location": "A térkép közepének igazítása a saját pozícióhoz",
|
"Center map on your location": "A térkép közepének igazítása a saját pozícióhoz",
|
||||||
"Change map background": "Térkép hátterének módosítása",
|
|
||||||
"Change tilelayers": "Mozaikrétegek módosítása",
|
"Change tilelayers": "Mozaikrétegek módosítása",
|
||||||
"Change": "Módosítás",
|
"Change": "Módosítás",
|
||||||
"Choose the data format": "Adatformátum kiválasztása",
|
"Choose the data format": "Adatformátum kiválasztása",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("hu", locale)
|
L.registerLocale("hu", locale)
|
||||||
L.setLocale("hu")
|
L.setLocale("hu")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Proxy keresztül továbbított gyorsítótárkérés",
|
"Cache proxied request": "Proxy keresztül továbbított gyorsítótárkérés",
|
||||||
"Caption": "Leírás",
|
"Caption": "Leírás",
|
||||||
"Center map on your location": "A térkép közepének igazítása a saját pozícióhoz",
|
"Center map on your location": "A térkép közepének igazítása a saját pozícióhoz",
|
||||||
"Change map background": "Térkép hátterének módosítása",
|
|
||||||
"Change tilelayers": "Mozaikrétegek módosítása",
|
"Change tilelayers": "Mozaikrétegek módosítása",
|
||||||
"Change": "Módosítás",
|
"Change": "Módosítás",
|
||||||
"Choose the data format": "Adatformátum kiválasztása",
|
"Choose the data format": "Adatformátum kiválasztása",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("id", locale)
|
L.registerLocale("id", locale)
|
||||||
L.setLocale("id")
|
L.setLocale("id")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Caption",
|
"Caption": "Caption",
|
||||||
"Center map on your location": "Center map on your location",
|
"Center map on your location": "Center map on your location",
|
||||||
"Change map background": "Change map background",
|
|
||||||
"Change tilelayers": "Change tilelayers",
|
"Change tilelayers": "Change tilelayers",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Choose the data format",
|
"Choose the data format": "Choose the data format",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Setja milliþjónabeiðnir í skyndiminni",
|
"Cache proxied request": "Setja milliþjónabeiðnir í skyndiminni",
|
||||||
"Caption": "Skýringatexti",
|
"Caption": "Skýringatexti",
|
||||||
"Center map on your location": "Miðjusetja kortið á staðsetningu þína",
|
"Center map on your location": "Miðjusetja kortið á staðsetningu þína",
|
||||||
"Change map background": "Breyta bakgrunni landakorts",
|
|
||||||
"Change tilelayers": "Skipta um kortatíglaþekjur",
|
"Change tilelayers": "Skipta um kortatíglaþekjur",
|
||||||
"Change": "Breyta",
|
"Change": "Breyta",
|
||||||
"Choose the data format": "Veldu gagnasnið",
|
"Choose the data format": "Veldu gagnasnið",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("is", locale)
|
L.registerLocale("is", locale)
|
||||||
L.setLocale("is")
|
L.setLocale("is")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Setja milliþjónabeiðnir í skyndiminni",
|
"Cache proxied request": "Setja milliþjónabeiðnir í skyndiminni",
|
||||||
"Caption": "Skýringatexti",
|
"Caption": "Skýringatexti",
|
||||||
"Center map on your location": "Miðjusetja kortið á staðsetningu þína",
|
"Center map on your location": "Miðjusetja kortið á staðsetningu þína",
|
||||||
"Change map background": "Breyta bakgrunni landakorts",
|
|
||||||
"Change tilelayers": "Skipta um kortatíglaþekjur",
|
"Change tilelayers": "Skipta um kortatíglaþekjur",
|
||||||
"Change": "Breyta",
|
"Change": "Breyta",
|
||||||
"Choose the data format": "Veldu gagnasnið",
|
"Choose the data format": "Veldu gagnasnið",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Usa la cache per le richieste proxy",
|
"Cache proxied request": "Usa la cache per le richieste proxy",
|
||||||
"Caption": "Didascalia",
|
"Caption": "Didascalia",
|
||||||
"Center map on your location": "Centra la mappa sulla tua posizione",
|
"Center map on your location": "Centra la mappa sulla tua posizione",
|
||||||
"Change map background": "Cambia la mappa di sfondo",
|
|
||||||
"Change tilelayers": "Cambia i livelli di sfondo",
|
"Change tilelayers": "Cambia i livelli di sfondo",
|
||||||
"Change": "Cambia",
|
"Change": "Cambia",
|
||||||
"Choose the data format": "Scegli il formato dati",
|
"Choose the data format": "Scegli il formato dati",
|
||||||
|
@ -540,7 +539,11 @@ const locale = {
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("it", locale)
|
L.registerLocale("it", locale)
|
||||||
L.setLocale("it")
|
L.setLocale("it")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Usa la cache per le richieste proxy",
|
"Cache proxied request": "Usa la cache per le richieste proxy",
|
||||||
"Caption": "Didascalia",
|
"Caption": "Didascalia",
|
||||||
"Center map on your location": "Centra la mappa sulla tua posizione",
|
"Center map on your location": "Centra la mappa sulla tua posizione",
|
||||||
"Change map background": "Cambia la mappa di sfondo",
|
|
||||||
"Change tilelayers": "Cambia i livelli di sfondo",
|
"Change tilelayers": "Cambia i livelli di sfondo",
|
||||||
"Change": "Cambia",
|
"Change": "Cambia",
|
||||||
"Choose the data format": "Scegli il formato dati",
|
"Choose the data format": "Scegli il formato dati",
|
||||||
|
@ -540,5 +539,9 @@
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "表題",
|
"Caption": "表題",
|
||||||
"Center map on your location": "閲覧者の位置をマップの中心に設定",
|
"Center map on your location": "閲覧者の位置をマップの中心に設定",
|
||||||
"Change map background": "背景地図を変更",
|
|
||||||
"Change tilelayers": "タイルレイヤの変更",
|
"Change tilelayers": "タイルレイヤの変更",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "データ形式選択",
|
"Choose the data format": "データ形式選択",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ja", locale)
|
L.registerLocale("ja", locale)
|
||||||
L.setLocale("ja")
|
L.setLocale("ja")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "表題",
|
"Caption": "表題",
|
||||||
"Center map on your location": "閲覧者の位置をマップの中心に設定",
|
"Center map on your location": "閲覧者の位置をマップの中心に設定",
|
||||||
"Change map background": "背景地図を変更",
|
|
||||||
"Change tilelayers": "タイルレイヤの変更",
|
"Change tilelayers": "タイルレイヤの変更",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "データ形式選択",
|
"Choose the data format": "データ形式選択",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "캡션",
|
"Caption": "캡션",
|
||||||
"Center map on your location": "지도에서 나의 위치를 가운데로 놓기",
|
"Center map on your location": "지도에서 나의 위치를 가운데로 놓기",
|
||||||
"Change map background": "배경 지도 변경",
|
|
||||||
"Change tilelayers": "타일 레이어 변경",
|
"Change tilelayers": "타일 레이어 변경",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "데이터 포맷 선택",
|
"Choose the data format": "데이터 포맷 선택",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ko", locale)
|
L.registerLocale("ko", locale)
|
||||||
L.setLocale("ko")
|
L.setLocale("ko")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "캡션",
|
"Caption": "캡션",
|
||||||
"Center map on your location": "지도에서 나의 위치를 가운데로 놓기",
|
"Center map on your location": "지도에서 나의 위치를 가운데로 놓기",
|
||||||
"Change map background": "배경 지도 변경",
|
|
||||||
"Change tilelayers": "타일 레이어 변경",
|
"Change tilelayers": "타일 레이어 변경",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "데이터 포맷 선택",
|
"Choose the data format": "데이터 포맷 선택",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Antraštė",
|
"Caption": "Antraštė",
|
||||||
"Center map on your location": "Centruoti pagal Jūsų vietovę",
|
"Center map on your location": "Centruoti pagal Jūsų vietovę",
|
||||||
"Change map background": "Keisti žemėlapio foną",
|
|
||||||
"Change tilelayers": "Pakeisti sluoksnius",
|
"Change tilelayers": "Pakeisti sluoksnius",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Pasirinkite duomenų formatą",
|
"Choose the data format": "Pasirinkite duomenų formatą",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("lt", locale)
|
L.registerLocale("lt", locale)
|
||||||
L.setLocale("lt")
|
L.setLocale("lt")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Antraštė",
|
"Caption": "Antraštė",
|
||||||
"Center map on your location": "Centruoti pagal Jūsų vietovę",
|
"Center map on your location": "Centruoti pagal Jūsų vietovę",
|
||||||
"Change map background": "Keisti žemėlapio foną",
|
|
||||||
"Change tilelayers": "Pakeisti sluoksnius",
|
"Change tilelayers": "Pakeisti sluoksnius",
|
||||||
"Change": "Change",
|
"Change": "Change",
|
||||||
"Choose the data format": "Pasirinkite duomenų formatą",
|
"Choose the data format": "Pasirinkite duomenų formatą",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache permintaan diproksi",
|
"Cache proxied request": "Cache permintaan diproksi",
|
||||||
"Caption": "Keterangan",
|
"Caption": "Keterangan",
|
||||||
"Center map on your location": "Ketengahkan peta ke kedudukan anda",
|
"Center map on your location": "Ketengahkan peta ke kedudukan anda",
|
||||||
"Change map background": "Tukar latar belakang peta",
|
|
||||||
"Change tilelayers": "Tukar lapisan jubin",
|
"Change tilelayers": "Tukar lapisan jubin",
|
||||||
"Change": "Tukar",
|
"Change": "Tukar",
|
||||||
"Choose the data format": "Pilih format data",
|
"Choose the data format": "Pilih format data",
|
||||||
|
@ -457,7 +456,6 @@ const locale = {
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,7 +536,14 @@ const locale = {
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("ms", locale)
|
L.registerLocale("ms", locale)
|
||||||
L.setLocale("ms")
|
L.setLocale("ms")
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
"Cache proxied request": "Cache permintaan diproksi",
|
"Cache proxied request": "Cache permintaan diproksi",
|
||||||
"Caption": "Keterangan",
|
"Caption": "Keterangan",
|
||||||
"Center map on your location": "Ketengahkan peta ke kedudukan anda",
|
"Center map on your location": "Ketengahkan peta ke kedudukan anda",
|
||||||
"Change map background": "Tukar latar belakang peta",
|
|
||||||
"Change tilelayers": "Tukar lapisan jubin",
|
"Change tilelayers": "Tukar lapisan jubin",
|
||||||
"Change": "Tukar",
|
"Change": "Tukar",
|
||||||
"Choose the data format": "Pilih format data",
|
"Choose the data format": "Pilih format data",
|
||||||
|
@ -457,7 +456,6 @@
|
||||||
"Choose this dataset": "Choose this dataset",
|
"Choose this dataset": "Choose this dataset",
|
||||||
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
"GeoDataMine: thematic data from OpenStreetMap": "GeoDataMine: thematic data from OpenStreetMap",
|
||||||
"Choose a theme": "Choose a theme",
|
"Choose a theme": "Choose a theme",
|
||||||
"Symplify all geometries to points": "Symplify all geometries to points",
|
|
||||||
"Choose this data": "Choose this data",
|
"Choose this data": "Choose this data",
|
||||||
"Search admin boundary": "Search admin boundary",
|
"Search admin boundary": "Search admin boundary",
|
||||||
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
"Please choose a theme and a boundary first.": "Please choose a theme and a boundary first.",
|
||||||
|
@ -538,5 +536,12 @@
|
||||||
"Images": "Images",
|
"Images": "Images",
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode"
|
"Geocode": "Geocode",
|
||||||
|
"Display the back to home icon": "Display the back to home icon",
|
||||||
|
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
||||||
|
"Simplify all geometries to points": "Simplify all geometries to points",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
|
@ -45,7 +45,6 @@ const locale = {
|
||||||
"Cache proxied request": "Cache proxied request",
|
"Cache proxied request": "Cache proxied request",
|
||||||
"Caption": "Hoofding",
|
"Caption": "Hoofding",
|
||||||
"Center map on your location": "Centreer kaart op je locatie",
|
"Center map on your location": "Centreer kaart op je locatie",
|
||||||
"Change map background": "Verander kaartachtergrond",
|
|
||||||
"Change tilelayers": "Andere kaartachtergrond instellen",
|
"Change tilelayers": "Andere kaartachtergrond instellen",
|
||||||
"Change": "Veranderen",
|
"Change": "Veranderen",
|
||||||
"Choose the data format": "Gegevensformaat selecteren",
|
"Choose the data format": "Gegevensformaat selecteren",
|
||||||
|
@ -538,9 +537,13 @@ const locale = {
|
||||||
"Iframes": "Iframes",
|
"Iframes": "Iframes",
|
||||||
"Tags": "Tags",
|
"Tags": "Tags",
|
||||||
"Geocode": "Geocode",
|
"Geocode": "Geocode",
|
||||||
"Display the back to home icon": "Display the back to home icon",
|
"Display the back to home icon": "Het pictogram Terug naar huis weergeven",
|
||||||
"Do you want to display layer switcher in caption bar?": "Do you want to display layer switcher in caption bar?",
|
"Do you want to display layer switcher in caption bar?": "Wilt u de laagwisselaar weergeven in de ondertitelingsbalk?",
|
||||||
"Simplify all geometries to points": "Simplify all geometries to points"
|
"Simplify all geometries to points": "Vereenvoudig alle geometrieën tot punten",
|
||||||
|
"Back to list": "Back to list",
|
||||||
|
"Toggle rule": "Toggle rule",
|
||||||
|
"Delete rule": "Delete rule",
|
||||||
|
"Cannot save layer, please try again in a few minutes.": "Cannot save layer, please try again in a few minutes."
|
||||||
}
|
}
|
||||||
L.registerLocale("nl", locale)
|
L.registerLocale("nl", locale)
|
||||||
L.setLocale("nl")
|
L.setLocale("nl")
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue