umap-project 2.8.2__py3-none-any.whl → 2.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of umap-project might be problematic. Click here for more details.
- umap/__init__.py +1 -1
- umap/admin.py +15 -2
- umap/asgi.py +12 -7
- umap/context_processors.py +1 -0
- umap/locale/br/LC_MESSAGES/django.mo +0 -0
- umap/locale/br/LC_MESSAGES/django.po +111 -67
- umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- umap/locale/cs_CZ/LC_MESSAGES/django.po +110 -66
- umap/locale/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +129 -85
- umap/locale/en/LC_MESSAGES/django.po +103 -60
- umap/locale/es/LC_MESSAGES/django.mo +0 -0
- umap/locale/es/LC_MESSAGES/django.po +114 -69
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +105 -61
- umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- umap/locale/gl/LC_MESSAGES/django.po +216 -171
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.po +142 -98
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +196 -151
- umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- umap/locale/pt/LC_MESSAGES/django.po +115 -71
- umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- umap/locale/zh_TW/LC_MESSAGES/django.po +109 -65
- umap/management/commands/empty_trash.py +12 -1
- umap/migrations/0026_datalayer_modified_at_datalayer_share_status.py +26 -0
- umap/models.py +43 -13
- umap/settings/base.py +5 -2
- umap/static/umap/base.css +5 -2
- umap/static/umap/content.css +2 -22
- umap/static/umap/css/bar.css +39 -10
- umap/static/umap/css/contextmenu.css +14 -2
- umap/static/umap/css/form.css +33 -39
- umap/static/umap/css/icon.css +47 -5
- umap/static/umap/css/panel.css +20 -2
- umap/static/umap/css/popup.css +0 -1
- umap/static/umap/css/tooltip.css +33 -31
- umap/static/umap/img/16-white.svg +5 -3
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/24-white.svg +17 -16
- umap/static/umap/img/24.svg +29 -18
- umap/static/umap/img/providers/bitbucket.png +0 -0
- umap/static/umap/img/providers/github.png +0 -0
- umap/static/umap/img/providers/keycloak.png +0 -0
- umap/static/umap/img/providers/openstreetmap-oauth2.png +0 -0
- umap/static/umap/img/providers/twitter-oauth2.png +0 -0
- umap/static/umap/img/source/16-white.svg +6 -4
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/img/source/24-white.svg +20 -18
- umap/static/umap/img/source/24.svg +30 -19
- umap/static/umap/js/components/alerts/alert.js +4 -1
- umap/static/umap/js/modules/browser.js +8 -8
- umap/static/umap/js/modules/caption.js +30 -7
- umap/static/umap/js/modules/data/features.js +101 -56
- umap/static/umap/js/modules/data/layer.js +108 -83
- umap/static/umap/js/modules/form/builder.js +242 -0
- umap/static/umap/js/modules/form/fields.js +1346 -0
- umap/static/umap/js/modules/formatter.js +9 -8
- umap/static/umap/js/modules/help.js +20 -24
- umap/static/umap/js/modules/importer.js +6 -3
- umap/static/umap/js/modules/permissions.js +11 -6
- umap/static/umap/js/modules/rendering/icon.js +5 -1
- umap/static/umap/js/modules/rendering/layers/classified.js +12 -8
- umap/static/umap/js/modules/rendering/layers/cluster.js +11 -1
- umap/static/umap/js/modules/rendering/map.js +1 -23
- umap/static/umap/js/modules/rendering/ui.js +20 -38
- umap/static/umap/js/modules/rules.js +3 -2
- umap/static/umap/js/modules/saving.js +5 -0
- umap/static/umap/js/modules/schema.js +8 -6
- umap/static/umap/js/modules/share.js +3 -3
- umap/static/umap/js/modules/sync/engine.js +56 -26
- umap/static/umap/js/modules/sync/updaters.js +15 -6
- umap/static/umap/js/modules/sync/websocket.js +50 -37
- umap/static/umap/js/modules/tableeditor.js +3 -2
- umap/static/umap/js/modules/ui/bar.js +101 -9
- umap/static/umap/js/modules/ui/base.js +7 -24
- umap/static/umap/js/modules/ui/contextmenu.js +9 -2
- umap/static/umap/js/modules/ui/panel.js +5 -1
- umap/static/umap/js/modules/ui/tooltip.js +19 -11
- umap/static/umap/js/modules/umap.js +121 -68
- umap/static/umap/js/modules/utils.js +196 -12
- umap/static/umap/js/umap.controls.js +11 -353
- umap/static/umap/locale/am_ET.js +17 -5
- umap/static/umap/locale/am_ET.json +17 -5
- umap/static/umap/locale/ar.js +17 -5
- umap/static/umap/locale/ar.json +17 -5
- umap/static/umap/locale/ast.js +17 -5
- umap/static/umap/locale/ast.json +17 -5
- umap/static/umap/locale/bg.js +17 -5
- umap/static/umap/locale/bg.json +17 -5
- umap/static/umap/locale/br.js +33 -20
- umap/static/umap/locale/br.json +33 -20
- umap/static/umap/locale/ca.js +17 -5
- umap/static/umap/locale/ca.json +17 -5
- umap/static/umap/locale/cs_CZ.js +15 -5
- umap/static/umap/locale/cs_CZ.json +15 -5
- umap/static/umap/locale/da.js +17 -5
- umap/static/umap/locale/da.json +17 -5
- umap/static/umap/locale/de.js +17 -5
- umap/static/umap/locale/de.json +17 -5
- umap/static/umap/locale/el.js +63 -51
- umap/static/umap/locale/el.json +63 -51
- umap/static/umap/locale/en.js +15 -5
- umap/static/umap/locale/en.json +15 -5
- umap/static/umap/locale/en_US.json +17 -5
- umap/static/umap/locale/es.js +25 -13
- umap/static/umap/locale/es.json +25 -13
- umap/static/umap/locale/et.js +17 -5
- umap/static/umap/locale/et.json +17 -5
- umap/static/umap/locale/eu.js +17 -5
- umap/static/umap/locale/eu.json +17 -5
- umap/static/umap/locale/fa_IR.js +17 -5
- umap/static/umap/locale/fa_IR.json +17 -5
- umap/static/umap/locale/fi.js +17 -5
- umap/static/umap/locale/fi.json +17 -5
- umap/static/umap/locale/fr.js +16 -6
- umap/static/umap/locale/fr.json +16 -6
- umap/static/umap/locale/gl.js +357 -345
- umap/static/umap/locale/gl.json +357 -345
- umap/static/umap/locale/he.js +17 -5
- umap/static/umap/locale/he.json +17 -5
- umap/static/umap/locale/hr.js +17 -5
- umap/static/umap/locale/hr.json +17 -5
- umap/static/umap/locale/hu.js +14 -5
- umap/static/umap/locale/hu.json +14 -5
- umap/static/umap/locale/id.js +17 -5
- umap/static/umap/locale/id.json +17 -5
- umap/static/umap/locale/is.js +17 -5
- umap/static/umap/locale/is.json +17 -5
- umap/static/umap/locale/it.js +125 -113
- umap/static/umap/locale/it.json +125 -113
- umap/static/umap/locale/ja.js +17 -5
- umap/static/umap/locale/ja.json +17 -5
- umap/static/umap/locale/ko.js +17 -5
- umap/static/umap/locale/ko.json +17 -5
- umap/static/umap/locale/lt.js +17 -5
- umap/static/umap/locale/lt.json +17 -5
- umap/static/umap/locale/ms.js +17 -5
- umap/static/umap/locale/ms.json +17 -5
- umap/static/umap/locale/nl.js +132 -119
- umap/static/umap/locale/nl.json +132 -119
- umap/static/umap/locale/no.js +17 -5
- umap/static/umap/locale/no.json +17 -5
- umap/static/umap/locale/pl.js +17 -5
- umap/static/umap/locale/pl.json +17 -5
- umap/static/umap/locale/pl_PL.json +17 -5
- umap/static/umap/locale/pt.js +38 -25
- umap/static/umap/locale/pt.json +38 -25
- umap/static/umap/locale/pt_BR.js +17 -5
- umap/static/umap/locale/pt_BR.json +17 -5
- umap/static/umap/locale/pt_PT.js +17 -5
- umap/static/umap/locale/pt_PT.json +17 -5
- umap/static/umap/locale/ro.js +17 -5
- umap/static/umap/locale/ro.json +17 -5
- umap/static/umap/locale/ru.js +17 -5
- umap/static/umap/locale/ru.json +17 -5
- umap/static/umap/locale/sk_SK.js +17 -5
- umap/static/umap/locale/sk_SK.json +17 -5
- umap/static/umap/locale/sl.js +17 -5
- umap/static/umap/locale/sl.json +17 -5
- umap/static/umap/locale/sr.js +17 -5
- umap/static/umap/locale/sr.json +17 -5
- umap/static/umap/locale/sv.js +17 -5
- umap/static/umap/locale/sv.json +17 -5
- umap/static/umap/locale/th_TH.js +17 -5
- umap/static/umap/locale/th_TH.json +17 -5
- umap/static/umap/locale/tr.js +17 -5
- umap/static/umap/locale/tr.json +17 -5
- umap/static/umap/locale/uk_UA.js +17 -5
- umap/static/umap/locale/uk_UA.json +17 -5
- umap/static/umap/locale/vi.js +17 -5
- umap/static/umap/locale/vi.json +17 -5
- umap/static/umap/locale/vi_VN.json +17 -5
- umap/static/umap/locale/zh.js +17 -5
- umap/static/umap/locale/zh.json +17 -5
- umap/static/umap/locale/zh_CN.json +17 -5
- umap/static/umap/locale/zh_TW.Big5.json +17 -5
- umap/static/umap/locale/zh_TW.js +15 -5
- umap/static/umap/locale/zh_TW.json +15 -5
- umap/static/umap/map.css +29 -76
- umap/static/umap/nav.css +6 -3
- umap/static/umap/unittests/utils.js +14 -0
- umap/static/umap/vars.css +3 -0
- umap/static/umap/vendors/dompurify/purify.es.js +138 -354
- umap/static/umap/vendors/dompurify/purify.es.mjs.map +1 -1
- umap/static/umap/vendors/editable/Leaflet.Editable.js +1 -0
- umap/sync/__init__.py +0 -0
- umap/sync/app.py +187 -0
- umap/sync/payloads.py +56 -0
- umap/templates/auth/user_detail.html +4 -0
- umap/templates/auth/user_form.html +9 -6
- umap/templates/auth/user_stars.html +4 -0
- umap/templates/base.html +1 -1
- umap/templates/registration/login.html +2 -5
- umap/templates/umap/about.html +5 -0
- umap/templates/umap/about_summary.html +2 -2
- umap/templates/umap/components/provider.html +8 -0
- umap/templates/umap/content_footer.html +1 -1
- umap/templates/umap/css.html +0 -2
- umap/templates/umap/js.html +0 -4
- umap/templates/umap/map_detail.html +1 -1
- umap/templates/umap/password_change.html +4 -0
- umap/templates/umap/password_change_done.html +4 -0
- umap/templates/umap/search.html +4 -0
- umap/templates/umap/search_bar.html +1 -0
- umap/templates/umap/team_confirm_delete.html +4 -0
- umap/templates/umap/team_detail.html +4 -0
- umap/templates/umap/team_form.html +4 -0
- umap/templates/umap/user_dashboard.html +1 -1
- umap/templates/umap/user_teams.html +4 -0
- umap/tests/base.py +3 -1
- umap/tests/integration/conftest.py +16 -23
- umap/tests/integration/test_anonymous_owned_map.py +2 -2
- umap/tests/integration/test_basics.py +4 -7
- umap/tests/integration/test_caption.py +1 -0
- umap/tests/integration/test_categorized_layer.py +4 -8
- umap/tests/integration/test_choropleth.py +1 -1
- umap/tests/integration/test_conditional_rules.py +3 -3
- umap/tests/integration/test_draw_polygon.py +14 -22
- umap/tests/integration/test_draw_polyline.py +6 -14
- umap/tests/integration/test_edit_datalayer.py +11 -11
- umap/tests/integration/test_edit_map.py +30 -4
- umap/tests/integration/test_edit_marker.py +5 -5
- umap/tests/integration/test_edit_polygon.py +6 -6
- umap/tests/integration/test_features_id_generation.py +2 -6
- umap/tests/integration/test_import.py +115 -29
- umap/tests/integration/test_optimistic_merge.py +1 -0
- umap/tests/integration/test_owned_map.py +1 -1
- umap/tests/integration/test_picto.py +8 -8
- umap/tests/integration/test_save.py +3 -2
- umap/tests/integration/test_star.py +13 -9
- umap/tests/integration/test_tableeditor.py +8 -7
- umap/tests/integration/test_view_marker.py +10 -0
- umap/tests/integration/test_websocket_sync.py +239 -64
- umap/tests/settings.py +2 -0
- umap/tests/test_datalayer.py +2 -3
- umap/tests/test_datalayer_views.py +20 -1
- umap/tests/test_empty_trash.py +10 -3
- umap/tests/test_map_views.py +11 -0
- umap/utils.py +27 -11
- umap/views.py +37 -6
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/METADATA +22 -22
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/RECORD +247 -248
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/WHEEL +1 -1
- umap/management/commands/run_websocket_server.py +0 -23
- umap/settings/local_s3.py +0 -45
- umap/static/umap/bitbucket.png +0 -0
- umap/static/umap/github.png +0 -0
- umap/static/umap/js/umap.forms.js +0 -1242
- umap/static/umap/keycloak.png +0 -0
- umap/static/umap/openstreetmap.png +0 -0
- umap/static/umap/twitter.png +0 -0
- umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +0 -468
- umap/static/umap/vendors/toolbar/leaflet.toolbar.css +0 -1
- umap/static/umap/vendors/toolbar/leaflet.toolbar.js +0 -1
- umap/tests/test_websocket_server.py +0 -22
- umap/websocket_server.py +0 -202
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/entry_points.txt +0 -0
- {umap_project-2.8.2.dist-info → umap_project-2.9.0.dist-info}/licenses/LICENSE +0 -0
umap/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = "2.
|
|
1
|
+
VERSION = "2.9.0"
|
umap/admin.py
CHANGED
|
@@ -69,9 +69,18 @@ class PictogramAdmin(admin.ModelAdmin):
|
|
|
69
69
|
list_filter = ("category",)
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
class TeamAdmin(admin.ModelAdmin):
|
|
72
|
+
class TeamAdmin(CSVExportMixin, admin.ModelAdmin):
|
|
73
|
+
csv_fields = [
|
|
74
|
+
"pk",
|
|
75
|
+
"name",
|
|
76
|
+
"users_count",
|
|
77
|
+
]
|
|
78
|
+
list_display = list(admin.ModelAdmin.list_display) + ["users_count"]
|
|
73
79
|
filter_horizontal = ("users",)
|
|
74
80
|
|
|
81
|
+
def users_count(self, obj):
|
|
82
|
+
return obj.users.count()
|
|
83
|
+
|
|
75
84
|
|
|
76
85
|
class UserAdmin(CSVExportMixin, UserAdminBase):
|
|
77
86
|
csv_fields = [
|
|
@@ -83,13 +92,17 @@ class UserAdmin(CSVExportMixin, UserAdminBase):
|
|
|
83
92
|
"last_login",
|
|
84
93
|
"date_joined",
|
|
85
94
|
"maps_count",
|
|
95
|
+
"user_teams",
|
|
86
96
|
]
|
|
87
|
-
list_display = list(UserAdminBase.list_display) + ["maps_count"]
|
|
97
|
+
list_display = list(UserAdminBase.list_display) + ["maps_count", "user_teams"]
|
|
88
98
|
|
|
89
99
|
def maps_count(self, obj):
|
|
90
100
|
# owner maps + maps as editor
|
|
91
101
|
return obj.owned_maps.count() + obj.map_set.count()
|
|
92
102
|
|
|
103
|
+
def user_teams(self, obj):
|
|
104
|
+
return " ; ".join(obj.teams.values_list("name", flat=True))
|
|
105
|
+
|
|
93
106
|
|
|
94
107
|
admin.site.register(Map, MapAdmin)
|
|
95
108
|
admin.site.register(DataLayer)
|
umap/asgi.py
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "umap.settings")
|
|
4
|
+
|
|
4
5
|
from django.core.asgi import get_asgi_application
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
from .sync.app import application as ws_application
|
|
8
|
+
|
|
7
9
|
# Initialize Django ASGI application early to ensure the AppRegistry
|
|
8
10
|
# is populated before importing code that may import ORM models.
|
|
9
11
|
django_asgi_app = get_asgi_application()
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
|
|
14
|
+
async def application(scope, receive, send):
|
|
15
|
+
if scope["type"] == "http":
|
|
16
|
+
await django_asgi_app(scope, receive, send)
|
|
17
|
+
elif scope["type"] == "websocket":
|
|
18
|
+
await ws_application(scope, receive, send)
|
|
19
|
+
else:
|
|
20
|
+
raise NotImplementedError(f"Unknown scope type {scope['type']}")
|
umap/context_processors.py
CHANGED
|
@@ -7,6 +7,7 @@ def settings(request):
|
|
|
7
7
|
return {
|
|
8
8
|
"UMAP_HELP_URL": djsettings.UMAP_HELP_URL,
|
|
9
9
|
"SITE_NAME": djsettings.SITE_NAME,
|
|
10
|
+
"SITE_DESCRIPTION": djsettings.SITE_DESCRIPTION,
|
|
10
11
|
"SITE_URL": djsettings.SITE_URL,
|
|
11
12
|
"ENABLE_ACCOUNT_LOGIN": djsettings.ENABLE_ACCOUNT_LOGIN,
|
|
12
13
|
"UMAP_READONLY": djsettings.UMAP_READONLY,
|
|
Binary file
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
# This file is distributed under the same license as the PACKAGE package.
|
|
4
4
|
#
|
|
5
5
|
# Translators:
|
|
6
|
-
# Dren ar Frankig <hadrienlouque@gmail.com>, 2023-
|
|
6
|
+
# Dren ar Frankig <hadrienlouque@gmail.com>, 2023-2025
|
|
7
7
|
# Dren ar Frankig <hadrienlouque@gmail.com>, 2023
|
|
8
8
|
# Dren ar Frankig <hadrienlouque@gmail.com>, 2023
|
|
9
9
|
msgid ""
|
|
10
10
|
msgstr ""
|
|
11
11
|
"Project-Id-Version: uMap\n"
|
|
12
12
|
"Report-Msgid-Bugs-To: \n"
|
|
13
|
-
"POT-Creation-Date:
|
|
13
|
+
"POT-Creation-Date: 2025-03-03 14:11+0000\n"
|
|
14
14
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
|
15
|
-
"Last-Translator: Dren ar Frankig <hadrienlouque@gmail.com>, 2023-
|
|
15
|
+
"Last-Translator: Dren ar Frankig <hadrienlouque@gmail.com>, 2023-2025\n"
|
|
16
16
|
"Language-Team: Breton (http://app.transifex.com/openstreetmap/umap/language/br/)\n"
|
|
17
17
|
"MIME-Version: 1.0\n"
|
|
18
18
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
@@ -26,7 +26,7 @@ msgstr "Ezporzhiadur CSV"
|
|
|
26
26
|
|
|
27
27
|
#: decorators.py:60
|
|
28
28
|
msgid "This map is not publicly available"
|
|
29
|
-
msgstr ""
|
|
29
|
+
msgstr "Ar gartenn-mañ n'eo ket publik"
|
|
30
30
|
|
|
31
31
|
#: middleware.py:13
|
|
32
32
|
msgid "Site is readonly for maintenance"
|
|
@@ -36,7 +36,7 @@ msgstr "Al lec'hienn zo da lenn hepken rak emeur ouzh he c'hempenn"
|
|
|
36
36
|
msgid "name"
|
|
37
37
|
msgstr "anv"
|
|
38
38
|
|
|
39
|
-
#: models.py:62 models.py:
|
|
39
|
+
#: models.py:62 models.py:485
|
|
40
40
|
msgid "description"
|
|
41
41
|
msgstr "deskrivadur"
|
|
42
42
|
|
|
@@ -56,23 +56,23 @@ msgstr "Patrom URL a implij furmad teol OSM"
|
|
|
56
56
|
msgid "Order of the tilelayers in the edit box"
|
|
57
57
|
msgstr ""
|
|
58
58
|
|
|
59
|
-
#: models.py:175 models.py:
|
|
59
|
+
#: models.py:175 models.py:479
|
|
60
60
|
msgid "Only editable with secret edit link"
|
|
61
61
|
msgstr "N'haller he c'hemmañ nemet gant ul liamm aozañ kuzh"
|
|
62
62
|
|
|
63
|
-
#: models.py:176 models.py:
|
|
63
|
+
#: models.py:176 models.py:480
|
|
64
64
|
msgid "Everyone can edit"
|
|
65
65
|
msgstr "An holl a c'hall kemmañ"
|
|
66
66
|
|
|
67
|
-
#: models.py:179 models.py:
|
|
67
|
+
#: models.py:179 models.py:473
|
|
68
68
|
msgid "Everyone"
|
|
69
69
|
msgstr "An holl"
|
|
70
70
|
|
|
71
|
-
#: models.py:180 models.py:189 models.py:
|
|
71
|
+
#: models.py:180 models.py:189 models.py:474
|
|
72
72
|
msgid "Editors and team only"
|
|
73
|
-
msgstr ""
|
|
73
|
+
msgstr "An aozerien hag ar skipailh hepken"
|
|
74
74
|
|
|
75
|
-
#: models.py:181 models.py:
|
|
75
|
+
#: models.py:181 models.py:475
|
|
76
76
|
msgid "Owner only"
|
|
77
77
|
msgstr "Ar perc'henner hepken"
|
|
78
78
|
|
|
@@ -92,7 +92,7 @@ msgstr "Piv bennak en deus ul liamm"
|
|
|
92
92
|
msgid "Blocked"
|
|
93
93
|
msgstr "Stanket"
|
|
94
94
|
|
|
95
|
-
#: models.py:191
|
|
95
|
+
#: models.py:191 models.py:469
|
|
96
96
|
msgid "Deleted"
|
|
97
97
|
msgstr "Dilemel"
|
|
98
98
|
|
|
@@ -132,31 +132,31 @@ msgstr "aozerien"
|
|
|
132
132
|
msgid "team"
|
|
133
133
|
msgstr "skipailh"
|
|
134
134
|
|
|
135
|
-
#: models.py:229 models.py:
|
|
135
|
+
#: models.py:229 models.py:501
|
|
136
136
|
msgid "edit status"
|
|
137
137
|
msgstr "statud aozañ"
|
|
138
138
|
|
|
139
|
-
#: models.py:234
|
|
139
|
+
#: models.py:234 models.py:506
|
|
140
140
|
msgid "share status"
|
|
141
141
|
msgstr "digor da biv?"
|
|
142
142
|
|
|
143
|
-
#: models.py:237 models.py:
|
|
143
|
+
#: models.py:237 models.py:496
|
|
144
144
|
msgid "settings"
|
|
145
145
|
msgstr "arventennoù"
|
|
146
146
|
|
|
147
|
-
#: models.py:
|
|
147
|
+
#: models.py:407
|
|
148
148
|
msgid "Clone of"
|
|
149
149
|
msgstr "Eilenn eus"
|
|
150
150
|
|
|
151
|
-
#: models.py:
|
|
151
|
+
#: models.py:468 models.py:472 models.py:478
|
|
152
152
|
msgid "Inherit"
|
|
153
153
|
msgstr "Dre ziouer"
|
|
154
154
|
|
|
155
|
-
#: models.py:
|
|
155
|
+
#: models.py:491
|
|
156
156
|
msgid "display on load"
|
|
157
157
|
msgstr "diskwel pa vez karget"
|
|
158
158
|
|
|
159
|
-
#: models.py:
|
|
159
|
+
#: models.py:492
|
|
160
160
|
msgid "Display this layer on load."
|
|
161
161
|
msgstr "Diskwel ar gwiskad-mañ pa vez karget"
|
|
162
162
|
|
|
@@ -169,46 +169,60 @@ msgstr ""
|
|
|
169
169
|
|
|
170
170
|
#: templates/403.html:10 templates/404.html:8
|
|
171
171
|
msgid "← Go to the homepage"
|
|
172
|
-
msgstr ""
|
|
172
|
+
msgstr "← Distreiñ d'ar bajenn degemer"
|
|
173
173
|
|
|
174
174
|
#: templates/404.html:7
|
|
175
175
|
msgid "404 Page Not Found"
|
|
176
|
-
msgstr ""
|
|
176
|
+
msgstr "404 N'eo ket bet kavet ar bajenn"
|
|
177
177
|
|
|
178
|
-
#: templates/auth/user_detail.html:
|
|
178
|
+
#: templates/auth/user_detail.html:6
|
|
179
|
+
#, python-format
|
|
180
|
+
msgid "%(current_user)s’s maps"
|
|
181
|
+
msgstr "Kartennoù eus %(current_user)s"
|
|
182
|
+
|
|
183
|
+
#: templates/auth/user_detail.html:12
|
|
179
184
|
#, python-format
|
|
180
185
|
msgid "Browse %(current_user)s's maps"
|
|
181
186
|
msgstr "Merdeiñ e kartennoù %(current_user)s"
|
|
182
187
|
|
|
183
|
-
#: templates/auth/user_detail.html:
|
|
188
|
+
#: templates/auth/user_detail.html:21
|
|
184
189
|
#, python-format
|
|
185
190
|
msgid "%(current_user)s has no maps."
|
|
186
191
|
msgstr "%(current_user)s n'en/he deus kartenn ebet."
|
|
187
192
|
|
|
188
|
-
#: templates/auth/user_form.html:
|
|
193
|
+
#: templates/auth/user_form.html:6
|
|
194
|
+
msgid "My Profile"
|
|
195
|
+
msgstr "Ma frofil"
|
|
196
|
+
|
|
197
|
+
#: templates/auth/user_form.html:24 templates/umap/team_form.html:25
|
|
189
198
|
msgid "Save"
|
|
190
199
|
msgstr "Enrollañ"
|
|
191
200
|
|
|
192
|
-
#: templates/auth/user_form.html:
|
|
201
|
+
#: templates/auth/user_form.html:30
|
|
193
202
|
msgid "Your current providers"
|
|
194
203
|
msgstr "Ho pourchaserien a-vremañ"
|
|
195
204
|
|
|
196
|
-
#: templates/auth/user_form.html:
|
|
205
|
+
#: templates/auth/user_form.html:44
|
|
197
206
|
msgid "Connect to another provider"
|
|
198
207
|
msgstr "Kennaskañ ouzh ur pourchaser all"
|
|
199
208
|
|
|
200
|
-
#: templates/auth/user_form.html:
|
|
209
|
+
#: templates/auth/user_form.html:47
|
|
201
210
|
msgid ""
|
|
202
211
|
"It's a good habit to connect your account to more than one provider, in case"
|
|
203
212
|
" one provider becomes unavailable, temporarily or even permanently."
|
|
204
213
|
msgstr ""
|
|
205
214
|
|
|
206
|
-
#: templates/auth/user_stars.html:
|
|
215
|
+
#: templates/auth/user_stars.html:6
|
|
216
|
+
#, python-format
|
|
217
|
+
msgid "%(current_user)s’s starred maps"
|
|
218
|
+
msgstr "Kartennoù muiañ karet eus %(current_user)s"
|
|
219
|
+
|
|
220
|
+
#: templates/auth/user_stars.html:12
|
|
207
221
|
#, python-format
|
|
208
222
|
msgid "Browse %(current_user)s's starred maps"
|
|
209
223
|
msgstr "Merdeiñ e kartennoù spilhennet %(current_user)s"
|
|
210
224
|
|
|
211
|
-
#: templates/auth/user_stars.html:
|
|
225
|
+
#: templates/auth/user_stars.html:21
|
|
212
226
|
#, python-format
|
|
213
227
|
msgid "%(current_user)s has no starred maps yet."
|
|
214
228
|
msgstr "%(current_user)s n'en/he deus kartenn spilhennet ebet."
|
|
@@ -225,7 +239,7 @@ msgstr "Kevreañ"
|
|
|
225
239
|
|
|
226
240
|
#: templates/registration/login.html:22
|
|
227
241
|
msgid "To save and easily find your maps, identify yourself."
|
|
228
|
-
msgstr ""
|
|
242
|
+
msgstr "Evit enrollañ ha kavout ho kartennoù en doare aes, kennaskit mar plij."
|
|
229
243
|
|
|
230
244
|
#: templates/registration/login.html:25
|
|
231
245
|
msgid "Please log in with your account:"
|
|
@@ -243,6 +257,10 @@ msgstr "Ger-tremen"
|
|
|
243
257
|
msgid "Please choose a provider:"
|
|
244
258
|
msgstr "Dibabit ur pourchaser mar plij:"
|
|
245
259
|
|
|
260
|
+
#: templates/umap/about.html:5 templates/umap/navigation.html:22
|
|
261
|
+
msgid "About"
|
|
262
|
+
msgstr "Diwar-benn"
|
|
263
|
+
|
|
246
264
|
#: templates/umap/about_summary.html:12
|
|
247
265
|
#, python-format
|
|
248
266
|
msgid ""
|
|
@@ -410,7 +428,7 @@ msgstr "gant"
|
|
|
410
428
|
msgid "More"
|
|
411
429
|
msgstr "Muioc'h"
|
|
412
430
|
|
|
413
|
-
#: templates/umap/map_table.html:8 templates/umap/user_teams.html:
|
|
431
|
+
#: templates/umap/map_table.html:8 templates/umap/user_teams.html:18
|
|
414
432
|
msgid "Name"
|
|
415
433
|
msgstr "Anv"
|
|
416
434
|
|
|
@@ -434,7 +452,7 @@ msgstr "Enrollet da ziwezhañ"
|
|
|
434
452
|
msgid "Owner"
|
|
435
453
|
msgstr "Perc'henner"
|
|
436
454
|
|
|
437
|
-
#: templates/umap/map_table.html:26 templates/umap/user_teams.html:
|
|
455
|
+
#: templates/umap/map_table.html:26 templates/umap/user_teams.html:24
|
|
438
456
|
msgid "Actions"
|
|
439
457
|
msgstr "Oberoù"
|
|
440
458
|
|
|
@@ -447,7 +465,7 @@ msgid "Share"
|
|
|
447
465
|
msgstr "Rannañ"
|
|
448
466
|
|
|
449
467
|
#: templates/umap/map_table.html:78 templates/umap/map_table.html:80
|
|
450
|
-
#: templates/umap/user_teams.html:
|
|
468
|
+
#: templates/umap/user_teams.html:42 templates/umap/user_teams.html:44
|
|
451
469
|
msgid "Edit"
|
|
452
470
|
msgstr "Aozañ"
|
|
453
471
|
|
|
@@ -510,10 +528,6 @@ msgstr "Kevreañ"
|
|
|
510
528
|
msgid "Sign in"
|
|
511
529
|
msgstr "Krouiñ ur gont"
|
|
512
530
|
|
|
513
|
-
#: templates/umap/navigation.html:22
|
|
514
|
-
msgid "About"
|
|
515
|
-
msgstr "Diwar-benn"
|
|
516
|
-
|
|
517
531
|
#: templates/umap/navigation.html:30
|
|
518
532
|
msgid "Change password"
|
|
519
533
|
msgstr "Cheñch ar ger-tremen"
|
|
@@ -522,41 +536,47 @@ msgstr "Cheñch ar ger-tremen"
|
|
|
522
536
|
msgid "Log out"
|
|
523
537
|
msgstr "Digevreañ"
|
|
524
538
|
|
|
525
|
-
#: templates/umap/password_change.html:
|
|
539
|
+
#: templates/umap/password_change.html:6
|
|
540
|
+
#: templates/umap/password_change.html:11
|
|
526
541
|
msgid "Password change"
|
|
527
542
|
msgstr "Cheñch ar ger-tremen"
|
|
528
543
|
|
|
529
|
-
#: templates/umap/password_change.html:
|
|
544
|
+
#: templates/umap/password_change.html:14
|
|
530
545
|
msgid ""
|
|
531
546
|
"Please enter your old password, for security's sake, and then enter your new"
|
|
532
547
|
" password twice so we can verify you typed it in correctly."
|
|
533
548
|
msgstr "Enankit ho ker-tremen kozh ha div wezh ho ker-tremen nevez war-lerc'h mar plij."
|
|
534
549
|
|
|
535
|
-
#: templates/umap/password_change.html:
|
|
550
|
+
#: templates/umap/password_change.html:21
|
|
536
551
|
msgid "Old password"
|
|
537
552
|
msgstr "Ger-tremen kozh"
|
|
538
553
|
|
|
539
|
-
#: templates/umap/password_change.html:
|
|
554
|
+
#: templates/umap/password_change.html:26
|
|
540
555
|
msgid "New password"
|
|
541
556
|
msgstr "Ger-tremen nevez"
|
|
542
557
|
|
|
543
|
-
#: templates/umap/password_change.html:
|
|
558
|
+
#: templates/umap/password_change.html:30
|
|
544
559
|
msgid "New password confirmation"
|
|
545
560
|
msgstr "Kadarnaat ar ger-tremen nevez"
|
|
546
561
|
|
|
547
|
-
#: templates/umap/password_change.html:
|
|
562
|
+
#: templates/umap/password_change.html:31
|
|
548
563
|
msgid "Change my password"
|
|
549
564
|
msgstr "Cheñch ar ger-tremen"
|
|
550
565
|
|
|
551
|
-
#: templates/umap/password_change_done.html:
|
|
566
|
+
#: templates/umap/password_change_done.html:6
|
|
567
|
+
#: templates/umap/password_change_done.html:11
|
|
552
568
|
msgid "Password change successful"
|
|
553
569
|
msgstr "Cheñchet eo bet ar ger-tremen gant berzh"
|
|
554
570
|
|
|
555
|
-
#: templates/umap/password_change_done.html:
|
|
571
|
+
#: templates/umap/password_change_done.html:14
|
|
556
572
|
msgid "Your password was changed."
|
|
557
573
|
msgstr "Cheñchet eo bet ho ker-tremen."
|
|
558
574
|
|
|
559
|
-
#: templates/umap/search.html:
|
|
575
|
+
#: templates/umap/search.html:6
|
|
576
|
+
msgid "Explore maps"
|
|
577
|
+
msgstr "Ergerzhout ar gartennoù"
|
|
578
|
+
|
|
579
|
+
#: templates/umap/search.html:19
|
|
560
580
|
#, python-format
|
|
561
581
|
msgid "%(count)s map found:"
|
|
562
582
|
msgid_plural "%(count)s maps found:"
|
|
@@ -566,11 +586,11 @@ msgstr[2] "%(count)s c'hartenn kavet :"
|
|
|
566
586
|
msgstr[3] "%(count)s kartenn kavet :"
|
|
567
587
|
msgstr[4] "%(count)s kartenn kavet :"
|
|
568
588
|
|
|
569
|
-
#: templates/umap/search.html:
|
|
589
|
+
#: templates/umap/search.html:28
|
|
570
590
|
msgid "No map found."
|
|
571
591
|
msgstr "Kartenn ebet kavet."
|
|
572
592
|
|
|
573
|
-
#: templates/umap/search.html:
|
|
593
|
+
#: templates/umap/search.html:33
|
|
574
594
|
msgid "Latest created maps"
|
|
575
595
|
msgstr "Kartennoù krouet da ziwezhañ"
|
|
576
596
|
|
|
@@ -578,25 +598,38 @@ msgstr "Kartennoù krouet da ziwezhañ"
|
|
|
578
598
|
msgid "Search maps"
|
|
579
599
|
msgstr "Klask kartennoù"
|
|
580
600
|
|
|
581
|
-
#: templates/umap/search_bar.html:
|
|
601
|
+
#: templates/umap/search_bar.html:16
|
|
582
602
|
msgid "Search"
|
|
583
603
|
msgstr "Klask"
|
|
584
604
|
|
|
585
|
-
#: templates/umap/
|
|
605
|
+
#: templates/umap/team_confirm_delete.html:6
|
|
606
|
+
msgid "Team deletion"
|
|
607
|
+
msgstr "O tilemel ar gartenn"
|
|
608
|
+
|
|
609
|
+
#: templates/umap/team_detail.html:6
|
|
610
|
+
#, python-format
|
|
611
|
+
msgid "%(current_team)s’s maps"
|
|
612
|
+
msgstr "Kartennoù eus %(current_team)s"
|
|
613
|
+
|
|
614
|
+
#: templates/umap/team_detail.html:14
|
|
586
615
|
#, python-format
|
|
587
616
|
msgid "Browse %(current_team)s's maps"
|
|
588
617
|
msgstr "Merdeiñ e kartennoù %(current_team)s"
|
|
589
618
|
|
|
590
|
-
#: templates/umap/team_detail.html:
|
|
619
|
+
#: templates/umap/team_detail.html:26
|
|
591
620
|
#, python-format
|
|
592
621
|
msgid "%(current_team)s has no public maps."
|
|
593
622
|
msgstr "%(current_team)s n'en deus kartenn publik ebet."
|
|
594
623
|
|
|
595
|
-
#: templates/umap/team_form.html:
|
|
624
|
+
#: templates/umap/team_form.html:6
|
|
625
|
+
msgid "Create or edit a team"
|
|
626
|
+
msgstr "Krouiñ pe kemmañ ur skipailh"
|
|
627
|
+
|
|
628
|
+
#: templates/umap/team_form.html:28
|
|
596
629
|
msgid "Delete this team"
|
|
597
630
|
msgstr "Dilemel ar skipailh-mañ"
|
|
598
631
|
|
|
599
|
-
#: templates/umap/team_form.html:
|
|
632
|
+
#: templates/umap/team_form.html:51
|
|
600
633
|
msgid "Add user"
|
|
601
634
|
msgstr "Ouzhpennañ un implijer"
|
|
602
635
|
|
|
@@ -617,11 +650,15 @@ msgstr "Pellgargañ %(count)s a gartennoù"
|
|
|
617
650
|
msgid "You have no map yet."
|
|
618
651
|
msgstr "N'ho peus kartenn ebet c'hoazh."
|
|
619
652
|
|
|
620
|
-
#: templates/umap/user_teams.html:
|
|
653
|
+
#: templates/umap/user_teams.html:6
|
|
654
|
+
msgid "My Teams"
|
|
655
|
+
msgstr "Ma skipailhoù"
|
|
656
|
+
|
|
657
|
+
#: templates/umap/user_teams.html:21
|
|
621
658
|
msgid "Users"
|
|
622
659
|
msgstr "Implijerien"
|
|
623
660
|
|
|
624
|
-
#: templates/umap/user_teams.html:
|
|
661
|
+
#: templates/umap/user_teams.html:52
|
|
625
662
|
msgid "New team"
|
|
626
663
|
msgstr "Skipailh nevez"
|
|
627
664
|
|
|
@@ -638,57 +675,64 @@ msgstr "Dilamet eo bet ar skipailh “%(name)s”"
|
|
|
638
675
|
msgid "View the map"
|
|
639
676
|
msgstr "Diskouez ar gartenn"
|
|
640
677
|
|
|
641
|
-
#: views.py:
|
|
678
|
+
#: views.py:838
|
|
642
679
|
msgid "See full screen"
|
|
643
680
|
msgstr "Gwelet er mod skramm a-bezh"
|
|
644
681
|
|
|
645
|
-
#: views.py:
|
|
682
|
+
#: views.py:981
|
|
646
683
|
msgid "Map editors updated with success!"
|
|
647
684
|
msgstr "Aozerien ar gartenn bet hizivaet gant berzh!"
|
|
648
685
|
|
|
649
|
-
#: views.py:
|
|
686
|
+
#: views.py:1017
|
|
650
687
|
#, python-format
|
|
651
688
|
msgid "The uMap edit link for your map: %(map_name)s"
|
|
652
689
|
msgstr "Al liamm uMap evit aozañ ho kartenn: %(map_name)s"
|
|
653
690
|
|
|
654
|
-
#: views.py:
|
|
691
|
+
#: views.py:1020
|
|
655
692
|
#, python-format
|
|
656
693
|
msgid "Here is your secret edit link: %(link)s"
|
|
657
694
|
msgstr "Setu ho liamm aozañ kuzh: %(link)s"
|
|
658
695
|
|
|
659
|
-
#: views.py:
|
|
696
|
+
#: views.py:1027
|
|
660
697
|
#, python-format
|
|
661
698
|
msgid "Can't send email to %(email)s"
|
|
662
699
|
msgstr "N'haller ket kas ur postel da %(email)s"
|
|
663
700
|
|
|
664
|
-
#: views.py:
|
|
701
|
+
#: views.py:1030
|
|
665
702
|
#, python-format
|
|
666
703
|
msgid "Email sent to %(email)s"
|
|
667
704
|
msgstr "Postel kaset da %(email)s"
|
|
668
705
|
|
|
669
|
-
#: views.py:
|
|
706
|
+
#: views.py:1041
|
|
670
707
|
msgid "Only its owner can delete the map."
|
|
671
708
|
msgstr "N'eus nemet perc'henner ar gartenn a c'hall he dilemel."
|
|
672
709
|
|
|
673
|
-
#: views.py:
|
|
710
|
+
#: views.py:1044
|
|
674
711
|
msgid "Map successfully deleted."
|
|
675
712
|
msgstr "Kartenn dilamet gant berzh."
|
|
676
713
|
|
|
677
|
-
#: views.py:
|
|
714
|
+
#: views.py:1070
|
|
678
715
|
#, python-format
|
|
679
716
|
msgid ""
|
|
680
717
|
"Your map has been cloned! If you want to edit this map from another "
|
|
681
718
|
"computer, please use this link: %(anonymous_url)s"
|
|
682
719
|
msgstr "Doublet eo bet ho kartenn! M'ho peus c'hoant d'he c'hemmañ diwar un urzhiataer all, implijit al liamm-mañ: %(anonymous_url)s"
|
|
683
720
|
|
|
684
|
-
#: views.py:
|
|
721
|
+
#: views.py:1075
|
|
685
722
|
msgid "Congratulations, your map has been cloned!"
|
|
686
723
|
msgstr "Doublet eo bet ho kartenn gant berzh!"
|
|
687
724
|
|
|
688
|
-
#: views.py:
|
|
725
|
+
#: views.py:1329
|
|
689
726
|
msgid "Layer successfully deleted."
|
|
690
727
|
msgstr "Gwiskad dilamet gant berzh."
|
|
691
728
|
|
|
692
|
-
#: views.py:
|
|
729
|
+
#: views.py:1351
|
|
693
730
|
msgid "Permissions updated with success!"
|
|
694
731
|
msgstr "Aotreoù hizivaet gant berzh!"
|
|
732
|
+
|
|
733
|
+
#: views.py:1430
|
|
734
|
+
#, python-format
|
|
735
|
+
msgid ""
|
|
736
|
+
"Using “%(name)s” to authenticate is deprecated. Please configure another "
|
|
737
|
+
"provider in your profile page."
|
|
738
|
+
msgstr ""
|
|
Binary file
|