umap-project 3.3.5__py3-none-any.whl → 3.4.0b0__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/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- umap/locale/cs_CZ/LC_MESSAGES/django.po +43 -33
- umap/locale/da/LC_MESSAGES/django.mo +0 -0
- umap/locale/da/LC_MESSAGES/django.po +43 -33
- umap/locale/de/LC_MESSAGES/django.mo +0 -0
- umap/locale/de/LC_MESSAGES/django.po +35 -29
- umap/locale/el/LC_MESSAGES/django.mo +0 -0
- umap/locale/el/LC_MESSAGES/django.po +35 -29
- umap/locale/en/LC_MESSAGES/django.po +34 -28
- umap/locale/es/LC_MESSAGES/django.mo +0 -0
- umap/locale/es/LC_MESSAGES/django.po +43 -33
- umap/locale/et/LC_MESSAGES/django.mo +0 -0
- umap/locale/et/LC_MESSAGES/django.po +58 -54
- umap/locale/eu/LC_MESSAGES/django.mo +0 -0
- umap/locale/eu/LC_MESSAGES/django.po +43 -33
- umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
- umap/locale/fa_IR/LC_MESSAGES/django.po +43 -33
- umap/locale/fr/LC_MESSAGES/django.mo +0 -0
- umap/locale/fr/LC_MESSAGES/django.po +36 -30
- umap/locale/gl/LC_MESSAGES/django.mo +0 -0
- umap/locale/gl/LC_MESSAGES/django.po +43 -33
- umap/locale/hu/LC_MESSAGES/django.mo +0 -0
- umap/locale/hu/LC_MESSAGES/django.po +35 -29
- umap/locale/is/LC_MESSAGES/django.mo +0 -0
- umap/locale/is/LC_MESSAGES/django.po +43 -33
- umap/locale/it/LC_MESSAGES/django.mo +0 -0
- umap/locale/it/LC_MESSAGES/django.po +43 -33
- umap/locale/nl/LC_MESSAGES/django.mo +0 -0
- umap/locale/nl/LC_MESSAGES/django.po +35 -29
- umap/locale/pl/LC_MESSAGES/django.mo +0 -0
- umap/locale/pl/LC_MESSAGES/django.po +43 -33
- umap/locale/pt/LC_MESSAGES/django.mo +0 -0
- umap/locale/pt/LC_MESSAGES/django.po +43 -33
- umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
- umap/locale/th_TH/LC_MESSAGES/django.po +310 -109
- umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
- umap/locale/zh_TW/LC_MESSAGES/django.po +80 -70
- umap/management/commands/switch_user.py +2 -2
- umap/static/umap/base.css +89 -32
- umap/static/umap/content.css +129 -33
- umap/static/umap/css/bar.css +82 -20
- umap/static/umap/css/browser.css +163 -0
- umap/static/umap/css/contextmenu.css +15 -0
- umap/static/umap/css/dialog.css +36 -16
- umap/static/umap/css/form.css +122 -32
- umap/static/umap/css/icon.css +46 -3
- umap/static/umap/css/panel.css +7 -3
- umap/static/umap/css/popup.css +34 -8
- umap/static/umap/css/tooltip.css +8 -4
- umap/static/umap/img/16-white.svg +26 -8
- umap/static/umap/img/16.svg +1 -1
- umap/static/umap/img/source/16-white.svg +36 -18
- umap/static/umap/img/source/16.svg +1 -1
- umap/static/umap/js/components/alerts/alert.css +69 -31
- umap/static/umap/js/components/alerts/alert.js +20 -2
- umap/static/umap/js/modules/browser.js +64 -56
- umap/static/umap/js/modules/caption.js +10 -7
- umap/static/umap/js/modules/data/features.js +82 -59
- umap/static/umap/js/modules/data/layer.js +75 -166
- umap/static/umap/js/modules/domutils.js +109 -0
- umap/static/umap/js/modules/filters.js +807 -0
- umap/static/umap/js/modules/form/builder.js +8 -5
- umap/static/umap/js/modules/form/fields.js +110 -220
- umap/static/umap/js/modules/formatter.js +24 -1
- umap/static/umap/js/modules/help.js +3 -2
- umap/static/umap/js/modules/importers/opendata.js +5 -0
- umap/static/umap/js/modules/importers/openrouteservice.js +6 -1
- umap/static/umap/js/modules/managers.js +265 -0
- umap/static/umap/js/modules/permissions.js +35 -31
- umap/static/umap/js/modules/rendering/controls.js +7 -7
- umap/static/umap/js/modules/rendering/icon.js +3 -8
- umap/static/umap/js/modules/rendering/layers/base.js +1 -1
- umap/static/umap/js/modules/rendering/layers/classified.js +17 -10
- umap/static/umap/js/modules/rendering/layers/cluster.js +2 -2
- umap/static/umap/js/modules/rendering/template.js +44 -8
- umap/static/umap/js/modules/rendering/ui.js +29 -23
- umap/static/umap/js/modules/rules.js +4 -3
- umap/static/umap/js/modules/schema.js +3 -6
- umap/static/umap/js/modules/share.js +4 -3
- umap/static/umap/js/modules/tableeditor.js +50 -38
- umap/static/umap/js/modules/templates.js +2 -3
- umap/static/umap/js/modules/ui/bar.js +42 -18
- umap/static/umap/js/modules/ui/dialog.js +33 -31
- umap/static/umap/js/modules/ui/panel.js +21 -7
- umap/static/umap/js/modules/ui/tooltip.js +6 -5
- umap/static/umap/js/modules/umap.js +155 -46
- umap/static/umap/js/modules/utils.js +23 -1
- umap/static/umap/js/umap.core.js +1 -110
- umap/static/umap/locale/am_ET.js +40 -14
- umap/static/umap/locale/am_ET.json +40 -14
- umap/static/umap/locale/ar.js +40 -14
- umap/static/umap/locale/ar.json +40 -14
- umap/static/umap/locale/ast.js +40 -14
- umap/static/umap/locale/ast.json +40 -14
- umap/static/umap/locale/bg.js +40 -14
- umap/static/umap/locale/bg.json +40 -14
- umap/static/umap/locale/br.js +47 -21
- umap/static/umap/locale/br.json +47 -21
- umap/static/umap/locale/ca.js +40 -14
- umap/static/umap/locale/ca.json +40 -14
- umap/static/umap/locale/cs_CZ.js +40 -14
- umap/static/umap/locale/cs_CZ.json +40 -14
- umap/static/umap/locale/da.js +40 -14
- umap/static/umap/locale/da.json +40 -14
- umap/static/umap/locale/de.js +39 -13
- umap/static/umap/locale/de.json +39 -13
- umap/static/umap/locale/el.js +40 -14
- umap/static/umap/locale/el.json +40 -14
- umap/static/umap/locale/en.js +39 -13
- umap/static/umap/locale/en.json +39 -13
- umap/static/umap/locale/en_US.json +40 -14
- umap/static/umap/locale/es.js +40 -14
- umap/static/umap/locale/es.json +40 -14
- umap/static/umap/locale/et.js +79 -53
- umap/static/umap/locale/et.json +79 -53
- umap/static/umap/locale/eu.js +72 -46
- umap/static/umap/locale/eu.json +72 -46
- umap/static/umap/locale/fa_IR.js +40 -14
- umap/static/umap/locale/fa_IR.json +40 -14
- umap/static/umap/locale/fi.js +40 -14
- umap/static/umap/locale/fi.json +40 -14
- umap/static/umap/locale/fr.js +39 -13
- umap/static/umap/locale/fr.json +39 -13
- umap/static/umap/locale/gl.js +40 -14
- umap/static/umap/locale/gl.json +40 -14
- umap/static/umap/locale/he.js +40 -14
- umap/static/umap/locale/he.json +40 -14
- umap/static/umap/locale/hr.js +40 -14
- umap/static/umap/locale/hr.json +40 -14
- umap/static/umap/locale/hu.js +40 -14
- umap/static/umap/locale/hu.json +40 -14
- umap/static/umap/locale/id.js +40 -14
- umap/static/umap/locale/id.json +40 -14
- umap/static/umap/locale/is.js +40 -14
- umap/static/umap/locale/is.json +40 -14
- umap/static/umap/locale/it.js +40 -14
- umap/static/umap/locale/it.json +40 -14
- umap/static/umap/locale/ja.js +40 -14
- umap/static/umap/locale/ja.json +40 -14
- umap/static/umap/locale/ko.js +40 -14
- umap/static/umap/locale/ko.json +40 -14
- umap/static/umap/locale/lt.js +40 -14
- umap/static/umap/locale/lt.json +40 -14
- umap/static/umap/locale/ms.js +40 -14
- umap/static/umap/locale/ms.json +40 -14
- umap/static/umap/locale/nl.js +40 -14
- umap/static/umap/locale/nl.json +40 -14
- umap/static/umap/locale/no.js +40 -14
- umap/static/umap/locale/no.json +40 -14
- umap/static/umap/locale/pl.js +40 -14
- umap/static/umap/locale/pl.json +40 -14
- umap/static/umap/locale/pl_PL.json +40 -14
- umap/static/umap/locale/pt.js +40 -14
- umap/static/umap/locale/pt.json +40 -14
- umap/static/umap/locale/pt_BR.js +40 -14
- umap/static/umap/locale/pt_BR.json +40 -14
- umap/static/umap/locale/pt_PT.js +40 -14
- umap/static/umap/locale/pt_PT.json +40 -14
- umap/static/umap/locale/ro.js +40 -14
- umap/static/umap/locale/ro.json +40 -14
- umap/static/umap/locale/ru.js +40 -14
- umap/static/umap/locale/ru.json +40 -14
- umap/static/umap/locale/sk_SK.js +40 -14
- umap/static/umap/locale/sk_SK.json +40 -14
- umap/static/umap/locale/sl.js +40 -14
- umap/static/umap/locale/sl.json +40 -14
- umap/static/umap/locale/sr.js +40 -14
- umap/static/umap/locale/sr.json +40 -14
- umap/static/umap/locale/sv.js +40 -14
- umap/static/umap/locale/sv.json +40 -14
- umap/static/umap/locale/th_TH.js +40 -14
- umap/static/umap/locale/th_TH.json +40 -14
- umap/static/umap/locale/tr.js +40 -14
- umap/static/umap/locale/tr.json +40 -14
- umap/static/umap/locale/uk_UA.js +40 -14
- umap/static/umap/locale/uk_UA.json +40 -14
- umap/static/umap/locale/vi.js +40 -14
- umap/static/umap/locale/vi.json +40 -14
- umap/static/umap/locale/vi_VN.json +40 -14
- umap/static/umap/locale/zh.js +40 -14
- umap/static/umap/locale/zh.json +40 -14
- umap/static/umap/locale/zh_CN.json +40 -14
- umap/static/umap/locale/zh_TW.Big5.json +40 -14
- umap/static/umap/locale/zh_TW.js +40 -14
- umap/static/umap/locale/zh_TW.json +40 -14
- umap/static/umap/map.css +60 -223
- umap/static/umap/unittests/utils.js +18 -0
- umap/static/umap/vars.css +23 -5
- umap/templates/umap/components/alerts/alert.html +32 -29
- umap/templates/umap/css.html +2 -1
- umap/templates/umap/login_popup_end.html +18 -9
- umap/templates/umap/user_map_table.html +7 -2
- umap/tests/integration/conftest.py +2 -6
- umap/tests/integration/test_anonymous_owned_map.py +89 -36
- umap/tests/integration/test_basics.py +25 -1
- umap/tests/integration/test_browser.py +37 -0
- umap/tests/integration/test_datalayer.py +9 -16
- umap/tests/integration/test_draw_polygon.py +2 -0
- umap/tests/integration/test_edit_marker.py +1 -1
- umap/tests/integration/test_export_map.py +19 -0
- umap/tests/integration/test_fields.py +522 -0
- umap/tests/integration/test_filters.py +617 -0
- umap/tests/integration/test_import.py +15 -42
- umap/tests/integration/test_remote_data.py +60 -4
- umap/tests/integration/test_share.py +4 -4
- umap/tests/integration/test_tableeditor.py +31 -7
- umap/tests/integration/test_websocket_sync.py +3 -1
- umap/tests/test_dashboard.py +10 -0
- umap/urls.py +1 -0
- umap/views.py +5 -0
- {umap_project-3.3.5.dist-info → umap_project-3.4.0b0.dist-info}/METADATA +12 -12
- {umap_project-3.3.5.dist-info → umap_project-3.4.0b0.dist-info}/RECORD +216 -213
- umap/static/umap/js/modules/facets.js +0 -164
- umap/tests/integration/test_facets_browser.py +0 -279
- {umap_project-3.3.5.dist-info → umap_project-3.4.0b0.dist-info}/WHEEL +0 -0
- {umap_project-3.3.5.dist-info → umap_project-3.4.0b0.dist-info}/entry_points.txt +0 -0
- {umap_project-3.3.5.dist-info → umap_project-3.4.0b0.dist-info}/licenses/LICENSE +0 -0
|
Binary file
|
|
@@ -15,7 +15,7 @@ msgid ""
|
|
|
15
15
|
msgstr ""
|
|
16
16
|
"Project-Id-Version: uMap\n"
|
|
17
17
|
"Report-Msgid-Bugs-To: \n"
|
|
18
|
-
"POT-Creation-Date: 2025-
|
|
18
|
+
"POT-Creation-Date: 2025-10-14 15:28+0000\n"
|
|
19
19
|
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
|
|
20
20
|
"Last-Translator: Supaplex <bejokeup@gmail.com>, 2019,2023-2025\n"
|
|
21
21
|
"Language-Team: Chinese (Taiwan) (http://app.transifex.com/openstreetmap/umap/language/zh_TW/)\n"
|
|
@@ -159,11 +159,11 @@ msgstr "設定"
|
|
|
159
159
|
|
|
160
160
|
#: models.py:243
|
|
161
161
|
msgid "save as template"
|
|
162
|
-
msgstr ""
|
|
162
|
+
msgstr "儲存為模版"
|
|
163
163
|
|
|
164
164
|
#: models.py:244
|
|
165
165
|
msgid "This map is a template map."
|
|
166
|
-
msgstr ""
|
|
166
|
+
msgstr "這份地圖是模版地圖"
|
|
167
167
|
|
|
168
168
|
#: models.py:420
|
|
169
169
|
msgid "Clone of"
|
|
@@ -183,87 +183,87 @@ msgstr "載入此圖層時顯示"
|
|
|
183
183
|
|
|
184
184
|
#: settings/base.py:283
|
|
185
185
|
msgid "uMap user documentation"
|
|
186
|
-
msgstr ""
|
|
186
|
+
msgstr "uMap使用者說明文件"
|
|
187
187
|
|
|
188
188
|
#: settings/base.py:288
|
|
189
189
|
msgid "Video tutorials"
|
|
190
|
-
msgstr ""
|
|
190
|
+
msgstr "影片教學"
|
|
191
191
|
|
|
192
192
|
#: settings/base.py:293
|
|
193
193
|
msgid "OpenStreetMap.org forum"
|
|
194
|
-
msgstr ""
|
|
194
|
+
msgstr "OpenStreetMap.org 論壇"
|
|
195
195
|
|
|
196
196
|
#: settings/base.py:298
|
|
197
197
|
msgid "OpenStreetMap France forum"
|
|
198
|
-
msgstr ""
|
|
198
|
+
msgstr "OpenStreetMap 法國論壇"
|
|
199
199
|
|
|
200
200
|
#: settings/base.py:318
|
|
201
201
|
msgid "Art and Culture"
|
|
202
|
-
msgstr ""
|
|
202
|
+
msgstr "藝術與文化"
|
|
203
203
|
|
|
204
204
|
#: settings/base.py:319
|
|
205
205
|
msgid "Cycling"
|
|
206
|
-
msgstr ""
|
|
206
|
+
msgstr "單車"
|
|
207
207
|
|
|
208
208
|
#: settings/base.py:320
|
|
209
209
|
msgid "Business"
|
|
210
|
-
msgstr ""
|
|
210
|
+
msgstr "商家"
|
|
211
211
|
|
|
212
212
|
#: settings/base.py:321
|
|
213
213
|
msgid "Environment"
|
|
214
|
-
msgstr ""
|
|
214
|
+
msgstr "環境"
|
|
215
215
|
|
|
216
216
|
#: settings/base.py:322
|
|
217
217
|
msgid "Education"
|
|
218
|
-
msgstr ""
|
|
218
|
+
msgstr "教育"
|
|
219
219
|
|
|
220
220
|
#: settings/base.py:323
|
|
221
221
|
msgid "Food and Agriculture"
|
|
222
|
-
msgstr ""
|
|
222
|
+
msgstr "食物與農業"
|
|
223
223
|
|
|
224
224
|
#: settings/base.py:324
|
|
225
225
|
msgid "Geopolitics"
|
|
226
|
-
msgstr ""
|
|
226
|
+
msgstr "地緣政治"
|
|
227
227
|
|
|
228
228
|
#: settings/base.py:325
|
|
229
229
|
msgid "Health"
|
|
230
|
-
msgstr ""
|
|
230
|
+
msgstr "健康"
|
|
231
231
|
|
|
232
232
|
#: settings/base.py:326
|
|
233
233
|
msgid "Hiking"
|
|
234
|
-
msgstr ""
|
|
234
|
+
msgstr "登山"
|
|
235
235
|
|
|
236
236
|
#: settings/base.py:327
|
|
237
237
|
msgid "History"
|
|
238
|
-
msgstr ""
|
|
238
|
+
msgstr "歷史"
|
|
239
239
|
|
|
240
240
|
#: settings/base.py:328
|
|
241
241
|
msgid "Public sector"
|
|
242
|
-
msgstr ""
|
|
242
|
+
msgstr "公共部門"
|
|
243
243
|
|
|
244
244
|
#: settings/base.py:329
|
|
245
245
|
msgid "Science"
|
|
246
|
-
msgstr ""
|
|
246
|
+
msgstr "科學"
|
|
247
247
|
|
|
248
248
|
#: settings/base.py:330
|
|
249
249
|
msgid "Shopping"
|
|
250
|
-
msgstr ""
|
|
250
|
+
msgstr "購物"
|
|
251
251
|
|
|
252
252
|
#: settings/base.py:331
|
|
253
253
|
msgid "Sport and Leisure"
|
|
254
|
-
msgstr ""
|
|
254
|
+
msgstr "運動與休閒"
|
|
255
255
|
|
|
256
256
|
#: settings/base.py:332
|
|
257
257
|
msgid "Travel"
|
|
258
|
-
msgstr ""
|
|
258
|
+
msgstr "旅遊"
|
|
259
259
|
|
|
260
260
|
#: settings/base.py:333
|
|
261
261
|
msgid "Transports"
|
|
262
|
-
msgstr ""
|
|
262
|
+
msgstr "交通運輸"
|
|
263
263
|
|
|
264
264
|
#: settings/base.py:334
|
|
265
265
|
msgid "Tourism"
|
|
266
|
-
msgstr ""
|
|
266
|
+
msgstr "遊客"
|
|
267
267
|
|
|
268
268
|
#: templates/403.html:8
|
|
269
269
|
msgid ""
|
|
@@ -332,7 +332,7 @@ msgstr "瀏覽 %(current_user)s 已打心號的地圖"
|
|
|
332
332
|
msgid "%(current_user)s has no starred maps yet."
|
|
333
333
|
msgstr "%(current_user)s 沒有任何打心號的地圖。"
|
|
334
334
|
|
|
335
|
-
#: templates/base.html:
|
|
335
|
+
#: templates/base.html:16
|
|
336
336
|
msgid ""
|
|
337
337
|
"uMap lets you create maps with OpenStreetMap layers in a minute and embed "
|
|
338
338
|
"them in your site."
|
|
@@ -416,48 +416,54 @@ msgid "Play with the demo"
|
|
|
416
416
|
msgstr "播放展示"
|
|
417
417
|
|
|
418
418
|
#: templates/umap/components/alerts/alert.html:17
|
|
419
|
-
#: templates/umap/components/alerts/alert.html:
|
|
420
|
-
#: templates/umap/components/alerts/alert.html:
|
|
419
|
+
#: templates/umap/components/alerts/alert.html:69
|
|
420
|
+
#: templates/umap/components/alerts/alert.html:97
|
|
421
421
|
msgid "Close"
|
|
422
422
|
msgstr "關閉"
|
|
423
423
|
|
|
424
424
|
#: templates/umap/components/alerts/alert.html:32
|
|
425
425
|
#, python-format
|
|
426
426
|
msgid ""
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
430
|
-
msgstr "
|
|
427
|
+
"Oops, I didn't mean it, I want to <a href=\"%(login_url)s\" "
|
|
428
|
+
"class=\"login\">create an account</a> or <a href=\"%(login_url)s\" "
|
|
429
|
+
"class=\"login\">log in</a> (no worry, we'll attach the map to your account)."
|
|
430
|
+
msgstr ""
|
|
431
431
|
|
|
432
|
-
#: templates/umap/components/alerts/alert.html:
|
|
432
|
+
#: templates/umap/components/alerts/alert.html:35
|
|
433
|
+
msgid ""
|
|
434
|
+
"Yes, I want to continue editing anonymously, I will save the secret edit "
|
|
435
|
+
"link to be able to edit this map later or on another device"
|
|
436
|
+
msgstr ""
|
|
437
|
+
|
|
438
|
+
#: templates/umap/components/alerts/alert.html:39
|
|
433
439
|
msgid "Here is your secret link to edit the map, please keep it safe:"
|
|
434
440
|
msgstr "這裡是編輯地圖的祕密連結,請好好保管:"
|
|
435
441
|
|
|
436
|
-
#: templates/umap/components/alerts/alert.html:
|
|
442
|
+
#: templates/umap/components/alerts/alert.html:43
|
|
437
443
|
msgid "Copy link"
|
|
438
444
|
msgstr "複製連結"
|
|
439
445
|
|
|
440
|
-
#: templates/umap/components/alerts/alert.html:
|
|
446
|
+
#: templates/umap/components/alerts/alert.html:50
|
|
441
447
|
msgid "Enter your email address to receive the secret link:"
|
|
442
448
|
msgstr "輸入你的電子郵件來取得祕密連結:"
|
|
443
449
|
|
|
444
|
-
#: templates/umap/components/alerts/alert.html:
|
|
450
|
+
#: templates/umap/components/alerts/alert.html:56
|
|
445
451
|
msgid "Email"
|
|
446
452
|
msgstr "電子郵件"
|
|
447
453
|
|
|
448
|
-
#: templates/umap/components/alerts/alert.html:
|
|
454
|
+
#: templates/umap/components/alerts/alert.html:59
|
|
449
455
|
msgid "Send me the link"
|
|
450
456
|
msgstr "寄送連結"
|
|
451
457
|
|
|
452
|
-
#: templates/umap/components/alerts/alert.html:
|
|
458
|
+
#: templates/umap/components/alerts/alert.html:84
|
|
453
459
|
msgid "See their edits in another tab"
|
|
454
460
|
msgstr "在其他頁籤察看他們的編輯"
|
|
455
461
|
|
|
456
|
-
#: templates/umap/components/alerts/alert.html:
|
|
462
|
+
#: templates/umap/components/alerts/alert.html:87
|
|
457
463
|
msgid "Keep your changes and loose theirs"
|
|
458
464
|
msgstr "保留你的變動並且丟棄他們的"
|
|
459
465
|
|
|
460
|
-
#: templates/umap/components/alerts/alert.html:
|
|
466
|
+
#: templates/umap/components/alerts/alert.html:90
|
|
461
467
|
msgid "Keep their changes and loose yours"
|
|
462
468
|
msgstr "保留他們的變動並且丟棄自己的"
|
|
463
469
|
|
|
@@ -508,11 +514,11 @@ msgstr "我的地圖"
|
|
|
508
514
|
#: templates/umap/dashboard_menu.html:11
|
|
509
515
|
#, python-format
|
|
510
516
|
msgid "My Templates (%(count)s)"
|
|
511
|
-
msgstr ""
|
|
517
|
+
msgstr "我的模版 (%(count)s)"
|
|
512
518
|
|
|
513
519
|
#: templates/umap/dashboard_menu.html:13 templates/umap/user_templates.html:6
|
|
514
520
|
msgid "My Templates"
|
|
515
|
-
msgstr ""
|
|
521
|
+
msgstr "我的模版"
|
|
516
522
|
|
|
517
523
|
#: templates/umap/dashboard_menu.html:17
|
|
518
524
|
msgid "My profile"
|
|
@@ -536,19 +542,19 @@ msgstr "您已登入,繼續中..."
|
|
|
536
542
|
|
|
537
543
|
#: templates/umap/map_list.html:15
|
|
538
544
|
msgid "template"
|
|
539
|
-
msgstr ""
|
|
545
|
+
msgstr "模版"
|
|
540
546
|
|
|
541
|
-
#: templates/umap/map_list.html:18 views.py:
|
|
547
|
+
#: templates/umap/map_list.html:18 views.py:459
|
|
542
548
|
msgid "by"
|
|
543
549
|
msgstr "由"
|
|
544
550
|
|
|
545
551
|
#: templates/umap/map_list.html:22
|
|
546
552
|
msgid "See the template"
|
|
547
|
-
msgstr ""
|
|
553
|
+
msgstr "檢視模版"
|
|
548
554
|
|
|
549
555
|
#: templates/umap/map_list.html:22
|
|
550
556
|
msgid "See the map"
|
|
551
|
-
msgstr ""
|
|
557
|
+
msgstr "檢視地圖"
|
|
552
558
|
|
|
553
559
|
#: templates/umap/map_list.html:28
|
|
554
560
|
msgid "More"
|
|
@@ -714,7 +720,7 @@ msgstr "找不到地圖。"
|
|
|
714
720
|
|
|
715
721
|
#: templates/umap/search.html:36
|
|
716
722
|
msgid "Latest created maps in category"
|
|
717
|
-
msgstr ""
|
|
723
|
+
msgstr "這個類別最新的地圖"
|
|
718
724
|
|
|
719
725
|
#: templates/umap/search.html:43
|
|
720
726
|
msgid "Latest created maps"
|
|
@@ -724,9 +730,9 @@ msgstr "最新創建地圖"
|
|
|
724
730
|
msgid "Search maps"
|
|
725
731
|
msgstr "搜尋地圖"
|
|
726
732
|
|
|
727
|
-
#: templates/umap/search_bar.html:14
|
|
733
|
+
#: templates/umap/search_bar.html:14 templates/umap/user_map_table.html:15
|
|
728
734
|
msgid "Any category"
|
|
729
|
-
msgstr ""
|
|
735
|
+
msgstr "任何類別"
|
|
730
736
|
|
|
731
737
|
#: templates/umap/search_bar.html:19
|
|
732
738
|
msgid "Search"
|
|
@@ -769,7 +775,7 @@ msgstr "搜尋我的地圖"
|
|
|
769
775
|
|
|
770
776
|
#: templates/umap/user_dashboard.html:11
|
|
771
777
|
msgid "Map’s name"
|
|
772
|
-
msgstr ""
|
|
778
|
+
msgstr "地圖的名稱"
|
|
773
779
|
|
|
774
780
|
#: templates/umap/user_dashboard.html:12
|
|
775
781
|
#, python-format
|
|
@@ -794,93 +800,97 @@ msgstr "新的團隊"
|
|
|
794
800
|
|
|
795
801
|
#: templates/umap/user_templates.html:10
|
|
796
802
|
msgid "Search my templates"
|
|
797
|
-
msgstr ""
|
|
803
|
+
msgstr "搜尋我的模版"
|
|
798
804
|
|
|
799
805
|
#: templates/umap/user_templates.html:11
|
|
800
806
|
msgid "Template’s name"
|
|
801
|
-
msgstr ""
|
|
807
|
+
msgstr "模版名稱"
|
|
802
808
|
|
|
803
809
|
#: templates/umap/user_templates.html:12
|
|
804
810
|
#, python-format
|
|
805
811
|
msgid "Download %(count)s templates"
|
|
806
|
-
msgstr ""
|
|
812
|
+
msgstr "下載%(count)s模版"
|
|
807
813
|
|
|
808
814
|
#: templates/umap/user_templates.html:15
|
|
809
815
|
msgid "You have no template yet."
|
|
810
|
-
msgstr ""
|
|
816
|
+
msgstr "你仍沒有模版。"
|
|
811
817
|
|
|
812
818
|
#: templates/umap/user_templates.html:16
|
|
813
819
|
msgid "Create a template"
|
|
814
|
-
msgstr ""
|
|
820
|
+
msgstr "新建模版"
|
|
815
821
|
|
|
816
822
|
#: templates/umap/user_templates.html:17
|
|
817
823
|
msgid "No template found."
|
|
818
|
-
msgstr ""
|
|
824
|
+
msgstr "沒有找到模版"
|
|
819
825
|
|
|
820
|
-
#: views.py:
|
|
826
|
+
#: views.py:235
|
|
821
827
|
msgid "Cannot delete a team with more than one member"
|
|
822
828
|
msgstr "無法刪除超過一位成員的團隊"
|
|
823
829
|
|
|
824
|
-
#: views.py:
|
|
830
|
+
#: views.py:239
|
|
825
831
|
#, python-format
|
|
826
832
|
msgid "Team “%(name)s” has been deleted"
|
|
827
833
|
msgstr "已經刪除團隊 \"%(name)s\" "
|
|
828
834
|
|
|
829
|
-
#: views.py:
|
|
835
|
+
#: views.py:464
|
|
830
836
|
msgid "View the map"
|
|
831
837
|
msgstr "檢視地圖"
|
|
832
838
|
|
|
833
|
-
#: views.py:
|
|
839
|
+
#: views.py:872
|
|
834
840
|
msgid "See full screen"
|
|
835
841
|
msgstr "檢視全螢幕"
|
|
836
842
|
|
|
837
|
-
#: views.py:
|
|
843
|
+
#: views.py:1015
|
|
838
844
|
msgid "Map editors updated with success!"
|
|
839
845
|
msgstr "地圖編輯者更新完成"
|
|
840
846
|
|
|
841
|
-
#: views.py:
|
|
847
|
+
#: views.py:1051
|
|
842
848
|
#, python-format
|
|
843
849
|
msgid "The uMap edit link for your map: %(map_name)s"
|
|
844
850
|
msgstr "你的地圖 uMap 編輯連結:%(map_name)s"
|
|
845
851
|
|
|
846
|
-
#: views.py:
|
|
852
|
+
#: views.py:1054
|
|
847
853
|
#, python-format
|
|
848
854
|
msgid "Here is your secret edit link: %(link)s"
|
|
849
855
|
msgstr "這是你的祕密編輯連結:%(link)s"
|
|
850
856
|
|
|
851
|
-
#: views.py:
|
|
857
|
+
#: views.py:1061
|
|
852
858
|
#, python-format
|
|
853
859
|
msgid "Can't send email to %(email)s"
|
|
854
860
|
msgstr "無法傳送電子郵件到%(email)s"
|
|
855
861
|
|
|
856
|
-
#: views.py:
|
|
862
|
+
#: views.py:1064
|
|
857
863
|
#, python-format
|
|
858
864
|
msgid "Email sent to %(email)s"
|
|
859
865
|
msgstr "電子郵件寄至 %(email)s"
|
|
860
866
|
|
|
861
|
-
#: views.py:
|
|
867
|
+
#: views.py:1075
|
|
862
868
|
msgid "Only its owner can delete the map."
|
|
863
869
|
msgstr "只有擁有者可以刪除此地圖"
|
|
864
870
|
|
|
865
|
-
#: views.py:
|
|
871
|
+
#: views.py:1081
|
|
866
872
|
msgid "Map successfully deleted."
|
|
867
873
|
msgstr "成功刪除地圖"
|
|
868
874
|
|
|
869
|
-
#: views.py:
|
|
875
|
+
#: views.py:1107
|
|
870
876
|
#, python-format
|
|
871
877
|
msgid ""
|
|
872
878
|
"Your map has been cloned! If you want to edit this map from another "
|
|
873
879
|
"computer, please use this link: %(anonymous_url)s"
|
|
874
880
|
msgstr "您的地圖已複製完成!如果您想在不同的機器編輯這個地圖,請使用這個連結:%(anonymous_url)s"
|
|
875
881
|
|
|
876
|
-
#: views.py:
|
|
882
|
+
#: views.py:1112
|
|
877
883
|
msgid "Congratulations, your map has been cloned!"
|
|
878
884
|
msgstr "恭喜,您的地圖已被複製!"
|
|
879
885
|
|
|
880
|
-
#: views.py:
|
|
886
|
+
#: views.py:1366
|
|
881
887
|
msgid "Layer successfully deleted."
|
|
882
888
|
msgstr "圖層已刪除"
|
|
883
889
|
|
|
884
|
-
#: views.py:
|
|
890
|
+
#: views.py:1388
|
|
885
891
|
msgid "Permissions updated with success!"
|
|
886
892
|
msgstr "權限更新完成"
|
|
893
|
+
|
|
894
|
+
#: views.py:1405
|
|
895
|
+
msgid "Generic"
|
|
896
|
+
msgstr "一般"
|
|
@@ -23,7 +23,7 @@ class Command(BaseCommand):
|
|
|
23
23
|
def handle(self, *args, **options):
|
|
24
24
|
old = User.objects.get(username=options["old"])
|
|
25
25
|
new = User.objects.get(username=options["new"])
|
|
26
|
-
print(f"Replacing
|
|
26
|
+
print(f"Replacing user {old} by user {new}")
|
|
27
27
|
owned_maps = old.owned_maps.all()
|
|
28
28
|
print(f"Replacing owner of {len(owned_maps)} maps")
|
|
29
29
|
if not options["dry_run"]:
|
|
@@ -40,7 +40,7 @@ class Command(BaseCommand):
|
|
|
40
40
|
mm.save()
|
|
41
41
|
|
|
42
42
|
teams = old.teams.all()
|
|
43
|
-
print(f"Replacing
|
|
43
|
+
print(f"Replacing team member of {len(teams)} teams")
|
|
44
44
|
if not options["dry_run"]:
|
|
45
45
|
for team in teams:
|
|
46
46
|
team.users.remove(old)
|
umap/static/umap/base.css
CHANGED
|
@@ -1,34 +1,55 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Generic
|
|
3
3
|
*/
|
|
4
|
-
body,
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
body,
|
|
5
|
+
div,
|
|
6
|
+
ul,
|
|
7
|
+
ol,
|
|
8
|
+
li,
|
|
9
|
+
a,
|
|
10
|
+
section,
|
|
11
|
+
nav,
|
|
12
|
+
h1,
|
|
13
|
+
h2,
|
|
14
|
+
h3,
|
|
15
|
+
h4,
|
|
16
|
+
h5,
|
|
17
|
+
h6,
|
|
18
|
+
label,
|
|
19
|
+
fieldset,
|
|
20
|
+
hr,
|
|
21
|
+
input,
|
|
22
|
+
textarea,
|
|
23
|
+
summary,
|
|
24
|
+
details,
|
|
25
|
+
select,
|
|
26
|
+
button {
|
|
7
27
|
box-sizing: border-box;
|
|
8
28
|
margin: 0;
|
|
9
29
|
padding: 0;
|
|
10
30
|
font-family: "fira_sans", -apple-system, BlinkMacSystemFont,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
body, div, ul, ol, li, a, section, nav,
|
|
15
|
-
h1, h2, h3, h4, h5, h6, label, hr {
|
|
16
|
-
padding: 0;
|
|
31
|
+
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
|
|
32
|
+
"Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
17
33
|
}
|
|
34
|
+
|
|
18
35
|
a {
|
|
19
36
|
text-decoration: none;
|
|
20
37
|
color: var(--link-color);
|
|
21
38
|
}
|
|
39
|
+
|
|
22
40
|
a.main {
|
|
23
41
|
font-weight: bold;
|
|
24
42
|
text-decoration: underline;
|
|
25
43
|
}
|
|
44
|
+
|
|
26
45
|
a[href^="http"]:not(nav.umap-nav a) {
|
|
27
46
|
text-decoration: underline;
|
|
28
47
|
}
|
|
48
|
+
|
|
29
49
|
button {
|
|
30
50
|
cursor: pointer;
|
|
31
51
|
}
|
|
52
|
+
|
|
32
53
|
hr {
|
|
33
54
|
clear: both;
|
|
34
55
|
width: 100%;
|
|
@@ -39,50 +60,64 @@ hr {
|
|
|
39
60
|
-moz-border-left-colors: none;
|
|
40
61
|
-moz-border-right-colors: none;
|
|
41
62
|
-moz-border-top-colors: none;
|
|
42
|
-
border-color: var(--color-
|
|
63
|
+
border-color: var(--color-veryLightGray);
|
|
43
64
|
border-image: none;
|
|
44
65
|
border-style: solid;
|
|
45
66
|
border-width: 1px 0 0;
|
|
46
67
|
}
|
|
47
|
-
|
|
68
|
+
|
|
69
|
+
h1,
|
|
70
|
+
h2 {
|
|
48
71
|
margin-bottom: 28px;
|
|
49
72
|
}
|
|
50
|
-
|
|
73
|
+
|
|
74
|
+
h3,
|
|
75
|
+
h4,
|
|
76
|
+
h5 {
|
|
51
77
|
margin-bottom: 14px;
|
|
52
78
|
}
|
|
79
|
+
|
|
53
80
|
p {
|
|
54
81
|
line-height: 1.4;
|
|
55
82
|
margin-top: 14px;
|
|
56
83
|
margin-bottom: 14px;
|
|
57
84
|
}
|
|
85
|
+
|
|
58
86
|
kbd {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
87
|
+
border: 1px solid #b4b4b4;
|
|
88
|
+
box-shadow:
|
|
89
|
+
0 1px 1px rgba(0, 0, 0, 0.2),
|
|
90
|
+
0 2px 0 0 rgba(255, 255, 255, 0.7) inset;
|
|
91
|
+
border-radius: 3px;
|
|
92
|
+
padding: 1px 4px;
|
|
93
|
+
display: inline-block;
|
|
94
|
+
white-space: nowrap;
|
|
67
95
|
}
|
|
96
|
+
|
|
68
97
|
h3 {
|
|
69
98
|
font-size: 1rem;
|
|
70
99
|
}
|
|
100
|
+
|
|
71
101
|
h4 {
|
|
72
102
|
font-size: 0.9rem;
|
|
73
103
|
}
|
|
104
|
+
|
|
74
105
|
h5 {
|
|
75
106
|
font-size: 0.8rem;
|
|
76
107
|
}
|
|
108
|
+
|
|
77
109
|
h6 {
|
|
78
110
|
font-size: 0.7rem;
|
|
79
111
|
}
|
|
80
|
-
|
|
112
|
+
|
|
113
|
+
hgroup>* {
|
|
81
114
|
margin-bottom: 0;
|
|
82
115
|
}
|
|
116
|
+
|
|
83
117
|
hgroup {
|
|
84
118
|
margin-bottom: var(--box-margin);
|
|
85
119
|
}
|
|
120
|
+
|
|
86
121
|
hgroup p,
|
|
87
122
|
hgroup button {
|
|
88
123
|
margin: 0;
|
|
@@ -92,13 +127,15 @@ hgroup button {
|
|
|
92
127
|
* List
|
|
93
128
|
*/
|
|
94
129
|
ul {
|
|
95
|
-
list-style-image:none;
|
|
96
|
-
list-style-position:inside;
|
|
97
|
-
list-style-type:none;
|
|
130
|
+
list-style-image: none;
|
|
131
|
+
list-style-position: inside;
|
|
132
|
+
list-style-type: none;
|
|
98
133
|
}
|
|
134
|
+
|
|
99
135
|
dt {
|
|
100
136
|
font-weight: bold;
|
|
101
137
|
}
|
|
138
|
+
|
|
102
139
|
dd {
|
|
103
140
|
margin: 0;
|
|
104
141
|
}
|
|
@@ -110,6 +147,7 @@ dd {
|
|
|
110
147
|
width: 100%;
|
|
111
148
|
clear: both;
|
|
112
149
|
}
|
|
150
|
+
|
|
113
151
|
.wrapper:after {
|
|
114
152
|
visibility: hidden;
|
|
115
153
|
display: block;
|
|
@@ -118,6 +156,7 @@ dd {
|
|
|
118
156
|
clear: both;
|
|
119
157
|
height: 0;
|
|
120
158
|
}
|
|
159
|
+
|
|
121
160
|
.row {
|
|
122
161
|
width: 100%;
|
|
123
162
|
max-width: 1200px;
|
|
@@ -127,41 +166,54 @@ dd {
|
|
|
127
166
|
margin-top: 0;
|
|
128
167
|
margin-bottom: 2rem;
|
|
129
168
|
}
|
|
169
|
+
|
|
130
170
|
.col {
|
|
131
171
|
float: inline-start;
|
|
132
172
|
}
|
|
173
|
+
|
|
133
174
|
.right {
|
|
134
175
|
float: right;
|
|
135
176
|
}
|
|
136
|
-
|
|
177
|
+
|
|
178
|
+
.col+.col {
|
|
137
179
|
padding-inline-start: 20px;
|
|
138
180
|
}
|
|
181
|
+
|
|
139
182
|
.half {
|
|
140
183
|
width: 50%;
|
|
141
184
|
}
|
|
185
|
+
|
|
142
186
|
.third {
|
|
143
187
|
width: 33.33%;
|
|
144
188
|
}
|
|
189
|
+
|
|
145
190
|
.two-third {
|
|
146
191
|
width: 66.66%
|
|
147
192
|
}
|
|
193
|
+
|
|
148
194
|
.quarter {
|
|
149
195
|
width: 25%;
|
|
150
196
|
}
|
|
197
|
+
|
|
151
198
|
.wide {
|
|
152
199
|
width: 100%;
|
|
153
200
|
}
|
|
154
|
-
|
|
201
|
+
|
|
202
|
+
.col+.wide {
|
|
155
203
|
padding-inline-start: inherit;
|
|
156
204
|
}
|
|
157
|
-
|
|
205
|
+
|
|
206
|
+
.mshow,
|
|
207
|
+
.tshow {
|
|
158
208
|
display: none;
|
|
159
209
|
}
|
|
210
|
+
|
|
160
211
|
.center {
|
|
161
212
|
margin-left: auto;
|
|
162
213
|
margin-right: auto;
|
|
163
214
|
float: none;
|
|
164
215
|
}
|
|
216
|
+
|
|
165
217
|
.grid-container {
|
|
166
218
|
display: grid;
|
|
167
219
|
--grid-layout-gap: calc(var(--gutter) * 2);
|
|
@@ -178,11 +230,13 @@ dd {
|
|
|
178
230
|
grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
|
|
179
231
|
grid-gap: var(--grid-layout-gap);
|
|
180
232
|
}
|
|
233
|
+
|
|
181
234
|
.grid-container.by4 {
|
|
182
235
|
--grid-column-count: 4;
|
|
183
236
|
--grid-item--min-width: 60px;
|
|
184
237
|
}
|
|
185
|
-
|
|
238
|
+
|
|
239
|
+
.grid-container>* {
|
|
186
240
|
text-align: center;
|
|
187
241
|
}
|
|
188
242
|
|
|
@@ -193,6 +247,7 @@ dd {
|
|
|
193
247
|
.leaflet-ui-container {
|
|
194
248
|
overflow-x: hidden;
|
|
195
249
|
}
|
|
250
|
+
|
|
196
251
|
.leaflet-top,
|
|
197
252
|
.leaflet-right {
|
|
198
253
|
transition: all .7s;
|
|
@@ -213,7 +268,7 @@ dd {
|
|
|
213
268
|
}
|
|
214
269
|
|
|
215
270
|
.umap-dragover:before {
|
|
216
|
-
content:
|
|
271
|
+
content: ' ';
|
|
217
272
|
background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="arcs">%3Cpath d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"/>%3C/svg>');
|
|
218
273
|
background-repeat: no-repeat;
|
|
219
274
|
background-position: center;
|
|
@@ -225,11 +280,12 @@ dd {
|
|
|
225
280
|
height: 100vh;
|
|
226
281
|
opacity: 0.5;
|
|
227
282
|
}
|
|
283
|
+
|
|
228
284
|
.table-scrollable {
|
|
229
285
|
background-image: linear-gradient(to right, var(--background-color), var(--background-color)),
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
286
|
+
linear-gradient(to right, var(--background-color), var(--background-color)),
|
|
287
|
+
linear-gradient(to right, rgba(0, 0, 20, .50), rgba(255, 255, 255, 0)),
|
|
288
|
+
linear-gradient(to left, rgba(0, 0, 20, .50), rgba(255, 255, 255, 0));
|
|
233
289
|
background-position: left center, right center, left center, right center;
|
|
234
290
|
background-repeat: no-repeat;
|
|
235
291
|
background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;
|
|
@@ -237,6 +293,7 @@ dd {
|
|
|
237
293
|
display: block;
|
|
238
294
|
overflow-x: auto;
|
|
239
295
|
}
|
|
296
|
+
|
|
240
297
|
mark {
|
|
241
298
|
background-color: var(--color-lightCyan);
|
|
242
299
|
padding: 0 var(--small-box-padding);
|